更新日:2014/07/20
オーダー関数
オーダー関数はモーション関数やイメージレイヤー関数等をまとめ、初期値などを設定して動作させる基本となる関数です。また、同じオーダー関数が続けて実行された場合、モーション関数等で実行されたフレーム数はリセットされることなく、関数が切り替わったフレーム数から実行されます。これにより同じ動作をシームレスに繰り返すことが可能になります。

オーダー関数とその他の関数の関係
先頭にFuncListと付く項目はオーダー関数を設定する項目で「,」で区切ることで複数設定できます。また、複数の関数名を{}で囲むことで改行して複数行に渡って記載することが出来ます。関数を複数設定した場合、複数の関数の中からランダムに選択された関数が実行されます。また、関数に*2などと付けることで関数がランダムに選択される時の選択される確率を変化させることが出来ます。下記の例のFuncListEventの場合全体の総数が1+3+1+1+2+5=13となり、Walk_02_Rは3/13の確率で選択され、Run_01_Rは1/13、Run_03_Rは5/13の確率で選択されます。
また、先頭にFlagと付く項目は基本的に省略可能でOFFを設定することで機能を変化させることが出来ます。

<sample.func オーダー関数の例>
<FUNC_ORDER_REG>
    <SET_CONFIG>
        FuncName = Walk_01_L
        FuncType = LEFT_EVENT
        FuncNameMotion = MO_Walk_L
        FuncNameImageLayer = IL_Eye_01_L
        SoundNameBgm = bgm.wav
        SoundLoop = -1
        SoundNameLButton = lb.wav
        SoundNameRButton = rb.wav
        CursorName = walk.cur
        PosX = X + 2
        PosY = LINE_BOTTOM
        EventLinePosX = 0
        EventLinePosY = 12
        TimerFrame = 70 + Rand(300)
        FuncListEvent = { Walk_01_R, Walk_02_R*3, Walk_03_R, Run_01_R,
                          Run_02_R*2, Run_03_R*5 }
        FuncListTimer = Walk_02_R
        MenuItemCustom = カスタム
        FlagHideFunc = OFF
        FlagAddList = OFF
    </SET_CONFIG>
</FUNC_ORDER_REG>

[ オーダー関数 項目説明 ]
項目名 説明
<FUNC_ORDER_REG>
</FUNC_ORDER_REG>
オーダー関数の開始終了を指定します。
<SET_CONFIG>
</SET_CONFIG>
この項目名で囲まれた部分でオーダー関数の基本情報等を設定します。
FuncName オーダー関数の名前を設定します。
FuncType 関数のイベントタイプを設定します。

START_EVENT EXIT_EVENT
SHOW_EVENT HIDE_EVENT
LEFT_EVENT RIGHT_EVENT
TOP_EVENT BOTTOM_EVENT
LINE_UP_TOP_EVENT LINE_UP_BOTTOM_EVENT
LINE_DOWN_TOP_EVENT LINE_DOWN_BOTTOM_EVENT
L_BUTTON_EVENT RELEASE_EVENT
NONE_EVENT MENU_EVENT
CUSTOM_EVENT  
各イベントの説明はこちら↓
FuncNameMotion 使用するモーション関数名を設定します。
FuncNameImageLayer 使用するイメージレイヤー関数名を設定します。「,」で区切ることで複数設定可。省略可。
CallBalloonList 実行したいバルーンオーダー関数名を設定します。設定されたバルーンオーダー関数のCallTypeの値によっては実行されない場合もあります。「,」で区切ることで複数設定可。複数設定した場合、複数の関数の中からランダムに選択された関数が実行されます。また、関数に*2などと付けることで関数がランダムに選択される時の選択される確率を変化させることが出来ます。省略可。
SoundNameBgm BGMを設定します。モーション関数で設定されている効果音と重ねて鳴らすことが可能です。省略可。
SoundLoop BGMのループ回数。1なら一回繰り返す(2回再生される)、2なら二回繰り返す(3回再生される)。-1なら無限に繰り返す。省略すれば0となり、ループはしない。省略可。
SoundNameLButton マウス左ボタンを押した時に鳴る効果音を設定します。ここで設定した効果音はconfig.iniで設定した物より優先されます。省略可。
SoundNameRButton マウス右ボタンを押した時に鳴る効果音を設定します。ここで設定した効果音はconfig.iniで設定した物より優先されます。省略可。
CursorName この関数が実行された時に表示されるカーソルを設定します。省略可。
PosX

関数開始時のキャラクターのX座標の位置。

・「X」を設定すると現在のX座標からはじまる。
・「LINE_LEFT」を設定すると現在の段の左境界線にキャラクター画像の左部分が接触した状態ではじまる。
・「LINE_RIGHT」を設定すると現在の段の右境界線にキャラクター画像の右部分が接触した状態ではじまる。
・「target.X」を設定すると当たり判定が発生した時のターゲットのX座標を取得できる。当たり判定が発生していない場合は常に0となる。

上記に対しては「+」(加算)、「-」(減算)をする事が出来る。

・「my.Width」を設定すると現在実行されているモーション関数で設定されている画像の幅(Width)を取得することができます。
・「my.Height」を設定すると現在実行されているモーション関数で設定されている画像の高さ(Height)を取得することができます。
・「target.Width」を設定すると当たり判定が発生した時のターゲットの幅(Width)を取得できます。当たり判定が発生していない場合は常に0となる。
・「target.Height」を設定すると当たり判定が発生した時のターゲットの高さ(Height)を取得できます。当たり判定が発生していない場合は常に0となる。

上記は整数を「+」(加算)、「-」(減算)、「*」(乗算)、「/」(除算)する事が出来る。
PosY 関数開始時のキャラクターのY座標の位置。

・「Y」を設定すると現在のY座標からはじまる。
・「LINE_TOP」を設定すると現在の段の上境界線にキャラクター画像の上部分が接触した状態ではじまる。
・「LINE_BOTTOM」を設定すると現在の段の下境界線にキャラクター画像の下部分が接触した状態ではじまる。
・「target.Y」を設定すると当たり判定が発生した時のターゲットのY座標を取得できる。当たり判定が発生していない場合は常に0となる。

上記に対しては「+」(加算)、「-」(減算)をする事が出来る。

・「my.Width」を設定すると現在実行されているモーション関数で設定されている画像の幅(Width)を取得することができます。
・「my.Height」を設定すると現在実行されているモーション関数で設定されている画像の高さ(Height)を取得することができます。
・「target.Width」を設定すると当たり判定が発生した時のターゲットの幅(Width)を取得できます。当たり判定が発生していない場合は常に0となる。
・「target.Height」を設定すると当たり判定が発生した時のターゲットの高さ(Height)を取得できます。当たり判定が発生していない場合は常に0となる。

上記は整数を「+」(加算)、「-」(減算)、「*」(乗算)、「/」(除算)する事が出来る。
EventLinePosX キャクター画像のどの位置が、もしくは画像からどれだけ離れたところがイベントラインに接触すればイベントが起きるのかを設定します。画像の左上を原点として考えるので右側の画像外に当たり判定を置く場合は画像サイズを足してやることが必要です。省略可。省略した場合は画像の左右一番端が当たり判定となります。移動範囲はキャラクターのサイズ以上ははみ出すことができないので数値が大き過ぎるとイベントが発生しなくなります。
EventLinePosY キャクター画像のどの位置が、もしくは画像からどれだけ離れたところがイベントラインに接触すればイベントが起きるのかを設定します。画像の左上を原点として考えるので下側の画像外に当たり判定を置く場合は画像サイズを足してやることが必要です。省略可。省略した場合は画像の上下一番端が当たり判定となります。移動範囲はキャラクターのサイズ以上ははみ出すことができないので数値が大き過ぎるとイベントが発生しなくなります。
TimerFrame 次のオーダー関数への変更時間(合計フレーム数)を設定します(1以上の整数値を設定すること)。省略した場合は現在のオーダー関数が永遠にループ(他にイベントが起きなければ)して、FuncListTimerの値は無視されます。また値をランダムにしたい場合はRand(100)等とすると0~100までのランダムな数値が選択されます。Rand(~)の「~」の部分は自由に決めることができます。また、100+Rand(150)等のように基本値とランダム値を加算することも出来ます。TimerFrameの最大合計値は40000000フレーム(約365日)まで設定可能。※RAND_~という記述方式は将来的に廃止される予定です。
FuncListEvent イベントが起きたときにここで設定されているオーダー関数に移行します。省略可。ただし省略した場合はイベントが起きる動作をした場合はエラーが出ます(例えばLEFT_EVENTで左に移動してイベントが発生)。イベントタイプがSTART_EVENT、EXIT_EVENT、SHOW_EVENT, HIDE_EVENT、NONE_EVENT、RELEASE_EVENT、CUSTOM_EVENTの関数はこの項目を設定しても無視されます。
FuncListTimer FrameTimerで設定されているフレーム数を超えた時にここで設定されているオーダー関数に移行します。省略可。ただし省略した場合はFrameTimerに数値が設定されていればエラーが出ます。
FuncListTurn FuncTypeがLEFT_EVENT、RIGHT_EVENTの場合は上下、TOP_EVENT、BOTTOM_EVENT、LINE_UP_TOP_EVENT、LINE_UP_BOTTOM_EVENT、LINE_DOWN_TOP_EVENT、LINE_DOWN_BOTTOM_EVENTの場合は左右の移動範囲を超えようとした時にイベントが発生し、この項目で設定されたオーダー関数に移行します。省略可。
FuncListLButton キャラクター上でマウス左ボタンが押された時にここで設定されたオーダー関数に移行します。ここで設定できるオーダー関数はイベントタイプがL_BUTTON_EVENT以外のものでも可能です。下記で説明するFlagCaptureをOFFにする事でキャラクターをドラッグする以外の操作が可能となります。省略可。
FuncListCustom ポップアップメニューのカスタムメニュー項目を選択した時にここで設定されたオーダー関数に移行します。ここで設定できるオーダー関数はイベントタイプがCUSTOM_EVENT以外のものでも可能です。省略可。
FuncListMenu メニューが出たときにここで設定されたオーダー関数に移行します。ここで設定できるオーダー関数はイベントタイプがMENU_EVENT以外のものでも可能ですが、その場合はポップアップメニューが消えてもイベントは発生しません。省略可。
FuncListExit アプリ終了時にここで設定されたオーダー関数に移行します。ここで設定できるオーダー関数はイベントタイプがEXIT_EVENT以外のものでも可能ですが最終的にはEXIT_EVENTを持つオーダー関数を実行しない限りアプリは終了しません。省略可。
FuncListHide キャラクター非表示時にここで設定されたオーダー関数に移行します。ここで設定できるオーダー関数はイベントタイプがHIDE_EVENT以外のものでも可能ですが最終的にはHIDE_EVENTを持つオーダー関数を実行しない限りキャラクターは非表示になりません。省略可。
FuncListEndLine 一番上の段にいる時にLINE_UP_TOP_EVENTかLINE_UP_BOTTOM_EVENT、一番下の段にいる時にLINE_DOWN_TOP_EVENTかLINE_DOWN_BOTTOM_EVENTのイベントタイプが設定されているオーダー関数が選択された時に、この項目で設定されたオーダー関数に移行します。選んだ関数(現在実行中の関数)では無く選ばれた関数のFuncListEndLineが実行されます。主に、上述した4つのイベントタイプを設定したオーダー関数で設定することになります。省略可。
FuncListRegion 移動範囲設定で決定ボタンをクリックした時にここで設定されたオーダー関数に移行します。省略可。
ListHitArea ヒットエリア関数を設定します。この項目は他のキャラクターから参照される項目です。「,」で区切ることで複数設定可。省略可。
ListHitEvent ヒットイベント関数を設定します。この項目で設定されたヒットイベント関数を元に当たり判定処理を行います。「,」で区切ることで複数設定可。省略可。
ListConditionEvent コンディションイベント関数を設定します。この項目で設定されたコンディションイベント関数の条件判定を実行します。複数設定されている場合は左から優先的に(それぞれのIntervalTypeの値に従って)判定されていき、有効な条件があった時点でイベントが発生し、それ以降の条件判定は実行されません。「,」で区切ることで複数設定可。省略可。
MenuItemCustom ポップアップメニューのカスタムメニューの項目名を変更できます。省略可。
FlagMenuFunc FuncTypeがMENU_EVENTのオーダー関数に移行するかどうかを設定します。メニューが出たときに何も変化させたくないときはここをOFFに設定します。省略可。
FlagCustomMenuItem メニューのカスタム項目をクリックできるかどうかを設定します。OFFに設定すると灰色で表示されてクリックできなくなります。省略可。
FlagHideFunc 非表示または終了をクリックした時に現在の動作が終了してから、非表示・終了動作に移行するかどうかを設定します。OFFに設定すれば現在の動作が終了してから非表示または終了します。省略可。省略した場合は即座に非表示または終了します。
FlagAddList プログラムが内部で自動的に保持している内部リストに関数を登録するかどうかを設定します。これは一々MenuFuncListなどを設定しなくてもメニューを出した時に、この内部リストの中からMENU_EVENTのイベントタイプを持つ関数がランダムで選ばれます。これで選択されるのが都合が悪いときはこの項目をOFFに設定すると内部リストには登録されずに直接指定しない限り実行されることはありません。主に、START_EVENT、EXIT_EVENT、SHOW_EVENT, HIDE_EVENT、L_BUTTON_EVENT、MENU_EVENT、CUSTOM_EVENTで使われます。省略可。
FlagLButton マウス左ボタン操作が可能かどうかを設定します。OFFなら操作不可になります。省略可。
FlagCapture この項目がOFFに設定されたオーダー関数はキャラクター上で左クリックしてもキャラクターがドラッグされません。省略可。
FlagCapturePos イベントタイプがL_BUTTON_EVENTを持つオーダー関数でこの項目をOFFに設定すると、キャラクター画像の左上がマウスをクリックした座標にあわされます。省略可。


[ FuncType 項目説明 ]
項目名 説明
START_EVENT ソフト起動時に実行されます。このイベントタイプを持つ関数が複数有ればランダムに選択されます。確率は指定できません。また、このイベントタイプを持つ関数が一つもない場合はイベントタイプがLEFT_EVENT、RIGHT_EVENT、TOP_EVENT、BOTTOM_EVENT、NONE_EVENTのどれかを持ち、FlagAddListがOFFに設定されていない関数の中からランダムに選択されます。
EXIT_EVENT ソフト終了時に実行されます。このイベントタイプを持つ関数が一つもない場合はキャラクターが予備動作無しに消えます。
SHOW_EVENT キャラクター表示時に実行されます。このイベントタイプを持つ関数が複数有ればランダムに選択されます。確率は指定できません。また、このイベントタイプを持つ関数が一つもない場合はイベントタイプがLEFT_EVENT、RIGHT_EVENT、TOP_EVENT、BOTTOM_EVENT、NONE_EVENTのどれかを持ち、FlagAddListがOFFに設定されていない関数の中からランダムに選択されます。
HIDE_EVENT キャラクター非表示時に実行されます。このイベントタイプを持つ関数が一つもない場合はキャラクターが予備動作無しに消えます。
LEFT_EVENT 現在キャラクターがいる段の左境界線にキャラクター画像の左部分が当たるとイベントが発生します。
RIGHT_EVENT 現在キャラクターがいる段の右境界線にキャラクター画像の右部分が当たるとイベントが発生します。
TOP_EVENT 現在キャラクターがいる段の上境界線にキャラクター画像の上部分が当たるとイベントが発生します。
BOTTOM_EVENT 現在キャラクターがいる段の下境界線にキャラクター画像の下部分が当たるとイベントが発生します。
NONE_EVENT イベントが一切発生しません。
LINE_UP_TOP_EVENT このイベントタイプを持つ関数が実行された瞬間に段は一段上に移動し、その段の上境界線にキャラクター画像の上部分が当たるとイベントが発生します。キャラクターが一番上の段にいる場合と全体で一段しかない場合はこのイベントタイプを持つ関数は実行されません。
LINE_UP_BOTTOM_EVENT このイベントタイプを持つ関数が実行された瞬間に段は一段上に移動し、その段の下境界線にキャラクター画像の下部分が当たるとイベントが発生します。キャラクターが一番上の段にいる場合と全体で一段しかない場合はこのイベントタイプを持つ関数は実行されない。
LINE_DOWN_TOP_EVENT このイベントタイプを持つ関数が実行された瞬間に段は一段下に移動し、その段の上境界線にキャラクター画像の上部分が当たるとイベントが発生します。キャラクターが一番下の段にいる場合と全体で一段しかない場合はこのイベントタイプを持つ関数は実行されない。
LINE_DOWN_BOTTOM_EVENT このイベントタイプを持つ関数が実行された瞬間に段は一段下に移動し、その段の下境界線にキャラクター画像の下部分が当たるとイベントが発生します。キャラクターが一番下の段にいる場合と全体で一段しかない場合はこのイベントタイプを持つ関数は実行されない。
L_BUTTON_EVENT キャラクター上でマウスの左ボタンを押すとこのイベントタイプを持つ関数が実行されます。また、マウスの左ボタンを離すとイベントが発生します。
RELEASE_EVENT このイベントタイプを持つ関数が実行された時、キャラクターをつかんでいたら強制的にキャラクターを放します。
MENU_EVENT ポップアップメニューが出たときにこのイベントタイプを持つ関数が有れば実行されます。また、ポップアップメニューが消えるとイベントが発生します。このイベントタイプを持つ関数が一つもない場合ははMenuFuncFlagは常にOFFになります。
CUSTOM_EVENT メニュー項目のカスタムメニューが実行されたときにこのイベントタイプを持つ関数が有れば実行されます。このタイプを持つ関数はイベントが発生しないので、TimerFrameやカスタムメニューでイベントを起こさないと次の動作に移行できません。



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