ちゅ るやさんで覚えるキャラ製作講座
第07回  必殺技を作ってみよう

この講座も7回目。皆様もだんだん手慣れてきたのではないで しょうか。
今回からはさらに内容が難しくなってきます。
特に、今回取り扱う内容をいかに理解し、応用できるようになるかによって
あなたが作ることができるキャラの幅が変わってきます。
ということで、皆様がんばってください。




今回は、以下のような必殺技を製作してもらいます。
ちゅるやさん必殺技完成予想図

なんでちゅるやさんがネギを持っているかという疑問をお持ちの方もいらっしゃるでしょうが
MUGENとは関係ないのでここでは割愛。
興味をお持ちの方はご自分でお調べください。

今回製作してもらうステートの内訳は以下の表のとおりです。
必殺技(弱)・・・1000
必殺技(強)・・・1010
超必殺・・・1020

そして今回の素材です。
ちゅるやさん必殺技素材




ということでステートの解説に入ります。
まずは必殺技から。

必殺技サ ンプル
このサンプルをご覧ください。
どこかで見た覚えはありませんか?
実は、第4回で解説した通常技とほぼ変わりません。
違うのはattrの項目くらいです。

通常技、必殺技、超必殺技のどれになるかはattrで決 まる。
それ以外の製作方法はどれも同じ。

これはぜひ覚えておいてください。



では、次にCMDの設定について
これも基本的な作り方は今までと変わりありません。
ですが、必殺技、超必殺技となるとコマンドを使用することが多くなってきます。
その場合、コマンドの作成を自分で行う場合も出てきます。

そんなときのために、コマンドの追加方法について説明します。
まず、コマンド表記についてです。
CMDファイルでのコマンドに使用されるボタンは以下のように表記されます。
      各ボタンの説明:
      D - 下
      F - 前
      U - 上
      B - 後
      x - Xボタン
      y - Yボタン
      z - Zボタン
      a - Aボタン
      b - Bボタン
      c - Cボタン
      s - スタートボタン
十字キーの斜め方向は
DF、DB等のように表記します。
ちなみによくキャラのREADMEなんかで
236+xのように表記されている場合がありますが
これはテンキーを十字キーに見立てた表記です。
今回は以下の表のようにコマンドを設定したいと思います。
必殺技(弱)・・・236+x
必殺技(強)・・・236+y
超必殺・・・236+z(エネルギー1000消費)

ではCMDを作成していきます。
今までは[Statedef -1]から下の部分しか見ていませんでした。
今回はそれより上の部分を見てみましょう。
すると[Defaults]と書かれた箇所があって、その下に
[Command]
name = "TripleKFPalm"
command = ~D, DF, F, D, DF, F, x
time = 20

こんなかんじに書かれたものがたくさん続いているかと思います。
実はここでコマンドの設定をしているのです。
個別の項目の説明は以下の通りです。
[Command]
name = "TripleKFPalm";コマンド名。これをトリガーのcommandのところに記入します。
command = ~D, DF, F, D, DF, F, x;実際に入力するコマンド
time = 20;入力を受け付けるフレーム数。これはなくても動きます。

もちろんコマンドを自分で作ることも可能です。
コマンドを作る前に今回使用するコマンドがすでにあるかどうか探してみると
[Command]
name = "QCF_x"
command = ~D, DF, F, x

[Command]
name = "QCF_y"
command = ~D, DF, F, y
必殺技で使用するコマンドだけ発見することができました。
でもどうやら超必殺で使用するコマンドはないようです。
超必殺技を作る際に追加してもいいのですが
せっかくですので、今追加してみましょう。
必殺技のコマンドとほぼ同じですのでコマンド部分だけいじてやって
[Command]
name = "QCF_z"
command = ~D, DF, F, z
こんなのができました。
これを必殺技のコマンドがある箇所のすぐしたあたりにコピペしてください。
これも複雑なコマンドほど上に記述するようにしてください。
次にState -1のほうの記述に移ります。
こちらはこれまでのとほとんど変わりません。
[State -1, ネギ弱]
type = ChangeState
value = 1000
triggerall = command = "QCF_x"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = movecontact
trigger3 = stateno = 210
trigger3 = movecontact
trigger4 = stateno = 215
trigger4= movecontact
これも通常技より上に記入するようにしてください。

これでステート1000は完成です。
同様にステート1010も作成してください。




次にステート1020の超必殺技の説明に移ります。
超必殺技 サ ンプル
これも必殺技と同じでHitDefのattrの記述が違うだけです。
ということで、必殺技らしさ、超必殺技らしさは演出で出すしかありません。

超必殺技らしい演出のなかの1つに、
背景が暗くなって一瞬動きが止まり、カットインが出るといったものがあります。
完成予想図にもあったあれです。
そお演出の作り方について説明したいと思います。


背景が暗くなって動きが止まる処理にはSuperPauseというステートコントローラーを使用します。
例は下の通りです。
[State 1020, Super A]
type = SuperPause
trigger1 = time=0
anim = 100;実行時に表示するアニメーション番号
pos = -17, -33;アニメーションを表示する位置
sound = 20, 0;実行時に鳴らす音
poweradd = -1000;実行時のエネルギーの増減
time = 58;実行の持続時間
movetime = 58;持続時間のうち自キャラが動くことができる時間
ではパラメータについて説明します。
anim& nbsp;実行時に表示するアニメーション番号
Hitdef のsparknoやExplodのanimと使い方は一緒です。
デフォルトで用意されているエフェクトの種類は
100;エフェクト(小),101;エフェクト(中),102;エフェクト(大)
です。
また、キャラのSFFに含まれてる絵を使いたい場合、
sparkno=s6002 のように
sの後にアニメーション番号を記入するとこも一緒です。

pos
animで設定したアニメーションを表示する位置を設定します。

sound
これもHitdefのhitsoundなんかと使い方は一緒です。

poweradd& nbsp;Statedefのpoweraddと同じです。

time 硬直時間を設定します。

movetime
硬直時間のうち、自分が動くことができる時間を設定します。

もし背景を暗くしたくない場合はPauseを使用してください。
どちらも使用方法はほぼ一緒です。

カットインの表示はExplodを使用します。

ということで、先ほどのサンプルに
SuperPauseとそれ以外の演出入れて
完成です。
とりあえずこんなかんじです。



続いてCMDですが
[State -1, ネギ強]
type = ChangeState
value = 1020
triggerall = command = "QCF_z"
triggerall = command != "holddown"
triggerall = Power >= 1000
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = movecontact
trigger3 = stateno = 210
trigger3 = movecontact
trigger4 = stateno = 215
trigger4= movecontact
これも先ほどとほとんど変わりありません。
明らかに違うのが
triggerall = Power >= 1000
という部分ですが、
これはゲージが1000以上という意味です。
これがないとゲージが空の状態でもゲージ消費技を出すことができるので注意しましょう。





これで必殺技、超必殺技の解説はおわりです。
ですが今回はまだ終わりません。
これから、今後キャラを作るにあたって最も重要な要素、Varに ついて解説します。


Varというのは、一言で言うなら変数(いろんな数値を格納することができる入れ物)です。
この種類ですが
正の整数のみ格納することができるVarと
小数点以下の数字のみ格納することができるfVarの二種類あります。
(fVarのfは多分floatのことだと思われます。)
Varは0~59までの60個
fVarは0~39までの40個を使用することができます。
(MUGENに関わらず、プログラムでは1からではなく0から数えます。
覚えておいて損はないので覚えていてください。)

VarやfVarの使い方は大きく分けて二つです。
① パラメータの変化に用いる。
② フラグとして用いる。

これらについて
先ほどのステート1020を使って解説します。
まずは実感してもらうために、ちょっと作業してもらいます。
ステート1020のExplod部分を削除し、
その代わりにこれを追加してくださ い。

その状態で超必殺技を使用してください。
こんな風にカットインが徐々に拡大す るようになったでしょうか。

少し拡大が違うという場合は、
おそらくカットインをSFFに登録したときの座標の違いかと思われます。

では説明します。

[State 1020,カットイン]
type = Varset
trigger1 = time = 0
var(2) = 0

[State 1020,カットイン]
type = VarAdd
trigger1 = time >= 0
trigger1 = Var(2) < 50
var(2) = 1

Varを変更するためのステートはこの二つです。
VarsetはVarを指定した値に変更するものです。
VaraddはVarに値を追加するものです。
使い方はPosやVelの時とほとんど変わりありません。
今回はこれでVar(2)を0~50まで変化させています。

次にExplod部分
3つ似たようなのが並んでいます。
いちばん下のものはVar(2)のぞうかが終わったときに
カットインを半透明表示しているだけです。
問題はあと2つ

[State 1020,カットイン];拡大させるカットイン
type = Explod
triggerall = numexplod(1021) = 0
trigger1 = Var(2) < 50
anim = 1021
id = 1021
postype = p1
pos =  -50,-130
sprpriority = 0
vel = 0,0
bindtime = 1
removetime = 50
supermove = 1
supermovetime = 9999
scale = (Var(2)*.02), (Var(2)*.02)
ownpal = 1

[State 1020,カットイン];カットインのscaleの値を変更させるのに使用します。
type = ModifyExplod
trigger1 = Var(2) > 0
trigger1 = Var(2) < 50
trigger1 = numexplod(1021) = 1
id = 1021;変化させるエフェクトのidを指定します。
postype = p1
pos =  -50,-130
sprpriority = 0
vel = 0,0
supermove = 1
scale = (Var(2)*.02), (Var(2)*.02)
ownpal = 1

上のほうで、カットインを表示しています。
以前の物とは違い、トリガーとscaleの部分にVar(2)を使用しています。
先ほどの使い方に当てはめますと、
トリガーに使用しているのが①、
scaleに使用しているのが②ということになります。
scaleでは(Var(2)*.02)
つまりVar(2)×0.02という値を使用しています。
fVarを使用してもよかったのですが、
今回はあえてVarを使用しています。

Explodは、発生したときのVarの値を読み取っくてれますが
その後値が増減しても反映しません。
そこで値を反映させるために使用するのが
次のModifyExplodなのです。

ここには変化させるExplodのIDと変更させたいパラメータを記入します。
ただし、animやsupermovetime等は変更させることができません。

こんなかんじでVarを使用していくのですが、
使用していくうちにどのVarを使用したかわからなくなる、なんてことがあります。
ですので使用したVarとその目的はどこかにメモしておく癖をつけたほうがいいでしょう。
お勧めは、ちょっとこ丸氏作成の教材カンフーマン内の変数早見表.txtです。




これで今回の講座は終わりです。
次回は格闘ゲームでは多くのキャラが使用する、飛び道具の解説に入ります。
また問題がありますのでぜひとも解いてください。




問 題1
問題1動画
先ほど、Varでパラメータをいじる方法を説明しました。
そこで

Var (2)を使用して、カットインをこの動画のようにし なさ い。


答え




問 題2
問題2動画
せっかく超必殺技がドリルなので
一発しかあたらないのももったいないものです。
そこで、

Var (3)を使って、ドリルが動画のように5回攻撃が当たるようにしてください。
た だし、アニメーションが終わったら技も終わるようにしてください。

答え




参 考文献

ク リエイターズJAPAN2の緑茶氏によるステートコントローラー解説
http://cjmk2.hp.infoseek.co.jp/ryoku/index.html

月の住処,クリエイタールーム
http://tukiken.hp.infoseek.co.jp/muge/cr/creater.html

ちょっとこ丸氏製作教材カンフーマン