メインコンテンツまでスキップ

Wukuro

Wukuro は、WaaS を基盤とする Unity 向けのイベントスクリプトのフレームワークです。会話、演出、分岐などのゲーム内のイベントを Rust で記述し、WebAssembly のコンポーネントとして Unity 上で実行します。

警告

Wukuro は非常に実験的な段階にあり、破壊的な変更が行われる可能性があります。

特徴​

  • Rust でイベントを記述できる: 条件分岐、繰り返し、関数による共通化など、言語の機能をそのまま使ってイベントを記述できます。
  • 1 つのファイルに複数のエントリポイント: 関数に #[entry] を付けるとエントリポイントになります。同じファイル内の定数や関数を、複数のイベントで共有できます。
  • インスペクタで引数を設定できる: エントリポイントの引数は、Unity のインスペクタからシーン内のオブジェクトやアセットを指定して渡せます。オブジェクトの型を制約することもできます。
  • ゲームに合わせて拡張する前提の設計: Wukuro 自体が提供する機能は、待機、変数、ログ、ダイアログなどの基本的なものに限られます。カメラ、サウンド、アイテムなどのゲーム固有の機能は、ゲーム側で C# のインターフェースとして定義して追加します。

構成​

Wukuro は、Unity パッケージと Rust のクレートから構成されます。

名前種類内容
com.ruccho.wukuroUnity パッケージスクリプトの実行、エントリポイントの参照、インスペクタ、wukuro:core と wukuro:dialog のホスト側の実装
wukuroRust クレートwukuro:core のバインディング、#[entry]、テキストとオブジェクトの型の補助
wukuro-macroRust クレートwukuro が用いる手続きマクロ
wukuro-dialogRust クレートwukuro:dialog のバインディングと、メッセージの表示の補助

ホストとスクリプトの間の関数と型は、Component Model の WIT のパッケージとして定義されています。

  • wukuro:core: コンテキスト、引数、変数、待機、テキストなどの基本的な機能
  • wukuro:dialog: ダイアログの表示(メッセージ、選択肢、フェード)

ゲーム固有の機能は、同じ方法で独自の WIT のパッケージとして追加します(機能の追加)。