きゃらポッドF

簡単スクリプトでデスクトップマスコット作成

ドキュメント

  1. ホーム
  2. ドキュメント
  3. オーダー関数

オーダー関数

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

オーダー関数とその他の関数の関係

先頭に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関数のイベントタイプを設定します。
各タイプの説明はこちら↓
FuncNameMotion使用するモーション関数名を設定します。
FuncNameImageLayer使用するイメージレイヤー関数名を設定します。「,」で区切ることで複数設定可。省略可。
CallBalloonList実行したいバルーンオーダー関数名を設定します。設定されたバルーンオーダー関数のCallTypeの値によっては実行されない場合もあります。「,」で区切ることで複数設定可。複数設定した場合、複数の関数の中からランダムに選択された関数が実行されます。また、関数に*2などと付けることで関数がランダムに選択される時の選択される確率を変化させることができます。省略可。
SoundNameBgmBGMを設定します。モーション関数で設定されている効果音と重ねて鳴らすことが可能です。省略可。
SoundLoopBGMのループ回数。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の関数はこの項目を設定しても無視されます。
FuncListTimerFrameTimerで設定されているフレーム数を超えた時にここで設定されているオーダー関数に移行します。省略可。ただし省略した場合はFrameTimerに数値が設定されていればエラーが出ます。
FuncListTurnFuncTypeが 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ポップアップメニューのカスタムメニューの項目名を変更できます。省略可。
FlagMenuFuncFuncTypeがMENU_EVENTのオーダー関数に移行するかどうかを設定します。メニューが出たときに何も変化させたくないときはここをOFFに設定します。省略可。
FlagCustomMenuItemメニューのカスタム項目をクリックできるかどうかを設定します。OFFに設定すると灰色で表示されてクリックできなくなります。省略可。
FlagHideFunc非表示または終了をクリックした時に現在の動作が終了してから、非表示・終了動作に移行するかどうかを設定します。OFFに設定すれば現在の動作が終了してから非表示または終了します。省略可。省略した場合は即座に非表示または終了します。
FlagAddListプログラムが内部で自動的に保持している内部リストにオーダー関数を登録するかどうかを設定します。これはFuncListMenuなどを設定しなくてもメニューを出した時に、この内部リストの中から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ポップアップメニューが出たときにこのイベントタイプを持つ関数が有れば実行されます。また、ポップアップメニューが消えるとイベントが発生します。このイベントタイプを持つ関数が一つもない場合ははFlagMenuFuncは常にOFFになります。
CUSTOM_EVENTメニュー項目のカスタムメニューが実行されたときにこのイベントタイプを持つ関数が有れば実行されます。このタイプを持つ関数はイベントが発生しないので、TimerFrameやカスタムメニューでイベントを起こさないと次の動作に移行できません。