【目次】
キャラクタエディタを開く
ローカルメモリの編集
初期設定(init)状態の作成
待機(idle)状態の作成
割り込み処理の作成
割り込み処理からの派生ステートの作成
プレイヤーアクションスクリプトを出力する
キャラクタエディタを開く▲
プレイヤー操作によってキャラクタにアクション(アニメーション)をさせるためには、
スクリプトによるアニメーション制御が必要になります。
ここからキャラクタエディタによるプレイヤーアクションスクリプトの作成に入りましょう。
■ キャラクタエディタを開く
Unity のメニューから MoEngine > CharacterEditor でキャラクタエディタが起動します。

起動すると、以下のような画面が開きますので、メニューから [保存] を選びます。

保存する場所とファイル名は以下を指定してください。
保存先の場所: C:/MOE_CEDEC_DEMO/MOE_CEDEC/Master
保存ファイル名 :player_root.xml

ローカルメモリの編集▲
モノビットMOエンジン v1.1 から「ローカルメモリ」の編集が出来るようになりました。
「ローカルメモリ」は、キャラクタ間で共有したい変数がある場合などに定義が必要です。
※ 「ローカルメモリ」を使うことで、例えば
「ダメージを受けたときに、[自分の体力値] を [相手の攻撃力] の分だけ差し引く(=自分と相手のパラメータが必要)」
ということが簡単に出来るようになります。
■ ローカルメモリの編集画面を開く
では、ローカルメモリの編集画面を開きましょう。CharacterEditor 画面の [ローカルメモリ] ボタンをクリックします。

[ローカルメモリ] ボタンをクリックすると、以下のような画面が現れます。

■ 共通データ「HP(体力値)」「ATK(攻撃力値)」を追加する
ではここで、ローカルメモリに各キャラクタ間で共通で使用するデータとして「HP(体力値)」と「ATK(攻撃力値)」の
2つの変数を用意することにしましょう。
LocalMemory ウィンドウ内の「-----共通データ-----」の下にある[データ追加] のボタンを2回クリックしてください。

すると、共通データの項目欄に2件の新規レコードが作成されます。

追加されたレコードに対し、以下の順番で変数を定義しましょう。
1件目 → 名前:HP , 型 Int
2件目 → 名前:ATK , 型 Int

■ 共通データを保存する
追加した共通データを保存します。LocalMemory ウィンドウ内の [共通データを保存] をクリックしてください。

保存し終えたら、LocalMemory ウィンドウの右上の×ボタンをクリックして閉じてください。
※ まだ CharacterEditor ウィンドウは閉じないでください。

初期設定(init)状態の作成▲
今度はキャラクタスクリプトの作成に移ります。
まずは、キャラクタスクリプトの初期値を設定する「初期設定」の状態を作りましょう。
■ init ステートラベルの作成
以下の手順で init ステートラベルを作成してください。
1) CharacterEditer 画面の任意の場所を右クリックし、ポップアップメニューを表示させます。

2) ポップアップメニューから [システム処理] > [ステートラベル] を順にクリックします。

3) ステートラベルのボックスが現れますので、名前入力欄に init と記述します。

■ 開始ラベル と init ステートラベル を連結させる
[開始] 直後に init を実行させるため、以下の手順で [開始] ラベルの Out 端子 と [Init] ラベルの In 端子とを繋げます。




■ init ステートラベルの中身を作成する
続けて、init ステートラベルの中身を作成していきます。
1) [init] ステートラベル内の [エディタを開く] ボタンをクリックします。

2) するとCharacterEditor とは別に、新規に init ステートウィンドウが立ち上がります。

3) init ステートウィンドウには以下の手順でノードを追加していきます。
※ 内容として端的に説明すると、HPに100、ATKに10、死亡フラグおよび攻撃フラグをOFFにするという処理になります。
① idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数の設定] を選択し、
開始の Out 端子と 自身の In 端子を繋ぎます。

② idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [定数] を選択し、
型に「Int」、値に「100」を設定し、① の In 側 Value 端子と 自身の Out 端子を繋ぎます。

③ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [ローカルメモリ] を選択し、
型に「Int」、名前に「HP」を設定し、① の Out 側 Value 端子と 自身の In 端子を繋ぎます。

④ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数の設定] を選択し、
① の Out 端子と 自身の In 端子を繋ぎます。

⑤ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [定数] を選択し、
型に「Int」、値に「25」を設定し、④ の In 側 Value 端子と 自身の Out 端子を繋ぎます。

⑥ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [ローカルメモリ]
を選択し、
型に「Int」、名前に「ATK」を設定し、④ の Out 側 Value 端子と 自身の In 端子を繋ぎます。

⑦ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数の設定] を選択し、
④ の Out 端子と 自身の In 端子を繋ぎます。

⑧ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [定数] を選択し、
型に「Int」、値に「0」を設定し、⑦ の In 側 Value 端子と 自身の Out 端子を繋ぎます。

⑨ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数] を選択し、
型に「Int」、名前に「DeadFlag」を設定し、⑦ の Out 側 Value 端子と 自身の In 端子を繋ぎます。

⑩ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数の設定] を選択し、
⑦ の Out 端子と 自身の In 端子を繋ぎます。同時に、⑧ の Out 端子と自身の In 側 Value 端子とを繋ぎます。

⑪ idle ステートウィンドウの任意の場所を右クリックし、ポップアップメニューから [変数・定数] > [変数] を選択し、
型に「Int」、名前に「AttackFlag」を設定し、⑩ の Out 側 Value 端子と 自身の In 端子を繋ぎます。

■ init ステートウィンドウを閉じる
init ステートの中身は上記だけですので、組み込み終わったら 右上の×ボタンを押して閉じます。
※ まだ CharacterEditor ウィンドウは閉じないでください。

■ CharacterEditor の内容を上書き保存しておく
ここまでの操作で、CharacterEditer の内容を上書き保存しておきましょう。
※ まだ CharacterEditor ウィンドウは閉じないでください。

待機(idle)状態の作成▲
キャラクタスクリプトの基本姿勢となる「待機」の状態を作ります。
■ idle ステートラベルの作成
CharacterEditor 上で右クリックし、メニューから [システム処理] > [ステートラベル] を選択し、
ステートラベル名を「idle」とした上で、init ステートの Out 端子と、自身の In 端子を連結させてください。
先ほどまでの手順と同じような手続きをとれば、上記の内容で以下のようになります。

同様の手順で、idleの Out 端子と In 端子を連結させてみましょう。
(idle の Out 端子を左クリックし、マウスムーブで線が延びることを確認した後、同じ idle の In 端子を左クリック)
これで idle ステートのループが完成します。

■ idle ステートラベルの中身を作成する
続けて、idle ステートラベルの [エディタを開く] ボタンをクリックし、idle ステートラベルウィンドウを開いた後、
idle ステートラベルウィンドウ に対して以下の内容を組み込んでください。
※ 内容として端的に説明すると、「100ミリ秒待ち続ける」をループ=何もしないという処理になります。
① 右クリックメニューから [システム処理] > [待機] を選択し、入力欄には 100 を設定し、[ 開始 ] の Out 端子と自身の
In 端子を繋ぐ。
上記工程の結果、idle ステートウィンドウ内が以下のようになっていれば問題ありません。

■ idle ステートウィンドウを閉じる
idle ステートの中身は上記だけですので、組み込み終わったら 右上の×ボタンを押して閉じます。
※ まだ CharacterEditor ウィンドウは閉じないでください。

■ CharacterEditor の内容を上書き保存しておく
ここまでの操作で、CharacterEditer の内容を上書き保存しておきましょう。
※ まだ CharacterEditor ウィンドウは閉じないでください。

割り込み処理の作成▲
キャラクタ操作中に何らかのイベント(ダメージを受けた、死亡した、何らかの操作を行なった、など)が行なわれた場合、
「割り込み」という制御が働きます。今回キャラクタを「操作する」というイベントに応じてアニメーションを切り替える
必要がありますので、この割り込み処理を記述していきましょう。
■ 割り込み処理を追加する
以下の手順で、CharacterEditor 上に割り込み処理を追加してください。
※ 内容として端的に説明すると、死亡したときには end を、ダメージを受けたら damage_start を、
入力操作があったら input_select を、それぞれ実行するという処理になります。
① 右クリックメニューから [システム処理] > [割り込み処理] を選択し、割り込み処理名を「Message」とする。
② 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 == Arg2」にして、① の Out 端子と自身の In 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [変数] を選択し、型を「Int」、名前を「DeadFlag」にして、② の Arg1 端子と自身の Out 端子を繋ぐ。
④ 右クリックメニューから [変数・定数] > [定数] を選択し、型を「Int」、値を「1」にして、② の Arg2 端子と自身の Out 端子を繋ぐ。
⑤ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「end」にして、② の True 端子と自身の In 端子を繋ぐ。
⑥ 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 == Arg2」にして、② の False 端子と自身の In 端子を繋ぐ。
⑦ 右クリックメニューから [変数・定数] > [システム変数] を選択し、名前を「Interrupt Type」にして、⑥ の Arg1 端子と自身の Out 端子を繋ぐ。
⑧ 右クリックメニューから [変数・定数] > [システム定数] を選択し、名前を「DAMAGE」にして、⑥ の Arg2 端子と自身の Out 端子を繋ぐ。
⑨ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「damage_start」にして、⑥ の True 端子と自身の In 端子を繋ぐ。
⑩ 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 == Arg2」にして、⑥ の False 端子と自身の In 端子を繋ぐ。
同時に、⑦ の Out 端子と自身の Arg1 端子とを繋ぐ。
⑪ 右クリックメニューから [変数・定数] > [システム定数] を選択し、システム定数名を「INPUT」にして、⑩ の Arg2 端子と自身の Out 端子を繋ぐ。
⑫ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「input_select」にして、⑩ の True 端子と自身の In 端子を繋ぐ。
⑬ 右クリックメニューから [システム処理] > [割り込み終了] を選択し、⑩ の False 端子と自身の In 端子を繋ぐ。
上記工程の結果、CharacterEditor ウィンドウが以下のようになっていれば問題ありません。

■ end ステート処理を追加する
続けて、CharacterEditor 上の ⑤ として加えた「end ステート」の処理内容について記述します。
end ステートの [エディタを開く] ボタンをクリックして、end ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、死んでいる間、割り込み処理(入力制御など)を何もさせないという処理になります。
① 右クリックメニューから [システム処理] > [割り込み終了] を選択し、[開始] の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、end ステートウィンドウが以下のようになっていれば問題ありません。

■ damage_start ステート処理を追加する
続けて、CharacterEditor 上の ⑨ として加えた「damage_start ステート」の処理内容について記述します。
damage_start ステートの [エディタを開く] ボタンをクリックして、damage_start ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、自分の体力値から、相手の攻撃力値を引くという処理になります。
① 右クリックメニューから [共通処理] > [ユニットパラメータ取得] を選択し、型に「Int」、ユニット名に「COMMON」、パラメータ名に「ATK」を設定し、
[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [システム変数] を選択し、変数名に「Fact Unit Id」を設定し、① の UnitId 端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [算術演算] を選択し、計算式に「Value -= Arg1」を設定し、① の Out 端子と自身の In 端子を繋ぐ。
④ 右クリックメニューから [変数・定数] > [戻り値] を選択し、③ の Arg1 端子と自身の Out 端子を繋ぐ。
⑤ 右クリックメニューから [変数・定数] > [ローカルメモリ] を選択し、型に「Int」、名前に「HP」を設定し、③ の Value 端子と自身の In 端子を繋ぐ。
⑥ 右クリックメニューから [システム処理] > [割り込み終了] を選択し、ラベル名に「damage_wait」を設定し、③ の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、damage_start ステートウィンドウが以下のようになっていれば問題ありません。

■ input_select ステート処理を追加する
続けて、CharacterEditor 上の ⑫ として加えた「input_select ステート」の処理内容について記述します。
input_select の [エディタを開く] ボタンをクリックして、input_selectステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、マウスムーブ(スライド)で move_start を、マウスクリック(タップ)attack_startを実行するという処理になります。
① 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 and Arg2」にして、[開始]
の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [システム変数] を選択し、システム変数名を「Input Flag」とし、① の
Arg1 端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [システム定数] を選択し、システム定数名を「MOVE」とし、① の Arg2
端子と自身の Out 端子を繋ぐ。
④ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「move_start」とし、①
の True 端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 and Arg2」にして、① の
False 端子と自身の In 端子を繋ぐ。
同時に ② の Out 端子と自身の Arg1 端子を繋ぐ。
⑥ 右クリックメニューから [変数・定数] > [システム定数] を選択し、システム定数名を「TAP」とし、⑤ の Arg2 端子と自身の
Out 端子を繋ぐ。
⑦ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「attack_start」とし、⑤
の True 端子と自身の In 端子を繋ぐ。
⑧ 右クリックメニューから [システム処理] > [割り込み終了] を選択し、⑤ の False 端子と自身の In 端子を繋ぐ。
上記工程の結果、input_select ステートウィンドウが以下のようになっていれば問題ありません。

■ move_start ステート処理を追加する
更に、input_select ステートウィンドウ内に含まれている「move_start ステート」の処理内容について記述します。
move_start の [エディタを開く] ボタンをクリックして、move_start ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、AttackFlag をOFF にして、RunFlagをTRUEにする=走らせる、のち move_waitステートを実行という処理になります。
① 右クリックメニューから [変数・定数] > [変数の設定] を選択し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [定数] を選択し、型に「Int」、数値に「0」を設定し、① の In 側 Value
端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [変数] を選択し、型に「Int」、名前に「AttackFlag」を設定し、①
の Out 側 Value 端子と自身の In 端子を繋ぐ。
④ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素をBool、パラメータ名を
RunFlag 、
パラメータのチェックボックスを ON にし、① の Out 端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [システム処理] > [割り込み終了] を選択し、終了ラベル欄に move_wait と記述し、④
の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、move_start ステートウィンドウが以下のようになっていれば問題ありません。

■ attack_start ステート処理を追加する
更に、input_select ステートウィンドウ内に含まれている「attack_start ステート」の処理内容について記述します。
attack_start の [エディタを開く] ボタンをクリックして、attack_start ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、AttackFlag が OFF の場合、AttackFlag を ON にして、AttackTriggerをTRUEにする=攻撃モーション開始、
攻撃コリジョン(サブコリジョン)を生成する、のち attack_waitステートを実行するという処理になります。
① 右クリックメニューから [変数・定数] > [比較演算] を選択し、比較演算を「Arg1 == Arg2」にして、[開始]
の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [変数] を選択し、型を「Int」、名前を「AttackFlag」にして、① の
Arg1 端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [定数] を選択し、型を「Int」、値を「1」にして、① の Arg2 端子と自身の
Out 端子を繋ぐ。
④ 右クリックメニューから [システム処理] > [ブランチ実行] を選択し、実行ラベル欄に「end」と記述し、① の True
端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [変数・定数] > [変数の設定] を選択し、① の False 端子と自身の In 端子を繋ぐ。
同時に、③ の Out 端子と自身の In 側 Value 端子を繋ぐ。
⑥ 右クリックメニューから [変数・定数] > [変数] を選択し、型を「Int」、名前を「AttackFlag」にして、⑤ の
Out 側 Value 端子と自身の In 端子を繋ぐ。
⑦ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素をBool、パラメータ名を
RunFlag 、
パラメータのチェックボックスを OFF にし、⑤ の Out 端子と自身の In 端子を繋ぐ。
⑧ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素をTrigger、パラメータ名を
AttackTriggerにし、
⑦の Out 端子と自身の In 端子を繋ぐ。
⑨ 右クリックメニューから [ユニット制御] > [サブコリジョン] を選択し、オフセット値に( 0, 0, 0.5 ) を、効果範囲に
1 を、効果時間に 0.5 を設定し、
⑧ の Out 端子と自身の In 端子を繋ぐ。
⑩ 右クリックメニューから [システム処理] > [割り込み終了] を選択し、終了ラベル欄に attack_wait と記述し、
⑨ の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、attack_start ステートウィンドウが以下のようになっていれば問題ありません。

■ end, damage_start, input_select, move_start, attack_start ステートウィンドウを閉じる
end, damage_start, input_select, move_start, attack_startステートの中身は上記だけですので、
組み込み終わったら 右上の×ボタンを押して閉じます。
※ まだ CharacterEditor ウィンドウは閉じないでください。

■ CharacterEditor の内容を上書き保存しておく
ここまでの操作で、CharacterEditer の内容を上書き保存しておきましょう。
※ まだ CharacterEditor ウィンドウは閉じないでください。

割り込み処理からの派生ステートの作成▲
上述の割り込み処理にて、以下の3つのステートから独立して派生するステートが必要になります。
・「move_start」ステート終了後に実行される「move_wait」ステート
・「attack_start」ステート終了後に実行される「attack_wait」ステート
・「damage_start」ステート終了後に実行される「damage_wait」ステート
必要がありますので、この割り込み処理を記述していきましょう。
■ 派生ステートを追加する
以下の手順で、CharacterEditor 上に派生ステートを追加してください。
※ 内容として端的に説明すると、「走る」「攻撃する」「ダメージを受ける」モーションを終了したら idle に戻すという処理になります。
① 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「move_wait」とし、「Idle」の
In 端子と自身の Out端子を繋ぐ。
② 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「attack_wait」とし、「Idle」の
In 端子と自身の Out端子を繋ぐ。
③ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「damage_wait」とし、「Idle」の
In 端子と自身の Out端子を繋ぐ。
上記工程の結果、CharacterEditor が以下のようになっていれば問題ありません。

■ move_wait ステート処理を追加する
続けて、CharacterEditor 上の ① で加えた「move_wait ステート」の処理内容について記述します。
move_wait の [エディタを開く] ボタンをクリックして、move_waitステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、入力を中断したら、100ミリ秒後にRunFlagをFALSEにしてidleを実行=走るのをやめるという処理になります。
① 右クリックメニューから [システム処理] > [待機] を選択し、数値 100 を設定し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素をBool、
パラメータ名を RunFlag 、パラメータのチェックボックスを OFF にし、① の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、move_wait ステートウィンドウが以下のようになっていれば問題ありません。

■ attack_wait ステート処理を追加する
更に、CharacterEditor 上の ② で加えた「attack_wait ステート」の処理内容について記述します。
attack_wait の [エディタを開く] ボタンをクリックして、attack_wait ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、攻撃を中断したら、700ミリ秒後にAttackFlagをOFFにし、idleを実行=攻撃するのをやめるという処理になります。
① 右クリックメニューから [システム処理] > [待機] を選択し、数値 700 を設定し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [変数の設定] を選択し、① の Out 端子と自身の In 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [定数] を選択し、型に「Int」、値に「0」を設定し、② の In 側 Value
端子と自身の Out 端子を繋ぐ。
④ 右クリックメニューから [変数・定数] > [変数] を選択し、型に「Int」、名前に「AttackFlag」を設定し、②
の Out 側 Value 端子と自身の In 端子を繋ぐ。
上記工程の結果、attack_wait ステートウィンドウが以下のようになっていれば問題ありません。

■ damage_wait ステート処理を追加する
更に、CharacterEditor の ③ で加えた「damage_wait ステート」の処理内容について記述します。
damage_wait の [エディタを開く] ボタンをクリックして、damage_wait ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、HPが0以下なら死亡ステートへ、それ以外はダメージモーションを取り、AttackFlagをOFFにするという処理になります。
① 右クリックメニューから [変数・定数] > [比較分岐] を選択し、比較演算を「Arg1 <= Arg2」に設定し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [ローカルメモリ] を選択し、型に「Int」、名前に「HP」を設定し、① の Arg1
端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [定数] を選択し、型に「Int」、値に「0」を設定し、① の Arg2 端子と自身の Out 端子を繋ぐ。
④ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「dead_start」とし、①
の True 端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素を「Trigger」、
パラメータ名を「DamageTrigger」に設定し、① の False 端子と自身の In 端子を繋ぐ。
⑥ 右クリックメニューから [システム処理] > [待機] を選択し、数値 300 を設定し、⑤ の Out 端子と自身の In 端子を繋ぐ。
⑦ 右クリックメニューから [変数・定数] > [変数の設定] を選択し、⑥ の Out 端子と自身の In 端子を繋ぐ。
⑧ 右クリックメニューから [変数・定数] > [定数] を選択し、型に「Int」、値に「0」を設定し、⑦ の In 側 Value
端子と自身の Out 端子を繋ぐ。
⑨ 右クリックメニューから [変数・定数] > [変数] を選択し、型に「Int」、名前に「AttackFlag」を設定し、⑦
の Out 側 Value 端子と自身の In 端子を繋ぐ。
上記工程の結果、damage_wait ステートウィンドウが以下のようになっていれば問題ありません。

■ dead_start ステート処理を追加する
更に、damage_waitステートウィンドウの ④ で加えた「dead_start ステート」の処理内容について記述します。
dead_start の [エディタを開く] ボタンをクリックして、dead_start ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、死亡フラグを立て、倒れるアニメーションをして、respawn_start を実行するという処理になります。
① 右クリックメニューから [変数・定数] > [変数の設定] を選択し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [変数・定数] > [定数] を選択し、型に「Int」、値に「1」を設定し、① の In 側 Value 端子と自身の Out 端子を繋ぐ。
③ 右クリックメニューから [変数・定数] > [変数] を選択し、型に「Int」、名前に「DeadFlag」を設定し、① の Out 側 Value 端子と自身の In 端子を繋ぐ。
④ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素をTrigger、
パラメータ名を DownTrigger に設定し、① の Out 端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [システム処理] > [待機] を選択し、数値に「2000」を設定し、④ の Out 端子と自身の In 端子を繋ぐ。
⑥ 右クリックメニューから [システム処理] > [ステートラベル] を選択し、ステートラベル名を「respawn_start」とし、⑤ の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、dead_start ステートウィンドウが以下のようになっていれば問題ありません。

■ respawn_start ステート処理を追加する
更に、dead_start ステートウィンドウの ⑥ で加えた「respawn_start ステート」の処理内容について記述します。
respawn_start の [エディタを開く] ボタンをクリックして、respawn_start ステートウィンドウに以下の手順で処理を加えてください。
※ 内容として端的に説明すると、リスポーン位置まで戻して、立ち上がるアニメーションをして、初期設定(init)をするという処理になります。
① 右クリックメニューから [ユニット制御] > [リスポーン] を選択し、[開始] の Out 端子と自身の In 端子を繋ぐ。
② 右クリックメニューから [システム処理] > [待機] を選択し、数値に「700」を設定し、① の Out 端子と自身の In 端子を繋ぐ。
③ 右クリックメニューから [ユニット制御] > [アニメーションパラメータ] を選択し、パラメータ要素に「Trigger」、
パラメータ名に「RespawnTrigger」を設定し、② の Out 端子と自身の In 端子を繋ぐ。
④ 右クリックメニューから [システム処理] > [待機] を選択し、数値に「600」を設定し、③ の Out 端子と自身の In 端子を繋ぐ。
⑤ 右クリックメニューから [システム処理] > [ブランチ実行] を選択し、ブランチ名を「init」とし、④ の Out 端子と自身の In 端子を繋ぐ。
上記工程の結果、respawn_start ステートウィンドウが以下のようになっていれば問題ありません。

■ move_wait, attack_wait, damage_wait, dead_start, respawn_start ステートウィンドウを閉じる
move_wait, attack_wait, damage_wait, dead_start, respawn_start ステートの中身は上記だけですので、
組み込み終わったら 右上の×ボタンを押して閉じます。
※ まだ CharacterEditor ウィンドウは閉じないでください。

■ CharacterEditor の内容を上書き保存しておく
ここまでの操作で、CharacterEditer の内容を上書き保存しておきましょう。
※ まだ CharacterEditor ウィンドウは閉じないでください。

プレイヤーアクションスクリプトを出力する▲
CharacterEditor で編集したプレイヤー制御をスクリプトに出力します。
■ スクリプトを出力する
CharacterEditor のメニューから [スクリプトを出力] ボタンをクリックします。

保存する場所とファイル名は以下を指定してください。
保存先の場所: C:/MOE_CEDEC_DEMO/MOE_CEDEC/Master
保存ファイル名 :player_root.mos

所定の場所(Master)にSimplePlayer.mos および SimplePlayer_param.h が作成され、
以下のダイアログが表示されますので [OK] ボタンをクリックします。

■ CharacterEditor を閉じる
スクリプトが出力されたら、CharacterEditor ウィンドウの右上の×ボタンをクリックして終了します。

以下のダイアログが表示されたら[YES]ボタンをクリックしてください。
