マネージャーAPIリファレンス
Argodeのモジュール式アーキテクチャは、ビジュアルノベルプロジェクト内の特定のドメインをそれぞれ処理する、専門化されたマネージャーのコレクションに基づいて構築されています。これらのマネージャーは、中央のArgodeSystemシングルトンのプロパティとしてアクセスでき、フレームワークの機能との整理された効率的な相互作用を可能にします。
このドキュメントでは、主要なマネージャーとその役割の概要を説明します。個々のマネージャーの詳細なAPI仕様については、それぞれのドキュメント(利用可能な場合)またはソースコードを参照してください。
マネージャーへのアクセス
すべてのマネージャーはArgodeSystemの子ノードであり、そのプロパティを介してアクセスできます。
var argode_system = get_node("/root/ArgodeSystem") # またはグローバルに設定されている場合はArgodeSystem
var ui_manager = argode_system.UIManager
var variable_manager = argode_system.VariableManager
# ...その他のマネージャーも同様
コアマネージャーの概要
UIManager
UIManagerは、ユーザーインターフェースのすべての側面を担当します。UIシーン(.tscnファイル)のロード、表示、解放を処理し、ダイアログボックス、選択メニュー、その他のインタラクティブなUIコンポーネントなどの要素を管理します。LayerManagerと密接に連携して、UI要素が画面に正しく配置されるようにします。
主な責任: * ダイアログとキャラクター名の表示。 * 選択メニューの表示とユーザー選択の処理。 * カスタムUIシーン(例:インベントリ、設定画面)のロードと管理。 * メッセージウィンドウの可視性と状態の制御。
VariableManager
VariableManagerは、ゲーム関連のすべての変数とデータの中央リポジトリです。プリミティブ型、配列、辞書などのさまざまなデータ型をサポートし、複雑で動的な物語の状態を可能にします。.rgdスクリプトとGDScriptから直接変数と条件を設定、取得、評価するためのメソッドを提供します。
主な責任:
* グローバル変数とローカル変数の保存と管理。
* 条件式(ifステートメント)の評価。
* キャラクター定義とその関連データの処理。
* 配列と辞書のデータ構造の管理。
CharacterManager
CharacterManagerは、ビジュアルノベル内のキャラクターの管理に特化しています。キャラクターの定義(名前、表示名、色)、表情、画面上での視覚的な表示を処理し、物語全体で一貫した表現を保証します。LayerManagerと連携して、指定されたレイヤーにキャラクターを表示します。
主な責任:
* キャラクター定義の登録と取得。
* CharacterDefinitionManagerと連携し、詳細なキャラクターデータと表情を管理します(v2機能)。
* 指定された表情と位置でキャラクターを表示および非表示にする。
* キャラクター固有の視覚効果の管理。
重要な注意事項:
* show_sceneの非推奨化: CharacterManager内のshow_sceneメソッドは非推奨となりました。画面にキャラクターを表示するには、LayerManagerの機能を使用することが推奨されます。これにより、視覚レイヤーをより柔軟かつ堅牢に制御できます。
* レガシースクリプトの互換性: 以前のスクリプトとの互換性のために、Argodeは以前のCharacterManagerメソッドに対するフォールバックメカニズムを提供しています。しかし、キャラクター表示には最新のLayerManager機能を使用するようにスクリプトを更新することを強く推奨します。
LayerManager
LayerManagerは、Godotプロジェクト内の異なるCanvasLayerノード間で視覚要素を整理および表示するための柔軟なシステムを提供します。厳密なシーン構造を強制するのではなく、レイヤーの「役割」(例:「背景」、「キャラクター」、「UI」、「エフェクト」)を定義し、それらを実際のCanvasLayerノードにマッピングできます。
主な責任:
* レイヤーの役割をCanvasLayerノードにマッピングする。
* トランジションを伴う背景の変更を処理する。
* キャラクターとUI要素をそれぞれのレイヤーに配置する。
* 視覚的な深度を制御するための構造化された方法を提供する。
CustomCommandHandler
CustomCommandHandlerは、Argodeの強力な拡張性へのゲートウェイです。カスタムGDScriptまたはC#ロジックを.rgdスクリプトに直接統合できます。ScriptPlayerが認識しないコマンドを検出すると、CustomCommandHandlerがシグナルを発行し、定義したカスタム機能を実行できます。
主な責任:
* カスタムコマンドの登録(BaseCustomCommandインスタンスまたはCallableを介して)。
* .rgdスクリプトからのカスタムコマンド呼び出しをGDScript関数にディスパッチする。n* 同期および非同期のカスタムコマンド実行を管理する。
LabelRegistry
LabelRegistryは、.rgdスクリプトファイルをスキャンし、定義されたすべてのlabelのインデックスを構築する役割を担っています。これにより、効率的なクロスファイルジャンプと呼び出しが可能になり、複雑な分岐する物語とモジュール式のスクリプト編成をサポートします。
主な責任:
* 指定されたディレクトリ内の.rgdファイルをスキャンする。
* .rgdファイルを解析してラベルを識別および登録する。
* 複数のスクリプトファイルにわたるラベルのルックアップ機能を提供する。
TransitionPlayer
TransitionPlayerは、シーン、キャラクター、その他の視覚要素間の視覚的なトランジションを管理します。さまざまなトランジション効果(例:フェード、ディゾルブ、カスタムシェーダー)を適用するための一元化されたシステムを提供し、ビジュアルノベルの視覚的な流れを強化します。
主な責任: * 定義済みのトランジション効果を実行する。 * 背景の変更、キャラクターの出現/消失、その他の視覚イベントにトランジションを適用する。
定義マネージャー
Argodeは、.rgdスクリプトファイル内で宣言されたアセットの解析と登録を処理するために、いくつかの専門的な定義マネージャーを採用しています。これらのマネージャーは、アセットが正しく認識され、プリロードされ(設定されている場合)、フレームワークですぐに利用できることを保証します。
AudioDefinitionManager: 背景音楽(BGM)と効果音(SFX)の定義を管理します。-
CharacterDefinitionManager: 表情と関連リソースを含む、キャラクターの詳細な定義を管理します。 -
ImageDefinitionManager: 背景、キャラクタースプライト、その他の視覚アセットなどの画像の定義を管理します。 ShaderDefinitionManager: 視覚効果に使用されるカスタムシェーダーリソースの定義を管理します。UISceneDefinitionManager:uiコマンドを使用して表示できるUIシーン(.tscnファイル)の定義を管理します。