フレームタイマーを使う
ここではタイマーを使って指定フレーム数でイベントを起こしたり、ランダムにイベントを起こす方法を説明しています。このチュートリアルではオーダー関数のみに変更を加えています。

◆イベントを起こすフレーム数を設定する
指定されたフレーム数でイベントを起こすには、オーダー関数にTimerFrameを設定する必要があります。これは別のオーダー関数へ移行するまでの変更時間(合計フレーム数)と考えると、理解しやすいかと思います。また、移行するオーダー関数はFuncListTimerで設定します。詳しくはドキュメントページの「オーダー関数」でご確認下さい。

<Sample_Script.func>
## =============================================================
## オーダー関数設定
## =============================================================
                  ・
                  ・
                  ・
## 左上に移動
<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
    </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
    </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
    </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
    </SET_CONFIG>
</FUNC_ORDER_REG>
上記4つのオーダー関数は全て同じ内容が追加されています。
TimerFrameは変更時間(合計フレーム数)を設定しています。60+RAND_300となっていますが、最初の60は60フレームの事です。後ろのRAND_300とは0~300(フレーム)までの数値がランダムに選択される変数(変化する数値)です。このランダム変数は後ろの数値を変えることで変更できます(RAND_150など)。この2つが+(加算)されているので60~360フレーム(約2秒~約12秒)の間の数値がランダムに選択されます。こうすることでモーションの変更のタイミングにランダム性を持たせ、動きに変化を付けることが可能となります。もちろんRAND_300を消してTimerFrame=60と定数(固定の数値)のみでも使用可能です。
FuncListTimerではTimerFrameで設定したフレーム数でイベントが発生した時に、移行するオーダー関数を設定しています。オーダー関数では左上、左下、右上、右下とランダムに移動方向が変化するようにしています。 ※TimerFrameを設定した場合は必ずFuncListTimerでオーダー関数を設定してください。 そうしないとエラーが発生します。

TimerFrame

以上でタイマーの設定は終了です。ファイルを保存して動作をご確認下さい。
今まで移動範囲に当たらないと移動方向が変化しなかったキャラクターがランダムに移動方向を変えるようになります。

下記ファイルはここまで作成したサンプルのキャラクターデータです。
TimerFrame.zip


以上で「フレームタイマーを使う」のチュートリアルを終了します。
サウンドを再生する」へお進み下さい。




↑このページのトップに戻る