キャラクターの動作指定関連

動作指定コマンド グループ対応表

キャラクターの動作指定におけるコマンドは動作パターンに関して5つに分類されます。 移動系ジャンプ系向き変更系一時停止設定系、 の5つです。
具体的にどれがどのグループに属するかは以下の表の通りです。
上に移動:移動系 上を向く:向き変更系 ジャンプ開始:ジャンプ系
右に移動:移動系 右を向く:向き変更系 ジャンプ終了:ジャンプ系
下に移動:移動系 下を向く:向き変更系 向き固定:設定系
左に移動:移動系 左を向く:向き変更系 向き固定解除:設定系
右上に移動:移動系 右に90度回転:向き変更系 すり抜け開始:設定系
右下に移動:移動系 左に90度回転:向き変更系 すり抜け終了:設定系
左下に移動:移動系 180度方向転換:向き変更系 アニメ停止:設定系
左上に移動:移動系 右か左に90度回転:向き変更系 アニメ再開:設定系
ランダムに移動:移動系 ランダムに方向転換:向き変更系 透明度アップ:設定系
主人公に近寄る:移動系 主人公の方を向く:向き変更系 透明度ダウン:設定系
主人公から逃げる:移動系 主人公の逆を向く:向き変更系 スイッチON...:設定系
一歩前進:移動系 一時停止:一時停止 スイッチOFF...:設定系
移動速度アップ:設定系 移動頻度アップ:設定系 グラフィック変更...:設定系
移動速度ダウン:設定系 移動頻度ダウン:設定系 効果音の演奏...:設定系

移動時間算出表

前項で分類された各グループについて、移動時間は以下の表の通りとなります。単位はフレーム[F](1/60秒)で、60Fで1秒となります。移動速度s、移動頻度fとしています。また、^は累乗です。
グループ 命令そのものに要する時間[F] 直後に何か命令があったときのウェイト[F] 直後に何も命令がなかったときのウェイト[F]
移動系
8/s
f=8のとき、
f≠8のとき、2^(9-f)
ジャンプ系
s=4のとき、
s=2のとき、
s=1のとき、11
s=1/2のとき、16
s=1/4のとき、22
s=1/8のとき、32
f=8のとき、
f≠8のとき、2^(9-f)
向き変更系
f=8のとき、
f≠8のとき、2^(8-f)
一時停止
f=8のとき、20
f≠8のとき、20+2^(8-f)
設定系
動作コマンド一個分に掛かる時間は上の表における「命令そのものに要する時間」であり、その直後に何らかのコマンドがある場合、「直後に何か命令があったときのウェイト」に書かれた分だけ一時停止します。直後に何もコマンドがない、すなわち最後のコマンドであった場合には「直後に何も命令がなかったときのウェイト」に示された時間だけウェイトします。
ジャンプはジャンプ開始~ジャンプ終了の間にあるすべてのコマンドのウェイト時間が無視され、ジャンプ開始~ジャンプ終了までのひとかたまりが一命令分のウェイトとして設けられます。

以下の動作コマンドに掛かる時間を求めます。初期の移動速度は標準速、頻度は8とします。
◇移動速度ダウン
◇移動速度ダウン
◇移動頻度ダウン
◇移動頻度ダウン
◇移動頻度ダウン
◇下に移動
◇下に移動
◇ジャンプ開始
◇下に移動
◇下に移動
◇ジャンプ終了
◇移動速度アップ
◇移動速度アップ
◇右に移動
◇移動頻度アップ
◇ジャンプ開始
◇左に移動
◇ジャンプ終了
◇向き固定
◇左に移動
◇左に移動
◇向き固定解除
◇下を向く
◇下に移動
◇下に移動
◇一時停止
◇移動頻度アップ
◇一時停止
◇移動頻度アップ
◇右に移動
◇下を向く
◇

コマンドによってそのものに掛かった時間と、その直後のウェイトを表にしたものが以下になります。
動作指定コマンド グループ 命令直後の移動速度s 命令直後の移動頻度f 命令そのものに掛かる時間[F] 命令直後のウェイト[F] 小計[F]
◇移動速度ダウン 設定系
1/2
8
◇移動速度ダウン 設定系
1/4
8
◇移動頻度ダウン 設定系
1/4
7
◇移動頻度ダウン 設定系
1/4
6
◇移動頻度ダウン 設定系
1/4
5
◇下に移動 移動系
1/4
5
32
16
48
◇下に移動 移動系
1/4
5
32
16
48
◇ジャンプ開始
◇下に移動
◇下に移動
◇ジャンプ終了
ジャンプ系
1/4
5
22
16
38
◇移動速度アップ 設定系
1/2
5
◇移動速度アップ 設定系
1
5
◇右に移動 移動系
1
5
16
24
◇移動頻度アップ 設定系
1
6
◇ジャンプ開始
◇左に移動
◇ジャンプ終了
ジャンプ系
1
6
11
19
◇向き固定 設定系
1
6
◇左に移動 移動系
1
6
16
◇左に移動 移動系
1
6
16
◇向き固定解除 設定系
1
6
◇下を向く 向き変更系
1
6
◇下に移動 移動系
1
6
16
◇下に移動 移動系
1
6
16
◇一時停止 一時停止
1
6
24
24
◇移動頻度アップ 設定系
1
7
◇一時停止 一時停止
1
7
22
22
◇移動頻度アップ 設定系
1
8
◇右に移動 移動系
1
8
◇下を向く 向き変更系
1
8
合計
191
109
300
従って、これらの動作によって掛かる総時間は300F=5秒ということになります。

ジャンプ位置取得関数

時間に対するジャンプ位置を取得する関数の推定式です。推定ですが、位置は正確に求められます。移動速度によって規則が異なることがあるようですので、それぞれの移動速度に対応する式を提示します。
ジャンプ開始からx[F]経過後の、地面からの距離y[dot]を求める関数です。スタートはx=1とします。y≦0となった場合、着地したと判断して強制的にy=0にし、ジャンプを終了します。小数点以下は切り上げます。
移動速度 関数
4倍速 y=16-4(x-2)^2
2倍速 y=16-1(x-2)^2
標準速 y=16-9/16 (x-16/3)^2
1/2倍速 y=16-1/4 (x-8)^2
1/4倍速 y=16-9/64 (x-32/3)^2
1/8倍速 y=16-1/16 (x-16)^2