コンテンツにスキップ

アセット管理

Argodeは、開発者のワークフローを簡素化しつつパフォーマンスを最適化するように設計された、堅牢でインテリジェントなゲームアセット管理システムを提供します。その核となる哲学は、スクリプト中心の定義と予測的なプリロードを中心に展開しています。

スクリプト中心のアセット定義

エディタでの手動アセットインポートと設定を必要とすることが多い従来のゲーム開発ワークフローとは異なり、Argodeではゲームアセットのほとんどを.rgdスクリプトファイル内で直接定義できます。このアプローチにはいくつかの利点があります。

  • バージョン管理に優しい: すべてのアセット定義はプレーンテキストであるため、バージョン管理システムで簡単に追跡、比較、マージできます。
  • ライターに優しい: ライターは物語と並行してアセットを宣言できるため、異なるツール間を切り替える必要がありません。
  • 一括操作: テキストの簡単な操作により、アセットの名前変更、再編成、複製が簡単になります。
  • 自己文書化: アセット定義はスクリプト内のインラインドキュメントとして機能します。

.rgdファイルで特定のアセット定義ステートメントを使用します。

  • character: 名前、表示名、色を持つキャラクターを定義します。
    character alice "Alice" color=#ff69b4
    
  • image: 通常、背景やキャラクターのスプライトである画像を定義し、スマートなパス解決を行います。
    image bg_forest "backgrounds/forest_day.jpg"
    image alice_happy "characters/alice/happy.png"
    
  • audio: 背景音楽(BGM)や効果音(SFX)のオーディオファイルを定義し、プリロードオプションも利用できます。
    audio bgm_main "music/main_theme.ogg" preload=true
    audio sfx_door "sounds/door_open.wav"
    
  • shader: 視覚効果のためのカスタムシェーダーリソースを定義します。
    shader screen_blur "shaders/blur.gdshader"
    
  • ui_scene: uiコマンドで使用するUIシーン(.tscnファイル)を定義します。
    ui_scene main_menu "ui/main_menu.tscn"
    

これらの定義は、専用の定義マネージャー(例:AudioDefinitionManagerImageDefinitionManagerCharacterDefinitionManagerShaderDefinitionManagerUISceneDefinitionManager)によって処理され、アセットが正しく登録され、使用準備が整っていることを保証します。

予測的なアセットプリロード

Argodeの最も強力な機能の1つは、インテリジェントで予測的なアセットプリロードシステムです。起動時に、Argodeは.rgdスクリプト構造全体を静的に分析し、包括的な制御フローグラフを構築します。

このグラフにより、Argodeは次のことが可能になります。

  • 到達可能性の分析: スクリプト内の任意の時点からどのアセットに到達可能かを判断します。
  • ニーズの予測: 物語の流れと潜在的なプレイヤーの選択に基づいて、次に必要となる可能性のあるアセットを予測します。
  • ロードの最適化: 必要になる直前にアセットを自動的にプリロードし、ロード画面を最小限に抑え、シームレスなプレイヤーエクスペリエンスを保証します。
  • メモリの管理: 到達不能になったアセットを効率的にアンロードし、メモリ使用量を最適化します。

この自動最適化により、通常、アセットのロードやアンロードを手動で管理する必要がなくなり、ストーリーテリングに集中できます。

アセットパスと解決

Argodeは、アセットパスにGodotのリソースパスシステム(例:res://)を使用します。アセットを定義する際には、プロジェクトのres://ルートからの相対パスを指定します。Argodeの定義マネージャーは、これらのリソースの解決とロードを処理します。


システム概要について学ぶ → コアコンポーネントを見る →