CMDファイルの作り方



CMDファイルをテキストエディタで開いてみてください。
CMDファイルは、2つのパートから成り立っています。前半のコマンドに使用する入力キーを登録する部分
そして、後半のパートの必殺技などの発動条件を指定する部分です。
 まずは前半部分のコマンドの登録方法を理解しましょう。

;==============================================================================
;コマンドについての説明です。

[Command]
;このキャラに使われているコマンドです。
name = "Hadou"
;コマンド名です。"Hadou"の中には日本語も使えるようです。
command = ~D, DF, F, x
;実際のコマンドです。
time = 25
;コマンド入力時間です。time = 60が1秒と考えてください。

;方向キーの説明をします。

;方向キーは、

B

DB

D

DF

F

UF

U

UB

の8個です。   

;それぞれで、

に対応しています。

;Back(後ろ)の頭文字のB、
;Down (下)の頭文字のD、
;Front (前)の頭文字のF、
;UP  (上)の頭文字のU、
;となっているようです。

;x,y,z 攻撃などに使用されるボタンです。普通、xは弱、yは中(または強)、zは強(または特殊)みたいです。
;a,b,c 攻撃などに使用されるボタンです。普通、aは弱、bは中(または強)、cは強(または特殊)みたいです。
;s   おもに挑発に使用されるボタンです。他にもキャラ選択時に使用すると、裏モードになるキャラも?

;==============================================================================
;それでは実際に読んでみようと思います。

[Command]
name = "Hadou"
command = ~D, DF, F, x
time = 25

;上のコマンドはxボタンですね。それが、"Hadou"という名前で登録されているようです。

;次はちょっとした応用です。

[Command]
name = "Hadou_SP"
command = ~D, DF, F, x+y
time = 25

;上のコマンドはxボタンとyボタン同時押しですね。"Hadou_SP"で登録されています。

;次はタメ技系のコマンドです。

[Command]
name = "reppa_SP"
command = ~30D, DF, F, a+b
time = 25

;上のコマンドは(0.5秒タメ)aボタンとbボタン同時押しですね。
"reppa_SP"で登録されています。ただしこの下タメはシビアなタメ(斜め後ろや斜め前だとダメ)
;なので普通のタメ技系は以下のような感じになっていることが多いようです。

[Command]
name = "Hien_zan_a"
command = ~30$D, $U, a
time = 25

;これだと、タメはアバウトなので、しゃがみガードをしながらタメるということも可能です。

;次は有名なコマンド系です。

[Command]
name = "Syungoku_satu"
command = ~x, x, F, a, y
time = 25

;ハイ、瞬獄殺系コマンドです。

次に後半部分の技の発動条件について説明します。

[Statedef -1]以降の記述が技の発動条件の記述です。


ここら辺から、MUGEN製作者たちが脱落すると言われています。(笑)
いきなりで、少し難しいと思うかも知れませんが、意味がわかってしまえば何という事はありません。
最初に基本的な説明をしたいと思います。

[State ???]
type = ChangeState
value = 技のステイト番号
triggerall = command = コマンドの名前
trigger1 = 条件1
trigger2 = 条件2
(以下省略)

 技の発動条件の記述の基本的な形式です。
だいたいのものは、多少の違いはあれど、このような形式で書かれているはずです。

ひとつひとつ簡単に説明していきたいと思います。


[State ???]

技の発動条件におけるタイトルのようなものです。
[State -1][State Panchi]など、基本的にどのようにつけてもかまいません。
ぶっちゃけ、
[State 残影拳]など、日本語でもOKなようです。
[State ???]で、なんでもOKなのは、???の部分だけです。)
でも、あまりこのような所に日本語は組み込まないほうが良さげなようです。(笑)



type = ChangeState
value = 技のステイト番号


俗に、ステイト コントローラーと呼ばれるモノです。
日本語でいうならば、『キャラの状態を操作するところ』といった感じでしょうか。


少し専門的になりますが、MUGENでは、キャラの基本的なところはコモン ステイトと
呼ばれるもので完成しています。(つまり、どんなキャラでも共通する基本的な動作
歩く、立つ、ジャンプとかは、
とくに問題がない場合は、一から作る必要はないのです。)
キャラ製作者が作る必要のあるステイト(キャラの状態)は、
通常攻撃、必殺技、超必殺などや、特殊動作(ブロッキング、空中ダッシュなど)
のみです。


話を戻しますが、この、『
ChangeState』と呼ばれるステイト コントローラーは、
Change(変える)State(キャラの状態)』という意味の通り、
任意のステイト番号(つまり、通常攻撃、必殺技、超必殺などの技のステイトです。)
に移行するというような働きをします。

例をあげると、次のような感じになっています。

現在のキャラの状態

[Statedef 0]
立ち状態

   

[Statedef 1000]
空中波動拳 発動

 

コマンド入力

(空中で)

D, DF, F, x
Xボタン
(コマンド名:Hadou_X)

;CMDファイル内の空中波動拳の発動条件
[State -1]
type = ChangeState
value = 1000
triggerall = command = "Hadou_X"
trigger1 = statetype = A
trigger1 = ctrl

わかんないですかね?(汗)
とりあえず、完全にわからなくてもいいので、先に進んでください。



trigger(トリガー)について


triggerall = command = コマンドの名前
trigger1 = 条件1
trigger2 = 条件2
(以下省略)





トリガーの基本的な考え方

最初にくるトリガーは「trigger1」である必要があります。その後には「trigger2」、「trigger3」のように続いていきます。
注意しなくてはならないのは、例えば「trigger1」「trigger2」と来て「trigger4」のように、
「trigger3」を抜いてしまうと「trigger4」は無視されてしまいます。

例を使ってトリガーの使い方を学んでいこうと思います。

例.1)
[State -1]
type = ChangeState
value = 300
trigger1 = command = "a"
trigger1 = statetype != A
trigger1 = ctrl = 1

上のトリガーを読んでみます。
まずはじめの
command = "a"はわかりますね。CMDファイルの前半のパートにあるコマンドです。
トリガーの内容としては、『コマンド
"a"を入力した時』という感じです。
次に2つ目の
trigger1 = statetype != A というのを説明します。
statetypeというのはCNSでも説明しますが、簡単にいうと、
キャラのステイトのタイプをあらわしています。
Aは空中にいる時(AirのAです)Sで立っている時(StandのSです)Cはしゃがんでいる時
(CrouchのCです)をあらわしています。
んで、
statetype != A は、 != (〜じゃない)となっていますので
trigger1 = statetype != A は『キャラの状態が空中でない時』となります。
最後の
trigger1 = ctrl = 1 は、見たまんまで、キャラが操作できる時という意味です。

長くなりましたが、つまり

[State -1]
type = ChangeState
value = 300
trigger1 = command = "a"
trigger1 = statetype != A
trigger1 = ctrl = 1

の発動条件は
『コマンド
"a"を入力した時』
で、なおかつ『キャラが空中にいない』
そして、『キャラが操作できる時』、となります。



例.2)
[State -1]
type = ChangeState
value = 1000
trigger1 = command = "Hadou_X"
trigger1 = statetype != A
trigger1 = ctrl = 1
trigger2 = command = "Hadou_X"
trigger2 = stateno = 300
trigger2 = movecontact

つづいて、上のトリガーについて説明します。
trigger1の記述は、基本的に例.1)と同じなので、わかりますね。

今度は、
trigger2というものが、出てきました。
簡単にいうと、上のステートコントローラーは、
trigger1、または、trigger2の条件が満たされた時、
発動する という意味になります。
つまり、
trigger2とは、2つの発動条件がある時に、使われます。
trigger3は3つ、trigger4は4つ という感じです。)

ちなみに、上の
trigger2についての記述も一応説明しておきます。
(得にまだ、無理して覚える必要はありません。参考程度に。)

trigger2 = command = "Hadou_X"は、わかりますよね。
『コマンド
"Hadou_X"を入力した時』です。
次の
trigger2 = stateno = 300は、『自分のキャラの状態が
ステイト番号300番の時』、となります。
ちなみに、この例題のキャラ(ストUのリュウ)のステイト番号300番は『立ち弱パンチ』です。
そして、最後の
trigger2 = movecontactは『(直撃、ガードは問わず)攻撃が相手に当った時』
という記述です。

勘のいい人ならば、コレが何の記述か、わかったと思います。
コレは『キャンセル技』の記述ですね。(キャンセル技が、わからないという人は
自分でGogleなどでググってみてください。)

つまり上のモノを簡単にまとめると、
『ステイト番号300番(弱ぱんち)の、』『(直撃、ガードは問わず)攻撃が当たった瞬間に』
『コマンド
"Hadou_X"を入力していたら』
ステイト番号300番(弱ぱんち)の残りの動作(攻撃の戻り動作)がキャンセルされ
ステイト番号1000番(波動拳)に
ChangeState(状態の移行)される。

trigger2の意味はこんな感じになっています。



例.2)の記述は、次のようにまとめることも出来ます。

[State -1]
type = ChangeState
value = 1000
triggerall = command = "Hadou_X"
trigger1 = statetype != A
trigger1 = ctrl = 1
trigger2 = stateno = 300
trigger2 = movecontact

このtriggerallとは、すべての条件式にかかる記述です。
便利ですので、覚えたほうがいいと思います。


※注・下のように
triggerallだけでは、エラーを起こします。気をつけてください。

[State -1]
type = ChangeState
value = 300
triggerall = command = "a"
triggerall = statetype != A
triggerall = ctrl = 1




発動条件の優先順位



発動条件の優先順位は、ゲームをプレイするうえで、意外に重要です。
これを適当にすると、技の誤発動や、コマンドの一部がかぶり、技がゲーム中出せない
などの症状があります。
例をあげると、
Xボタン(波動拳コマンド)と
Xボタン(真空波動拳コマンド)が、そうですかね。
コマンドが一部かぶっています。

発動条件の優先順位の変更の仕方は簡単です。

CMDファイルに書き込む順番を上のほうにするだけで、優先順位があがります。

上の例だと、波動拳>真空波動拳という優先順位になります。
コレの優先順位を真空波動拳>波動拳という風にするには、
下のように順番を変更すればOKです。



基本的に、順番は、超必殺>必殺技>通常技とすれば、まちがいないですかね。
あと、
系コマンドは、系コマンドより上にすると、
誤射率が減ると思います。

こんなところですかね。

以上でCMDファイルの基本は終わりです。



Win版の新たな機能


次に、WIN版で新たに追加された記述について説明しようと思います。
別に省略しても大差はないのですが、簡単でいて、とても便利な記述です。
参考に見てみてください。

;キャラごとのキーコンフィグ設定
[Remap]
x = x
y = y
z = z
a = a
b = b
c = c
s = s

まず[Remap]の記述です。これは、CMDファイル内の一番上に記述してください。
どんな記述か、言わなくてもわかると思いますが、キャラのキーコンフィグが出来ます。
以前までのDOS版時代のキャラのキーを変える時は、

[Command]
name = "a"
command = ~a
time = 1

command部分を変える必要があったのですが、
一つだけ変えればいいというわけではなく、
通常技の
a = xを交換
必殺技の
D, DF, F, a = D, DF, F, xを交換、
超必殺の
D, DF, F, D, DF, F, a = D, DF, F, D, DF, F, xを交換、
といった風にそのボタンに対応した、
すべての
command部分を変える必要がありました。

この
[Remap]のキーコンフィグ機能を使うと簡単に変更できるわけです。

;キャラごとのキーコンフィグ設定
[Remap]
x =
a
y = y
z = z
a =
x
b = b
c = c
s = s

簡単な使用例を上げておきます。上のようにするとxボタンとaボタンが
入れ替わります。あとは感覚的に使い方がわかると思います。
とても便利ですので、使ってみることをお勧めします。


;コマンドの入力受付のデフォルト設定の変更
[Defaults]
;
入力受付時間のデフォルト設定(1〜)
command.time = 15
;
コマンドを入力してキーを離した後の効果持続時間(1〜30)
command.buffer.time = 1

続いて[Defaults]の記述です。[Remap]の記述の下に記述してください。
いい忘れてましたが、
[Command]のtime = xxの記述は
下のように省略することもできます。

[Command]
name = "a"
command = ~a
time = 1

[Command]
name = "a"
command = ~a

省略するとデフォルトの値が使用されます。(Dos版はtime = 15で固定)
このデフォルトの値をWin版では
[Defaults]の項目で変更できるわけです。
command.time = に好きな数字を入れて下さい。それがデフォルトとなります。


もうひとつの
command.buffer.time = は、実際に数値を変えて試してみると
よくわかると思いますが、コマンドを入力してキーを離した後の効果持続時間の変更が
できます。特殊な処理をしないキャラは
command.buffer.time = 1のままで
いいと思います。

以上が新たに追加されている機能です。
まぁ、参考程度に知っているといざという時、便利だと思います。


ではCMDファイルは以上なので、次のCNS講座に進んでみましょう。



戻る