ウィンドウの背景を透過させたい!(コンパニオンゲームを作りたい!)【Godot 4.7】
デスクトップコンパニオンみたいなアプリが流行っている気がしますね!!
ちょくちょくSteamで見かけたり、Discordフレンドがそれらしきものをプレイしていたりするのを見かけたりで、なんとなく流行っている気配を感じますね・・・!!!
「自分もそういうのほしい!!」
ってことで・・・(できるだけ)毎週Godot関係のブログ投稿しよう!と思っているのもあり、そういう「デスクトップコンパニオン」的なゲーム?をGodotでどうやったら作っていけるんだろうっていうのを見ていってそのことをブログに書こう~という感じですね~~
ま、これまで同様過程をすべて見てもらうっていうより?○○的な機能をやるにはどうすんだっけ?ごとに書いていく感じかなぁと思っています。
で、今回は「背景透過」ってどうやるんだろう~っていうのを見ていきたいかなぁと思っています!
(こんなもの作りたいなぁ~)
っていうのを先にちょっと書いておこうかなと思ったけど、「そんなのどうでもいい!」って人もいるだろうので折りたためるようにしておきます。
こんなのできたらいいかもなぁ
とりあえずやりたいこととしては、ローカルLLMアプリとの接続なのですよね!
今はLMStudioっていうアプリ内でそのままローカルLLMを利用していたりするのだけど、本当にちょっとした翻訳とか英語の確認みたいなことに使うことがほとんどなんですよね・・・(自分のパソコンで動かせるLLMの性能的にもっていう感じではあるのだけど・・・)
で、まぁ・・・デスクトップコンパニオンアプリ的なところからサクッと画面を開いて、サクッとチャットに送って確認とか出来たりしたら便利かなぁ~っていうのを一つやりたいですね
で・・・やっぱり可愛い感じのキャラクターを置いておきたいっていうのもありますよね!!
LLM的なアプリであればそこでちょっと喋ったりとかもできるわけですからね!!!素晴らしいじゃないですか!!!
まあ後はできたらいいなぁ~くらいなのだけど、もっと創作とかのモチベーションになるというか、サボっていたら怒ってくれるみたいなの・・・やっぱり欲しいですよね・・・
一般的なコンパニオンアプリってでもタイピングとかに連動して~みたいなの結構あったりするっていう感じですよね??(ここまで書いておいてあれなのだけど、一度もそういったゲームで遊んだことはないんだよね・・・)そういうのを検知して頑張ったね的なのか、あとはGodotの起動時間を取れたりするのだろうか?とったりして何とか・・・みたいなね!
サボっていたらの方はより見たことない気はするけど・・・画面キャプチャー撮ってそれを見てLLM的に判断してもらうとか?まあ、単純に自分はActivityWatchっていう開いたアプリの時間とかを計測してくれるアプリを入れているからそこから情報をもらってもいいんだろうけど・・・それを見て行動を促してくれるとかね?
そんな感じのことができないかなぁ~~とふわふわと考えている感じですねぇ~~・・・
背景を透過する
プロジェクト⇒プロジェクト設定の中の 表示>ウィンドウ内にそのまま「透明」っていう項目がいるみたいですね!!こいつでいいみたい!!
それと同じページにいる「ボーダーレス」「画面を常に最前面にする」っていうのもこういうデスクトップコンパニオン的なアプリにするためにオンにしておくと良さそう!!!
デバッグプレビュー的な画面だと透過して見れないのかな??実際に出力してみる必要があるかも??
と思って実際に書き出してみたけどダメ見たいだ・・・まだ何か必要なのかも・・・
ふーん
レンダリング > ビューポート のTransparent Backgrondにもチェックを入れる必要があったみたいね。入れてみた。ダメでした。
表示 > ウィンドウ のピクセル単位の透明度っていうのもデフォルトでは透明にならない設定になって入るみたい・・・そこもオンにする。(なんで三か所に分けたんだろう・・・・)そしてエディタの再起動が必要みたい。
おーーー!!これでいけてそうな感じあるね!!!
きたー!!!
(が・・・ボーダーレスのアプリってどうやって位置移動させるんだ・・・?っていうか一般的なコンパニオンアプリって位置移動とかするのか・・??)
とりあえずできましたが、パッと触ってみただけでも
- ウィンドウの位置移動とかどうしよう・・・(起動時にいい感じの位置設定する?なんか勝手にそんなイメージがあるな??)
- 透過はしているけど、見た目が透過しているだけで後ろのウィンドウ触れない?っぽいのはどうなのだろうか?(文字選択できないかとか、方法があるのか?)
とかこのあたり気になったので今後の課題かもですねぇ・・・
ちょっと既存のデスクトップコンパニオンアプリを見てみている。なるほど・・・ウィンドウを隠すとかそういう使い方もできるか!!(でもそれをやろうと思ったらあれかぁ・・・全画面占有しておいて~になるのだろうか??)
まあいいや!一旦こんな感じってことだね~