MUGEN製作講座
〜varについてのまとめ〜


師匠たちの会話を、私こと[サイトの管理人Yes]がまとめたものです。


前提として

*Varを使いこなしたい*

これが目的です

この目的をはたすためにドモンは師匠のもとへ教えを請いに行きました。

ドモンはこの目的を途中から忘れていました。

皆さんは忘れないように、つねに頭の隅に置いておきましょう。

 

 

  師匠たちの会話を大まかににまとめると

 
・Varとは何か?
・Varの使い方
 
この2つです。
 
 
それではまず
 
・Varとは何か?
 

 

最初にこの師匠の言葉を思い出してください。

 

VARDOMON001.JPG - 35,527BYTES
「理解なんてものは後からついてくるものぞ!
使い方さえ覚えればそれでいい。」
 
 
と、言っています。
 
*Varを使いこなしたい*
 
この目的を果たす上で
 
・Varとは何か?
 
を理解できていなくても問題ない
 
と、いうことです。
 
 
 
 
 
以上ことを踏まえたうえで
Varとは何か?
のまとめです
 
 
*ここでは
()の中の数字を Varの識別番号
=の後の数字を Varの値
と呼ぶことにします
var(15) = 4
Varの識別番号 15
Varの値  4
 
 
 
 
mugenのキャラクターにはあらかじめ
var(0)
var(1)
var(2)
var(58)
var(59)
が与えられています。
 
何を言っているのか分からない
と、お思いの方
深く考えないでください
 
これはmugenのシステムです。
 
例えば
HP
これも問答無用でキャラに最初から与えられていますね
 
mugenのシステムなんです。
 
これらの値は最初(最初というのはラウンドの開始直前のこと)は0
つまり
 
var(0) = 0
var(1) = 0
var(2) = 0
var(58) = 0
var(59) = 0
 
となっています。
 
なおこのVarの値
VarSet
VarAdd
ステートコントローラ一でのみ変化します。
 
そして一度変化させると
再び
VarSet
VarAdd
ステートコントローラ一で変化させない限り
そのラウンドの間そのままです。
 
そしてラウンドが変わると
var(0) = 0
var(1) = 0
var(2) = 0
var(58) = 0
var(59) = 0
この状態にもどります。
 

分かりましたでしょうか

varとはそういうものです。

 
 
 
・Varの使い方
 
 
最初に注意です
 
自分が何番のVarを何のために使ったかというのは
どこかにしっかりメモしておいてください
こんな具合に
 
var(4)   小ジャンプ
var(5)   ロングジャンプ
var(6)   前ロングジャンプ
var(7)  後ロングジャンプ
var(8)  前方空中ダッシュ回数
var(9)  後方空中ダッシュ回数
var(10) 補正
var(18)  攻撃力 (強化)
var(19)  高速移動 (強化)
 
しっかりメモしておかないとバグ修正がめんどくさいことになります。
 
 
 
 
本題です
 
 
VARDOMON001.JPG - 35,527BYTES
「Varには2つの使い方がある。
一つはスイッチ
一つは変数
だ!」
 
ということなので、
・スイッチとしての使い方
・変数としての使い方
この2つについて
まとめます。
 
この2つを覚えることで
*Varを使いこなしたい*
という目的は達成です。
 
では
 
・スイッチとしての使い方
 
 
*ここでは
()の中の数字を Varの識別番号
=の後の数字を Varの値
と呼ぶことにします
var(15) = 4
Varの識別番号 15
Varの値  4
 
 
 
 
 
Varの値
何もしなければ0
VarSet
VarAdd
ステートコントローラ一でのみ変化し
 
一度変化させると
再び
VarSet
VarAdd
ステートコントローラ一で変化させない限り
そのラウンドの間そのまま
 
この性質を利用します。
 
 
 
これを見てください

[State 1055, VelSet]
type = VelSet
trigger1 = var(5) = 0
x = -2

[State 1055, VelSet]
type = VelSet
trigger1 = var(5) = 1
x = 10

 
var(5) = 0ならば後ろに下がり
var(5) = 1ならば前に前に進む
 
というものです。
 
varの値は最初全て0
だから
とくに何もしなければ

[State 1055, VelSet]
type = VelSet
trigger1 = var(5) = 0
x = -2

こっちが発動します
 
では

[State 1055, VelSet]
type = VelSet
trigger1 = var(5) = 1
x = 10

こっちを発動させたい場合はどうするのか?
 
簡単です

[State 1055, VelSet]
type = Varset
trigger1 = time = 0
var(5) = 1

これを使います。
これを使うと。
var(5) の値はそのラウンド間1になります。
 
ので
 
次回からそのラウンドの間は

[State 1055, VelSet]
type = VelSet
trigger1 = var(5) = 1
x = 10

こっちが発動します
 
 
 
こんな感じです
使っていくうちに色々応用がきくようになるでしょう。
 
 
・変数としての使い方
 
 
*ここでは
()の中の数字を Varの識別番号
=の後の数字を Varの値
と呼ぶことにします
var(15) = 4
Varの識別番号 15
Varの値  4
 
 
 
これを見てください

[State 1000, 2]
type = VarAdd
trigger1 = Time >= 0
var(10) = 5

[State 1055, VelSet]
type = VelSet
trigger1 = Time >= 0
y = 2*var(10)+1

 
意味は

[State 1000, 2]
type = VarAdd
trigger1 = Time >= 0
var(10) = 5

1フレーム(60分の1秒)ごとに
var(10) の値が5づつ増える
 

[State 1055, VelSet]
type = VelSet
trigger1 = Time >= 0
y = 2*var(10)+1

1フレーム(60分の1秒)ごとに
速さが2*var(10)+1になる。
 
合わせて
 
1フレーム(60分の1秒)ごとに
速さが
1,11,21,31,41・・・・
になる
 
というものです。
 

[State 1055, VelSet]
type = VelSet
trigger1 = Time = 0
y = 1

[State 1055, VelSet]
type = VelSet
trigger1 = Time = 1
y = 11

[State 1055, VelSet]
type = VelSet
trigger1 = Time = 2
y = 21

[State 1055, VelSet]
type = VelSet
trigger1 = Time = 3
y = 31

[State 1055, VelSet]
type = VelSet
trigger1 = Time = 4
y = 41



これと同じですね。
 
ここで注意しなければならないことが一つあります。
 
Varの値
一度変化させると
再び
VarSet
VarAdd
ステートコントローラ一で変化させない限り
そのラウンドの間そのまま
 
という性質です。
というのは

[State 1000, 2]
type = VarAdd
trigger1 = Time >= 0
var(10) = 5

これがあるステイトが
Time = 4
で終了した場合
var(10) の値は 20で
そのラウンドの間そのままです
 
それで次に

[State 1000, 2]
type = VarAdd
trigger1 = Time >= 0
var(10) = 5

[State 1055, VelSet]
type = VelSet
trigger1 = Time >= 0
y = 2*var(10)+1

これを使うと
1フレーム(60分の1秒)ごとに
速さが
1,11,21,31,41・・・・
になる
フレーム(60分の1秒)ごとに
速さが
41,51,61,71,91・・・・
になる
 
というものになってしまいます。
 
 
 
うまく対処してください。
 
 
 
こういうものです。
使っていくうちに色々応用がきくようになるでしょう。
 
 
他にも色々な使い方ができるとは思いますが
それは皆さんが自分で見つけてください。
 
 
 
 
以上師匠たちの会話の内容のまとめでした。
 
〜完〜
 

 

inserted by FC2 system