ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

Unity経験者のGodotの遊び方:カスタムテーマの設定方法と、スクリプトからLabelの設定を変える方法について


このページではGodot4.2.1を使用して実験しています😃

以前、Labelのフォントの色を設定するのにTheme Overridesを使用すると書きました。
Theme Overridesは、そもそも設定されたTheme(テーマ)の項目を上書きする項目になりますが、同じ色のLabelを複数作成する場合など、それぞれのLabelTheme Overridesを設定するのは大変です。

そういう場合はカスタムテーマを作成し、Theme(テーマ)に設定する事で、同じ設定を反映する事ができます。

さて、肝心のThemeの設定の仕方ですが、


パッと見ると、Themeには設定できる項目がない様に見えますが、
Themeはここではなく、Theme専用のツールを使って編集することができます。

テーマエディタ

Godotファイルシステムの何もないところで右クリックし、「新規リソース」を選択します。


「Resouceを新規作成」のウィンドウからThemeを選択します。



「リソースを別名で保存」のウィンドウが表示されるので、ファイル名を指定して保存します。
下図の様な画面が表示されます。これがテーマエディタの画面になります。



まず、試しにLabelの設定を行ってみたいので、矢印の位置の+をクリックして、表示されるメニューからLabelを選択し、「タイプを追加」をクリックします。
下図の様にLabelで設定変更可能な項目を設定できる様になります。



図中の説明の様に、Themeに追加した項目の+をクリックすると、その設定項目がThemeに追加され、 インスペクターで設定変更できる様になり、プレビューでも状態を確認できる様になります。



テーマエディタ保存をクリックしてから閉じるテーマエディタを閉じます。
シーンツリーLabelのインスペクターから、Themeをクリックし、読み込みから先ほど作成したThemeファイルを読み込みます。
これで、Themeカスタムテーマを設定する事ができました。


スクリプトでThemeを変更する。

ゲーム中に文字の設定を変えないのであればここまでで問題ないのですが、ゲーム中に設定を変更する場合は下記の方法で可能です。

add_theme_color_override("font_color", Color(x,y,z,w))

Labelにアタッチされているスクリプトに、このメソッドを追加します。
このメソッドはフォントの色を変更する場合です。

他の要素を変更する場合はadd_theme_・・・の後に続くcolorを下図の赤字の項目に変更し、override(・・・の後の文字を青字に変更します。



大文字、小文字やスペースの扱いが微妙に異なる場合がありますので、詳細は公式ドキュメントを確認してください。