コンテンツにスキップ

テーマ設定ガイド

Argodeは、Godot Engineの強力な組み込みテーマシステムを活用して、ビジュアルノベルのユーザーインターフェース、特にAdvScreenを広範囲にカスタマイズできるようにします。カスタムのThemeリソースを作成して適用することで、Argodeのコアコードを変更することなく、すべてのUI要素のルックアンドフィールを制御できます。

Godotテーマの理解

Godotでは、Themeリソースは、Controlノードに適用できるスタイル、フォント、色、アイコンのコレクションです。ControlノードがアクティブなThemeを持つシーンの一部である場合、そのテーマで定義されたスタイルを自動的に使用します。

カスタムテーマの作成

  1. 新しいThemeリソースを作成: Godotエディターのファイルシステムドックで右クリックし、New Resource...を選択し、Themeを検索して保存します(例: res://assets/themes/my_game_theme.tres)。
  2. テーマの編集: .tresファイルをダブルクリックしてテーマエディターを開きます。ここで、さまざまなControlタイプ(例: LabelButtonPanel)のスタイルを追加および変更できます。
    • タイプ: スタイルを設定したいControlノードタイプを選択します(例: Label)。
    • プロパティ: 変更したいプロパティを選択します(例: font_colorfont_sizenormalスタイルボックス)。
  3. テーマの適用:
    • プロジェクト全体: プロジェクト → プロジェクト設定 → GUI → テーマに移動し、カスタムテーマをカスタムテーマとして設定します。これにより、プロジェクト内のすべてのUI要素にテーマが適用されます。
    • シーン固有: 特定のControlノードのthemeプロパティにテーマを適用します。このテーマは、そのノードとそのすべての子に適用されます。

AdvScreenのカスタマイズ

AdvScreenは標準のGodot Controlノードを使用して構築されているため、Godotのテーマシステムを完全に尊重します。使用するControlタイプにスタイルを定義することで、その外観をカスタマイズできます。

テーマ設定する主要なAdvScreen要素

  • Label: ダイアログテキスト、キャラクター名、メニューオプション用。
    • 一般的なプロパティ: font_colorfont_sizefontoutline_sizeoutline_color
  • Panel: メッセージボックスの背景用。
    • 一般的なプロパティ: panel(背景描画用のStyleBoxリソース)。
  • Button: 選択メニューボタン用。
    • 一般的なプロパティ: normalhoverpressedfocusスタイルボックス。font_colorfont_size

例: ダイアログのフォントと色の変更

  1. カスタムThemeリソースを開きます。
  2. テーマエディターで、タイプオーバーライドを追加を選択します。
  3. タイプとしてLabelを選択します。
  4. Labelの下で、色 → font_colorを見つけて、希望の色(例: 白の#FFFFFF)を設定します。
  5. Labelの下で、フォント → fontを見つけて、カスタムフォントリソース(例: res://assets/fonts/my_font.ttf)をロードします。

これにより、AdvScreenのダイアログテキストを含む、このテーマの影響を受けるプロジェクト内のすべてのLabelノードのフォントと色が変更されます。

テーマ設定のベストプラクティス

  • シンプルに始める: まずはいくつかの主要なプロパティ(フォントやメインパネルの背景など)を変更することから始め、そこから拡張していきます。
  • テーマファイルの整理: 複雑なテーマの場合は、異なるセクション(例: dialogue_theme.tresmenu_theme.tres)用に小さな.tresファイルに分割し、それらをマスターテーマで結合することを検討してください。
  • 定期的にテスト: テーマの変更がUIにどのように影響するかを確認するために、頻繁にゲームを実行してください。
  • テーマオーバーライドを使用: グローバルテーマからわずかなバリエーションが必要な特定の場合には、インスペクターでControlノードに直接テーマオーバーライドセクションを使用します。

Godotのテーマシステムを習得することで、Argodeビジュアルノベルの視覚的な表現を完全に制御できます。