
ここではメニューイベントについて説明しています。メニューイベントはキャラクターを右クリックしてポップアップメニューが表示された時に発生するイベントです。これを使用することでポップアップメニュー表示時のモーションを設定することが出来ます。
◆ポップアップメニュー表示時のモーションを設定する
モーション関数は「画像をドラッグする」で作成したMO_Stop_LとMO_Stop_Rを再利用します。もちろん新しくモーション関数を作成してもかまいません。また、メニューが出ている時にキャラクターの瞳がこちらを向くようにするため差分ファイルを用意して、イメージレイヤー関数を作成します。ここでは下の画像を使用しています。
◆イメージレイヤー関数を追加する
「イメージレイヤー(差分)を使う」で作成したイメージレイヤー関数IL_Eyeをコピーして貼り付けてください。
ここではFuncNameを変更して、<SET_PARAM>では目を開いている部分に新しい差分ファイル(画像)を設定してあります。
◆ポップアップメニュー表示時に移行するオーダー関数を追加する
「画像をドラッグする」で作成したOR_Drag_LとOR_Drag_Rをコピーして貼り付けてください。変更点は赤で表示しています。OR_Move_Up_L以下の関数は項目を一つ追加しているだけです。
OR_Menu_LとOR_Menu_RではFuncTypeにMENU_EVENTを設定しています。これを設定することでポップアップメニューが表示された時にイベントが発生し、このFuncTypeを持つオーダー関数に移行します。MENU_EVENTを持つオーダー関数ははポップアップメニューが消えた時にイベントが発生するのでポップアップメニューが消えたら通常動作に移行するようにFuncListEventを設定します(ここではFuncListEventに変更は加えていません)。また、FuncListLButtonにOR_Drag_LとOR_Drag_Rを設定してポップアップメニュー表示時に、キャラクターがドラッグされた時の右向き・左向きにあわせています。
OR_Move_Up_L以下で変更されている部分は右向き・左向きにあわせて関数が移行するようにFuncListMenuを設定しています。ポップアップメニューが表示されてイベントが発生した時にこの項目が有れば、その中から移行する関数が選択されます(複数設定可)。これを設定しない場合は、「画像をドラッグする」で説明した内部的なリストから選択されます(キャラクターの向きがランダムに変わってしまいます)。MENU_EVENTを持つオーダー関数が一つも無い時は、ポップアップメニューが表示されてもイベントは発生しません。 また、ここでは使用していませんがFlagMenuFuncをOFFと設定することでポップアップメニューが出ていてもメニューイベントが発生しないようにする事が可能です。

以上でスクリプトの変更は終了です。 これでキャラクター上で右クリックして、ポップアップメニューが表示された時にキャラクターの瞳がこちらを向いて、その場に停止します。
下記ファイルはここまで作成したサンプルのキャラクターデータです。
Menu_Event.zip
以上で「メニューイベントを使う」のチュートリアルを終了します。
「カスタムメニューを使う」へお進み下さい。
◆ポップアップメニュー表示時のモーションを設定する
モーション関数は「画像をドラッグする」で作成したMO_Stop_LとMO_Stop_Rを再利用します。もちろん新しくモーション関数を作成してもかまいません。また、メニューが出ている時にキャラクターの瞳がこちらを向くようにするため差分ファイルを用意して、イメージレイヤー関数を作成します。ここでは下の画像を使用しています。
![]() |
sample_eye_02.png |
◆イメージレイヤー関数を追加する
「イメージレイヤー(差分)を使う」で作成したイメージレイヤー関数IL_Eyeをコピーして貼り付けてください。
<Sample_Script.func>
## ============================================ ## イメージレイヤー関数設定 ## ============================================ ## メニュー表示時の目 <FUNC_IMAGE_LAYER_REG> <SET_CONFIG> FuncName = IL_Menu ImageName = sample_face_01.png Width = 44 Height = 19 PosX = 38 PosY = 50 </SET_CONFIG> <SET_PARAM> Width, 0, 0, 0, 3 0, 0, 0, 0, 150, sample_eye_02.png </SET_PARAM> </FUNC_IMAGE_LAYER_REG> ・ ・ ・ |
◆ポップアップメニュー表示時に移行するオーダー関数を追加する
「画像をドラッグする」で作成したOR_Drag_LとOR_Drag_Rをコピーして貼り付けてください。変更点は赤で表示しています。OR_Move_Up_L以下の関数は項目を一つ追加しているだけです。
<Sample_Script.func>
## ============================================ ## オーダー関数設定 ## ============================================ ## メニュー表示時 左向き <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Menu_L FuncType = MENU_EVENT FuncNameMotion = MO_Stop_L FuncNameImageLayer = IL_Menu PosX = X PosY = Y FuncListEvent = OR_Move_Up_L, OR_Move_Down_L FuncListLButton = OR_Drag_L </SET_CONFIG> </FUNC_ORDER_REG> ## メニュー表示時 右向き <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Menu_R FuncType = MENU_EVENT FuncNameMotion = MO_Stop_R FuncNameImageLayer = IL_Menu PosX = X PosY = Y FuncListEvent = OR_Move_Up_R, OR_Move_Down_R FuncListLButton = OR_Drag_R </SET_CONFIG> </FUNC_ORDER_REG> ・ ・ ・ ## 左上に移動 <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Move_Up_L FuncType = LEFT_EVENT FuncNameMotion = MO_Move_Up_L FuncNameImageLayer = IL_Eye PosX = X PosY = Y TimerFrame = 60 + RAND_300 FuncListEvent = OR_Move_Up_R, OR_Move_Down_R FuncListTimer = OR_Move_Up_L, OR_Move_Down_L, OR_Move_Up_R, OR_Move_Down_R FuncListTurn = OR_Move_Down_L FuncListLButton = OR_Drag_L FuncListMenu = OR_Menu_L </SET_CONFIG> </FUNC_ORDER_REG> ## 右上に移動 <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Move_Up_R FuncType = RIGHT_EVENT FuncNameMotion = MO_Move_Up_R FuncNameImageLayer = IL_Eye PosX = X PosY = Y TimerFrame = 60 + RAND_300 FuncListEvent = OR_Move_Up_L, OR_Move_Down_L FuncListTimer = OR_Move_Up_L, OR_Move_Down_L, OR_Move_Up_R, OR_Move_Down_R FuncListTurn = OR_Move_Down_R FuncListLButton = OR_Drag_R FuncListMenu = OR_Menu_R </SET_CONFIG> </FUNC_ORDER_REG> ## 左下に移動 <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Move_Down_L FuncType = LEFT_EVENT FuncNameMotion = MO_Move_Down_L FuncNameImageLayer = IL_Eye PosX = X PosY = Y TimerFrame = 60 + RAND_300 FuncListEvent = OR_Move_Up_R, OR_Move_Down_R FuncListTimer = OR_Move_Up_L, OR_Move_Down_L, OR_Move_Up_R, OR_Move_Down_R FuncListTurn = OR_Move_Up_L FuncListLButton = OR_Drag_L FuncListMenu = OR_Menu_L </SET_CONFIG> </FUNC_ORDER_REG> ## 右下に移動 <FUNC_ORDER_REG> <SET_CONFIG> FuncName = OR_Move_Down_R FuncType = RIGHT_EVENT FuncNameMotion = MO_Move_Down_R FuncNameImageLayer = IL_Eye PosX = X PosY = Y TimerFrame = 60 + RAND_300 FuncListEvent = OR_Move_Up_L, OR_Move_Down_L FuncListTimer = OR_Move_Up_L, OR_Move_Down_L, OR_Move_Up_R, OR_Move_Down_R FuncListTurn = OR_Move_Up_R FuncListLButton = OR_Drag_R FuncListMenu = OR_Menu_R </SET_CONFIG> </FUNC_ORDER_REG> |
OR_Move_Up_L以下で変更されている部分は右向き・左向きにあわせて関数が移行するようにFuncListMenuを設定しています。ポップアップメニューが表示されてイベントが発生した時にこの項目が有れば、その中から移行する関数が選択されます(複数設定可)。これを設定しない場合は、「画像をドラッグする」で説明した内部的なリストから選択されます(キャラクターの向きがランダムに変わってしまいます)。MENU_EVENTを持つオーダー関数が一つも無い時は、ポップアップメニューが表示されてもイベントは発生しません。 また、ここでは使用していませんがFlagMenuFuncをOFFと設定することでポップアップメニューが出ていてもメニューイベントが発生しないようにする事が可能です。

以上でスクリプトの変更は終了です。 これでキャラクター上で右クリックして、ポップアップメニューが表示された時にキャラクターの瞳がこちらを向いて、その場に停止します。
下記ファイルはここまで作成したサンプルのキャラクターデータです。
Menu_Event.zip
以上で「メニューイベントを使う」のチュートリアルを終了します。
「カスタムメニューを使う」へお進み下さい。