さてstep6まで無事、全てこなせたでしょうか?
もしそうならば、既に思い描いたキャラクターが画面上に立ち、
思いのままに操作でき、繰り出す技に従い声や音のでる、夢の状況が出来上がっているはずです。
…でもちょっと待ってください。それで満足しては困ります。何か忘れてません…?
…そう。敵として出てきた時です。
step2で「てきとーえねみー」にて、
まさにてきとーなenemy.lstを作ってる場合はひとまず動いているとは思います。
でも、それがちゃんと戦ってくれてるか?となると別の話、ですよね?
というわけで、「動かすは易し、戦わせるは難し」な性質を持つ、
com制御ファイル、「enemy.lst」について解説していきます。
参考に、KFX付属のキャラクターであるRYOUの
enemy.lstを適当なテキストエディタで開いてみましょう。
以下のような内容が表示されるはずです。
Distance--100--Command--COMMENT
160 30 42K236pN ;アッパー
160 50 623pN ;アッパー
160 60 623PN ;アッパー
160 70 214kN ;アッパー
160 80 214214PN ;アッパー
160 90 236PN ;アッパー
160 100 236236PN ;アッパー
320 50 236pNNN ;アッパー
320 60 236PNNN ;アッパー
320 90 236pNNN ;アッパー
320 100 9k ;アッパー |
2行目からが編集可能な部分です。
最初の「Distance」に当たる個所はキャラクター間の距離を表します。
このエネミーでは距離0〜160、161〜320までの距離判断が用意されている、ということになりますね。
相手との距離が短い部分ほど初めの行に、離れた距離になるほど後の行に記述します。
距離の判断はお互いの中心軸基準になっており、単純に考えて衝突判定横幅の18がぶつかる36で密着。
それを少しアバウトにして40ぐらいが最短距離で問題ないと思います。
それより短い距離は…対空反応専用とか?
最長距離は例のように画面幅の320でも大抵は問題ないですが、
拡張エンジンなどでそれ以上の距離に離れた場合も想定し、
1000以上の値を入れておいてもいいかもしれません。
「100」に当たる個所は実行確率を表します。
……何気にここの確率値の書き方は間違って書く人が多いんですよね。
ま、ここの書き方はまた後で。
「Command」に当たる個所は…はい、実行するコマンドですね。
ここに書き込まれたコマンドがそのまま1フレームずつ、バッファに送り込まれて実行される仕組みみたいです。
書き方の基本はほぼcommand.lstのcommandと同じで、
ボタン入力には p k P K
方向入力に 1 2 3 4 6 7 8 9 がそれぞれ使えます。
また、n で5フレームキーニュートラル、
N で10フレームキーニュートラルとなりますが、
このコマンドが実行されている際は相手の攻撃に対し中段、下段を自動判断しガードしてくれます。
…また、推奨値ではないですが、1フレームニュートラルとして 5 も使えます。
n6n6kなどのコマンドを直接入力すると、その都度5フレームの待機が混ざってしまうので、
エネミーリストでは5656kといったように記述したほうが良いでしょう。
最後に";"を挟んでCOMMENT。
ここはコメント部分ですので、";"の入力さえ忘れなければ何を書いても問題ありません。
(;を忘れると正常動作しなくなります)
余談になりますが、見てのとおりデフォルトキャラのenemy.lstのコメントは何故か全て「アッパー」。
よくネタにされるので、覚えておいてソンはない…かも。
設定個所は以上ですが、これだけでは色々と説明不足ですね。
まずは、確率値に関して書き方を確認していきます。
下の例を見てください。
Distance--100--Command--COMMENT
40 25 623pNNN ;@
40 25 623PNNN ;A
40 50 6P ;B |
よく見る「間違った」確率の書き方です。
書いた本人はおそらく、
@=25% A=25% B=50%
のような確率で実行されるように書いたつもりなんでしょうけど、
これだと実際は
@=25% B=25% かもしれないし A=25% B=25%?
まぁ不正な書き方なんでよく分かりませんが、ちゃんと実行されないのは確かです。
残り50%は前にロードされてたキャラのエネミーが使いまわされたり…といったところでしょうか。
(KFXは前にロードされたキャラが色々メモリに残るおかしな仕様になってます)
で、どうすればよいのかというと、こう書きます。
Distance--100--Command--COMMENT
40 25 623pNNN ;@
40 50 623PNNN ;A
40 100 6P ;B |
つまり、
0〜25までの確立で@が、
25〜50までの確率でAが、
そして51〜100までの確率でBが実行される…
といった感じです。変な書き方ですが、
こういうモノと割り切って、諦めてくださいな。
次にコマンド。
「え、さっきいってたじゃん、コマンドリストと同じって」?
「それぞれ距離に合わせて、技のコマンドコピペするだけじゃん」?
…いやいやいや。よーく考えてみてくださいな。
それではコマンド技ぶっ放すだけでしょう?
戦うんだったら、距離に合わせて間合いは調節しますし、ジャンプもします。
通常攻撃が入ったらキャンセルかけて連続技もいれにゃ…!
…そう、こういうことをちゃんと考えていくと、
enemy.lstというのは決まった型、というものがないんですね。王道無し。
…まぁ、決まった型は無い、とはいえ、基本的な連続技の入力方法はお伝えしておきましょう。
またRYOUを例に進めます。
強キック→キャンセル白虎掌でも出してみましょうか。
RYOUの強キックは6フレーム目に攻撃判定が発生します。
ではそのフレームにあわせてコマンドを入力するように記述…しません。
それよりもヒットするタイミング+2フレームがベストでしょう。
何故なら、ヒットストップ中も実はエネミーの処理が進むためです。
つまり今回は6フレーム+ヒットストップで8フレーム。
コマンド入力の236が3フレームなので、間に5フレーム=nを挟めば8フレームになりますね。
Distance--100--Command--COMMENT
50 100 nKn236PNNn ;強キックキャンセル白虎掌 |
連続技構築はこれが基本です。
長い連続技なども結局は、これが多く繋がっただけに過ぎないので、
それほど難しいことは考えなくとも良いと思います。
問題となってくるのは、その距離にあった最適な技、間合いの取り方、
どこで飛び込ませるか、どこでガードさせておくか…
キャラクターの性質をつかんだ上で、一行一行トライアンドエラーの繰り返しになります。
まさに最初に言った通り「動かすは易し、戦わせるは難し」。それがenemy.lstです。
ただのCOM制御ファイルと思っちゃいけませんよ?
自分の作ったキャラを、マニュアル等よりもっと分かりやすく、効果的に紹介できる部分でもあります。
落としたキャラクターを最初にCom VS Comで鑑賞してみる人は結構多いと思いますし…
高度すぎるものじゃなくてもいいけど、基本的な戦い方ぐらいは、見せつけちゃってくださいな。
もっと高度なものを求める方は
Tamaraさんによるenemy講座
を参考に頑張ってみて下さい。
・・・お疲れ様でした。ここまでの工程を全てこなしたのならば、
あなたはもう立派なキャラメイカーです!今後の活躍にご期待しております。
まだキャラを作ろうか考えている方も、ここのドキュメントが少しでも助けになれば幸いでございます…。
ここまでご覧いただきありがとうございました。
メニューへ戻る