宴2.0カスタムコマンドについて

お知らせ


投稿日:2014年11月13日 | 最終更新日:2015年4月4日

 

宴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

ユニティちゃんライセンス

このアセットは、『ユニティちゃんライセンス』で提供されています。このアセットをご利用される場合は、『キャラクター利用のガイドライン』も併せてご確認ください。

ss_82


 コマンドの独自拡張のサンプルについて

まずは、3D表示の制御を。これは自分がやりたい処理を書きます。
ここでは、名前をキーに、3Dモデルの表示のON・OFFを行う簡単なものを作成。

ss_79

次に、デフォルトのコマンドを自分で作成したコマンドに変えるための処理を書きます。
Utage.AdvCommandParser.CallBackCreateCustomCommnadFromIDにコールバックを登録することで、可能です。


// カスタム処理
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;
		}
	}
}

ss_80

さらに、AdvEngineの初期化のタイミングで呼び出されるように、設定します。

ss_81

これで準備は完了です。
今回は、キャラクター表示の際に、CustomCommandCharacterというコマンドを作って、通常の2Dキャラ表示ではなく3Dキャラを表示するようにしてあります。
詳細はソースコードを確認してみてください。


このカスタムコマンドの仕組みはセーブロード機能への対応は考慮されていません。
「こういう拡張したいので、こういう機能が欲しい」などありましたら、コメントをよろしくお願いします。
また、「宴のシステムのこのタイミングに処理を挟みたいので、コールバック・イベントを登録できるようにして欲しい」というのがあったら、ぜひお願いします。Unity4.6でUnityEventという仕組みができたため、かなりカンタンにできるようになっているので、お気軽にどうぞ。

 

« »