宴2.0カスタムコマンドについて
宴2.0βをバージョン02にアップデートしました。
不具合報告などは、ページ下部のコメント欄をお使いください。
ライセンス等については、こちらを http://madnesslabo.net/utage/?p=885
バージョン01は大事なファイルが抜けていて、動作してませんでした。すみません。
「キャラクター表示」や「BGM再生」などを、独自の処理に書き換える「カスタムコマンド」を追加しました。
使い方については、後日サンプルプロジェクトを公開します。
これでSendMessageを使わずに、3D表示やLive2Dなど独自のキャラクター表示ができるようになるかと思います。
Unityちゃんを使ったサンプルプロジェクトも用意しました。
https://dl.dropboxusercontent.com/u/16976971/Utage/Sample/UnityChanForUtage.unitypackage
このアセットは、『ユニティちゃんライセンス』で提供されています。このアセットをご利用される場合は、『キャラクター利用のガイドライン』も併せてご確認ください。
コマンドの独自拡張のサンプルについて
まずは、3D表示の制御を。これは自分がやりたい処理を書きます。
ここでは、名前をキーに、3Dモデルの表示のON・OFFを行う簡単なものを作成。
次に、デフォルトのコマンドを自分で作成したコマンドに変えるための処理を書きます。
Utage.AdvCommandParser.CallBackCreateCustomCommnadFromIDにコールバックを登録することで、可能です。
[csharp]
// カスタム処理
public class CustomCommandMangaer : MonoBehaviour
{
public ThreeDModelManager threeDModelManager;
//ADVエンジンが初期化されるタイミングで呼び出される
public void OnCustomInit()
{
Utage.AdvCommandParser.CallBackCreateCustomCommnadFromID += CreateCustomCommand;
}
//カスタムコマンドの作成用コールバック
public AdvCommand CreateCustomCommand(string id, StringGridRow row, AdvSettingDataManager dataManager)
{
switch (id)
{
//既存のコマンドを改造コマンドに変えたい場合は、IDで判別
case AdvCommandParser.IdCharacter:
return new CustomCommandCharacter(row, dataManager);
//新しい名前のコマンドも作れる
case ”NewCommand”:
return new CustomNewCommand(row, dataManager);
//改造しないものは特に処理せず、NULLを返せばOK
default:
return null;
}
}
}
[/csharp]
さらに、AdvEngineの初期化のタイミングで呼び出されるように、設定します。
これで準備は完了です。
今回は、キャラクター表示の際に、CustomCommandCharacterというコマンドを作って、通常の2Dキャラ表示ではなく3Dキャラを表示するようにしてあります。
詳細はソースコードを確認してみてください。
このカスタムコマンドの仕組みはセーブロード機能への対応は考慮されていません。
「こういう拡張したいので、こういう機能が欲しい」などありましたら、コメントをよろしくお願いします。
また、「宴のシステムのこのタイミングに処理を挟みたいので、コールバック・イベントを登録できるようにして欲しい」というのがあったら、ぜひお願いします。Unity4.6でUnityEventという仕組みができたため、かなりカンタンにできるようになっているので、お気軽にどうぞ。
2014年11月13日