MUGEN豆知識

「MUGEN豆知識」の編集履歴(バックアップ)一覧はこちら

MUGEN豆知識 - (2011/11/06 (日) 21:38:32) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

MUGENにおいてあまり知られていない物事について。 -[[東方キャラのストーリーモード自重方法>ストーリーモード自重方法]] -[[悪咲氏のカプエスキャラのグルーヴ固定方法>グルーヴ#id_0d728050]] -[[分身バグ>分身]] -[[AIの常時起動方法]] -[[七星ゲージ有情化]] -[[MUGENでラスボス格付けを行う設定方法>ラスボス]] -[[新バージョンmugenについて]] -[[ガード関連の仕様について]] -[[ゾンビ化バグ>ゾンビ]] -[[カラーパレット]] 以上の10項目はそれぞれリンク先の独立記事を参照。 ---- #right(){{{注: 容量の都合上、2ページに分割したものを統合しています。&br()製作者特有のMUGENキャラクターの仕様についての編集は&link_edit(page=MUGEN豆知識/2,text=こちら)からお願いします。}}} ---- #contents #contents(page=MUGEN豆知識/2) ---- ***&bold(){MUGENにおける1P側と2P側の差} 一般的な格闘ゲームにおいては1P側と2P側でなんらかの差(特定の攻撃がつながるなど)があることも多いが、 MUGENにおいてもやはり存在する。 MUGENではフレームの開始時点でmoevtypeがAになっているキャラクターやヘルパーが存在しない場合、 1P側のキャラクター本体のステコンが処理された後で、 2P側のキャラクターで同様の処理が行われ、その後ヘルパーの処理がなされた後、攻撃の成功判定などが最後に行われる。 movetypeがAのときは基本的にctrlが無効になるので、 お互いが行動を起こせる状態では2P側は1P側の出方を見てステートを処理しており、 この処理順が勝敗に多大な影響を及ぼす局面が頻繁に起こっている。 特に顕著なのが1F技で、ほとんどの[[AI]]では投げ攻撃に対してhitdefattrを利用して回避行動を取るようになっているが、 [[発生]]1Fの攻撃に限り、2P側では相手の攻撃に対して回避行動やガードを行うことができるが、 1P側のキャラクターはそれができず、2P側で選択されていれば対処できたはずの攻撃をくらってしまうことになる。 またキャラクターの移動も1P側が先に行われるため、原理的には一般的な格闘ゲームに見られる1P側、2P側限定裏回りも成立しうる。 他にも1F技のように目立つことはないものの、全てのトリガーの反応が実質1フレーム遅れて 後出しで行動できるので、色々な局面で2P側が有利になりやすい。 ちなみにmovetypeがAになっているプレイヤーまたはヘルパーが存在する場合、それらの処理が優先して行われる。 発生が1Fでなければ1P側でもhitdefattrを使用してガードなどができるのはこのため。 もっともAI対AIの場合、2P側の方が打撃技に対するガード移行や[[超反応]]迎撃の試行回数が1回多いので、やはり2P側有利は変わらない。 AIに限った話ではなく、相手の挙動に即座に反応するステコン全般でこのような問題が発生する可能性がある。 キャラクターやAIの製作中には、たまには自分のキャラクターを2P側にして動かしてみよう。 ---- ***&bold(){MUGENの処理フレーム} MUGENでは1フレーム経過した時点で処理が完了するケースが多い。 例えばhitdefやprojectileはヒットまたはガード判定が出た次のフレームでダメージが入るため、 ヒット判定が出た次のフレーム(このときのstatenoは5000、5010、5020、150、152、154)で hitoverride、changestateで他のステートに飛ばしたり、statetypesetを実行したりして キャラクターのmovetypeをH以外にするとダメージが入らない。 またmugenの内部処理ではないものの、p2statenoのかわりにtargetstateを使用している攻撃も、 ヒット判定は出るがtargetstateは無効化される。 //ページ容量が限界にきていたため、ガード関連の記述を別ページに分離しました ---- ***&bold(){MUGENのステートの処理順序} //hitdef内のp1statenoおよびp2statenoによるステート移行、 //hitoverride、reversaldefによるステート移行、projectileの処理の順序について情報があれば追記お願いします MUGENでは毎フレームごとに-3ステート→-2ステート→-1ステート→0番以降の自分が今いるステートの順番で処理が進む。 &nowiki(){-}3ステートおよび-1ステートは、ステートを奪われていない限り1フレームにつき必ず1回実行され、 &nowiki(){-}2ステートはステートを奪われていても1フレームにつき1回実行される。 これらのマイナスの番号がついたステートは常時監視ステートと呼ばれ、どのステートも同一フレームで2回以上実行されることはない。 なお0番以降のステートはchangestateを繰り返すことで何度でも(2500回という上限は一応存在する)実行可能である。 MUGENのシステムに組み込まれているAI(デバッグキーのCtrl+1および+2で起動するもの)が起動している場合、 ctrlが有効になっていると-3ステートの前にMUGEN内部のコマンド処理が割り込むことがある。 一般的なchangestateは常時監視ステートで行われるので問題にならないが、 例外的にMUGENの内部処理に組み込まれているchangestate (hitdefを受けたことによるくらいモーションへの移行、MUGEN内部のコマンド処理による前進、後退(ガード)、しゃがみ、 ジャンプ移行。ただし前進と後退、ガードはassertspecialで無効化できる。)は &nowiki(){-}3ステートが実行される前に実行される。 //phisicsがAの時に内部処理として行われる着地は0番以降のステートの処理が終わり、velocityなどによる座標移動が終わったあとに行われるので着地をコメントアウト。 これらの処理は-3ステートにおいてtime=0が成立する数少ないchangestateになっているので、 ジャンプ移行などを完全に排除したいときは-3ステートの末尾でそれぞれのステート番号とtime=0をトリガーにして、 ctrlを有効にしつつニュートラル(一般的には0番ステート)に引き戻すようにすればよい。 ただし下手に条件を設定するとくらい抜けや空中で立つなどということになりかねないので、 トリガーは慎重に設定すること。 ちなみに常時監視ステート内でselfstateおよびchangestateが実行されると、 それ以降のそのステートにあるステートコントローラが全て無視される。 必殺技へのchangestateをcmdファイルの上のほうに記述しなければならないのはこれが理由なのだが、 内部処理用のステコンの前に置いてしまうと本来毎フレーム処理されるはずの処理がスキップされてしまうことにある。 場合によっては致命的な問題を引き起こすので、changestateはそれぞれのステートの末尾にまとめて並べるようにした方がよい。 上記したtime=0のchangestateをわざわざ末尾で実行するよう明記したのはそのためである。 なお実行されないのではなく完全に無視されてしまうので、nullと:=を用いた変数代入もスキップされる。 裏を返せば、type=nullとしてもトリガー自体は実行されているということである。 完全に処理を排除してしまいたければ、セミコロンを使ってコメントアウトしなければならない。 以下、AI製作者向け &nowiki(){-}3ステートで内部処理に加えてAIのchangestateが行われていることがあるが &nowiki(){-}3ステートではAIのchangestateを行わないほうがよい。 それどころか、AI関係のステコンはごく一部の例外を除き、全て-1ステートで処理した方がよかったりする。 というのも、たとえ同一フレームであっても、-2ステートの内部処理を経由することで キャラクターの状態が全く異なることがありうるからである。 オリコンやMAX発動の最後の1フレームなどがわかりやすい例で、 &nowiki(){-}3ステートの時点では最後の1フレームが残っている→ &nowiki(){-}2ステートでカウントが進み、オリコンorMAX状態解除→-1ステートの時点では解除済み、となる。 実際の対戦では両者の最後の1フレームは技の硬直中であったり 持続時間を十分残した状態で超必殺技を使って強制解除となることが大半でほとんど問題にならないのだが、 キャラクターのシステムによっては1フレームの差がきいてくることもある。 フレーム単位で自分のおかれている状況を判断しているAIならば、なおさら差が生まれやすい。 こうした問題があるので、-3ステートには「相手にステートを奪われているときは実行したくない内部処理」のみを置き、 &nowiki(){-}2ステートに「相手にステートを奪われているときも実行したい内部処理」 &nowiki(){-}1ステートに「-3、-2ステートの処理の結果を見て実行したい内部処理とchangestate」を記述するのが無難である。 ---- ***スケール関連 ****&bold(){飛び道具の倍率} CNSのSIZE内「xscale」、「yscale」を任意の数値に変更するとキャラクターの表示倍率が変化する。 ここでproj.doscaleが1になっていると、projectileのスケールも上記の倍率通りになる。 しかし、projectileの代わりにhelperを用いた飛び道具の場合は一括して変更することは出来ない。 CNS内を「type = helper」(=の前後の空白は有ったり無かったりなので気をつけること)で検索し >size.xscale = const(size.xscale) >size.yscale = const(size.yscale) スケールの値をこのように設定すれば本体の倍率が適用されるようになる。 ただしもともとスケールを変更してあるhelperの場合はまた別。 飛び道具の出現位置がずれる場合が多いので、その時は 「type = helper」、「type = projectile」で検索し、 直下の「pos」を倍率及び基準位置(postype)に従ってすべて変更。 さらにキャラ本体の移動速度や弾速もスケールにあわせ全て調整しなくてはならない。 本体およびhelper用の全てのステート内のVel系全命令、それともしもGravityが 使われているならConstのMovement>yaccelもチェックしよう。 projectileの場合「velocity」「remvelocity」がチェックの対象である。 大雑把でいいと割り切っているなら上記の作業全てをやる必要は無いが、きちんとしたものにしようとすると 作業量はかなり多いので気をつけよう。 作業に入る前に、変更前のキャラをどこかに保存しておこう。また、一時的に変更前のキャラと作業中のキャラを 両方登録しておき挙動を比べてみると良い。特に、もしそのキャラを動画に使用するつもりならば、 技の当たり具合やコンボの繋がりにおかしな影響が出ていないかのチェックには充分に念を入れよう。 //こんなとこでまでくどくど説教がましいこと書かなくてもいいんじゃないかな。 //いやー、書き方はともかくとしてお手軽な改造だと誤解させないようにある程度のことは書いておいた方がいいと思うのですよ。 なおWin版MUGENを使っているなら(多分使っているだろうが)次の節も参照しておいた方が良い。 //これをしないと一部のキャラサイズが大きいゲームのキャラは大型キャラにしかコンボが入らなかったり。 //例:GG、北斗他 //変更を推奨してるみたいにとれる文章はよしましょう。 ---- ****Size>scaleの問題点 キャラの倍率を自由に変更できるConst>Size>xscaleおよびyscaleだが、実はWin版MUGENでは yscaleを1以外にすると影や床の反射像の表示位置が狂うという問題がある。 (xscaleの方は1以外を使用しても特に問題は無い。) 解決方法は無いらしく、強いて言えばyscaleを1から変更しないことが対策である。 後からscaleなど使わずに済むように、なるべくSFF構築の時点で画像に拡大縮小をかけておくのが望ましい。 ……と言われても、いわゆるD4専用キャラでは無理な話だろうが、 正規のバージョンではない流出品の本体を正しくない設定で使用していることを考えればこの程度の問題はやむを得ないところだろう。 一応D4キャラのためには、constではなくAngleDrawを-2ステートから用いて常時縮小表示するという手があって、 このやり方ならば影が正しい位置に表示される。 キャラによっては投げ技などの最中にP2用のステイトでAngleDrawを使う場合もあるが、 その場合でもちゃんと双方のAngleDrawの効果が反映された表示になってくれる。 後からサイズを変更するのには向かないが、それをしないならばConstのxscale、yscaleを変更するよりも、 AngleDrawを使う方がより良い処理と言えそうだ。 ---- ***&bold(){NotHitByの仕様} //大幅に改稿 NotHitByを使いこなすには、以下の表の内容を頭に入れておく必要がある。 #region(attrの種類の一覧表) ここでattrそのものについての説明もしておくと、attrはAttribute(特性や属性などといった意味)の略である。 例えば立ち打撃通常技なら記述は「S,NA」などといった形となるが、 この時コンマの前側に記述する部分をarg1と呼び、後側の部分をarg2と呼ぶ。 attrには以下の27種類がある。 |>||打撃 (A)|投げ (T)|飛び道具 (P)| |立ち (S)|通常技 (N)|S,NA|S,NT|S,NP| |~|必殺技 (S)|S,SA|S,ST|S,SP| |~|超必殺技 (H)|S,HA|S,HT|S,HP| |しゃがみ (C)|通常技 (N)|C,NA|C,NT|C,NP| |~|必殺技 (S)|C,SA|C,ST|C,SP| |~|超必殺技 (H)|C,HA|C,HT|C,HP| |空中 (A)|通常技 (N)|A,NA|A,NT|A,NP| |~|必殺技 (S)|A,SA|A,ST|A,SP| |~|超必殺技 (H)|A,HA|A,HT|A,HP| #endregion NotHitByの記述は以下のようなもの。 >[State XX, XX] >type = NotHitBy >trigger1 = (任意のトリガー) >value = (任意のattr) このvalueにattrを書きこむことで、どの属性の攻撃判定に対して無敵なのかを指定するのだが、 この時の記述の形式はけっこう独特で分かりづらいため、しっかりと理解することが必要である。 「value =」の直後に記述するのはarg1要素と決まっていて、例えばこれを >value = S とすると、それだけで&bold(){立属性の判定}(StateTypeがSの状態でのHitDef全て)に対して無敵になる。 //NotHitByのValue=SCで、相手がStateType=Aの状態でAttr=S,HAのHitDefを出しても命中します。 //逆にNotHitByのValue=SCで、相手がStateType=Sの状態でAttr=A,HAのHitDefを出したら当たりません。 arg1要素を省きarg2要素だけ指定したい場合は「value =」の直後にコンマを打ってから記述を始める。 >value = ,NA このようにすれば&bold(){通常技で打撃属性の判定}(arg2がNAのattr全て)に対して無敵になる。 さらにNAの後にまたコンマを打てば他のarg2要素を書き加えていくことが出来る。 基本的に何か書き足せば足した分だけそのまま対称範囲が広がるので >value = S,NA,NP などとすると、全ての&bold(){立属性の判定}、&bold(){通常技で打撃属性の判定}、 &bold(){通常技の飛び道具属性の判定}に対して無敵になる。 なお、通常技、必殺技、超必殺技全てを対象にしたい場合は >value = ,NA,SA,HA と書く以外に >value = ,AA としても良い。通常N or S or Hが入るはずの部分にAを入れるわけだが、これはAllの略のAである。 上記のようにarg1、arg2の要素はそれぞれ独立しているのだが、 value = SCA,NT,ST,HTなどとしてしまっているケースが意外と多い (投げ無敵にするはずが、arg1がSCAになっているため完全無敵になってしまっている)。 もし気になるようなら、報告あるいは修正しておいてもいいだろう。 ちなみに投げ無敵にしたいときはarg1を省略し、value = ,ATまたはvalue = ,NT,ST,HTとすればよい。 キャラ作成をしていれば「立属性かつ打撃属性である攻撃に対してだけ無敵」という状態を作りたい場合なども あるかもしれないが、NotHitByの仕様上それは不可能である。 value = ,AA とarg2要素だけを指定しトリガーにP2StateType = Sを加えるなどすれば、 意図に近い状態を作れないでもないが、トリガー成立中にはあくまでも全ての打撃に対し無敵となっているため、 タッグモードや、相手がヘルパーを多用するキャラだった場合など、 P2のHitDef以外の攻撃がある状況ではどうしても安定した結果にならない。 #region(ちなみに) >value = SCA こう書いた場合と >value = ,AA,AT,AP こう書いた場合とでは、書き方は違っていても結果的にどっちも全ての攻撃に無敵という同じ状態になるが、 新バージョンMUGENではarg2要素を省略するとエラーを返されてしまうことに注意。 #endregion ---- ***&bold(){投げ技の最中にしてはいけないこと} 正確には投げ技だけでなく、HitdefでP2StateNoを指定する技と、 targetstateを使用する技全般である。これらをさしてステートを奪う、などと呼ばれる。 ステートを奪われていると、デバッグを起動したときに画面左下に表示されるキャラクター情報の文字が黄色になる。 このとき、技を仕掛けた側、仕掛けられた側双方にしてはいけないことがある。 まず技を仕掛けた方。 ****相手のVarを変更してはいけない 本当をいうとこれは豆知識だとかではない。なんでかと言うと公式のドキュメントに書いてあることだからである。 sctrls.rtfかsctrls.htmlを開いて「rude」という単語を検索すれば当該の箇所が見つかる(大体を意訳すると 「貴方のカスタムしたステートでP2を処理している間には使わないでください、P2の変数を上書きしてしまいます。 とても失礼です。」というような内容)。 ****Helper、Projectile、Explod等を発生させてはいけない こちらは別にドキュメントに書かれているわけではないが、理由は大体上と同じである。 HelperとProjectileはともかくExplodまで?と思うかもしれないが、 NumExplodというトリガーもあるので念の為に使用を避けた方が安全。 ****相手のPowerをトリガーにした記述を考え無しに使用してはならない これはPowerはそのキャラ固有のものではない(タッグパートナーやヘルパーも共有している)ためで、例えば 『徐々に相手のPowerを減少させていき、やがてある数値を下回ったらSelfStateでコントロールを返す』というような 技を作ると、場合によってはその技は延々終わらなくなってしまう。 ただしあくまでこれは考え無しに使うのが問題なので、&italic(){きちんと考えて使う分には問題はいくらでも避けられる。} ****技の演出中にtargetstateやtargetbindなどを使うときはくらい判定をつけてはいけない [[ワイヤーダメージ]]や特殊ダウン(ダウン追い討ちをかけるためのダウン)など、 かけられた側が一定時間後にselfstateを実行する場合はかまわないが、 投げ技などでは技をかけている最中に攻撃側が攻撃を受けて技のステートから抜けてしまうと、 技をかけられた側がそのステートから抜け出せなくなってしまうことがある。 また技をかけられた側のくらい判定を残したままにすると、攻撃をくらってステートから抜けた際に かけた側が何もない場所で投げモーションを取ったりと妙なことになる。 つぎに技を仕掛けられた方。 こちらはしてはいけないことが多いのでやや大雑把になるが一個一個を上げずにまとめて説明する。 ****勝手に状態を変えてはいけない 勝手に-2ステートでChangestateやSelfState等をするな、ということ。 当たり前に思えるが、原作で投げや当て身投げが通じないような特殊なキャラ([[これ>レオパルドン]]とか[[これ>オンスロート]]とか)で、 その再現のためかこれをやってしまっているキャラは案外いる。 しかし、投げを食らわないようにするのと、投げ成立後に相手の記述から勝手に抜けるのは別である。 最悪本体が落ちることもあるのでこれらのキャラと当て身投げ技を持つキャラの対戦時は注意がいる。 ****相手がトリガーにしそうなものは全て変更してはいけない 例えばVelSet、VelAdd、PosSet、PosAdd、LifeSet、LifeAdd、ChangeAnim…etcである。 これらを変更する記述を-2ステート内に持っているキャラは、-3に記述の場所を移した方が良いだろう。 ちなみにこれらを意図的にやって、相手の投げ技などを正常に機能しなくさせているのが[[神キャラ]]らの[[即死攻撃]]対策である。 特にselfstateで投げなどから抜ける行動はステート抜けと呼ばれ、 [[GUILTY GEAR]]のサイクバーストのようなくらい抜けとは明確に区別されており、 後者はコモンステートで定義された共通くらいステートでのみ使用可能になっている。 裏を返せばステートを奪われるとこれらのシステムが使用できなくなってしまうため、 むやみやたらとステートを奪うのは考え物である。 もっとも、技の性質上こういったシステムを使用させたくないときに、わざとステートを奪うケースもあるのだが。 ****commandトリガーを使ってはいけない ステートを奪った側で実行されたコマンドに対応するコマンド(コマンドの内容ではなく、cmdファイルに記述されている順番が同じコマンド)が、 なぜかステートを奪われた側でも実行されるという仕様が存在する。 そのためcommand以外の条件が甘いステコンを-2ステートに記述すると、 投げ技や当身を受けたときに暴発してしまう可能性がある。 またhelperは本体とは独立して処理を行っているので、 helper側のroot,commandトリガーが反応してしまいステコンの暴発につながることもありうる。 ****stateno=○というトリガーを使ってはいけない stateno!=○というトリガーであれば問題は起こりにくいが、相手がtargetstateなどで指定したstatenoの番号と、 &nowiki(){-}2ステートやhelperに記述されたstatenoトリガーの番号が重なってしまった場合、何が起こるかわからない。 例えば本体のステートを参照してhelperからexplodなどを射出している場合、 本体が投げられた途端にエフェクトが表示されるなどということがある。 それだけならまだいいが、varsetなどが実行されていると非常に危険。 &nowiki(){-}2ステートにあるものついては、statenoトリガーを使うのではなく、 ステートコントローラごとそれぞれのステートに移した方がよい。 また、stateno!=○というトリガーであっても、statenoが重なってしまった時の対応を考えておく必要がある。 commandトリガーと同様、helperでroot,statenoやparent,statenoトリガーを使用している時も注意しなければならない。 これらはトリガーの条件を厳密にすることで対応が可能。 ステートを奪われているときはmovetypeがHとなっていることが多いので、 movetype!=H、またはroot,movetype!=Hを加えることでほとんどの暴発を防止できる。 ---- ***&bold(){p2statenoおよびtargetstateをかけた攻撃の仕様について} ****p2stateno 相手に攻撃がヒットしたフレームでステートが変更されるため、 デバッグのコマ送りで5000番台のステートに飛んでいるのは確認できない(prevstatenoでは確認可能)。 hitdefのattrが相手がhitoverrideで指定しているattrと重複した場合強制的にスカり、 ヒット判定やガード判定、エフェクトは一切出ない。 そのため、一見すると無敵状態になっているように見える。 hitonceが無効になっている攻撃で複数の相手を同一フレームで巻き込み、 一方が直撃、一方がガードした場合、直撃した方のみp2statenoで指定したステートに飛び、 両方とも直撃していれば、両方が飛ぶ。 p1statenoがある場合、1体でも直撃していれば指定したステートに飛び、 全てガードされていれば飛ばない。 hitonceが有効になっている攻撃で複数の相手を巻き込んだ場合、 ランダムでどちらか一方のみp2statenoで指定した飛ばす。 また、自分はp1statenoで指定していたステートに飛ぶ。 なおhitonceを明記しなかった場合、attrが投げ以外なら無効、投げなら有効になる。 p2statenoを仕込んだ攻撃と相手の攻撃が相打ちになった場合、 p1statenoに関係なく食らいステートに飛ばされるが、p2statenoだけは実行される。 selfstateで強引に戻すにしても自分以外のステートをトリガーにせざるを得ないため、 タッグできちんと動作する保障はない。 そのためp2statenoを仕込んだ攻撃のpriorityはmissにしておいた方が無難。 p2statenoを仕込んだ攻撃と仕込んでいない攻撃が同じフレームで相手に当たった場合 (以下便宜のため、p2statenoを仕込んだ攻撃を投げ、仕込んでいない攻撃を打撃と呼ぶ) idの若い方が投げを実行していた場合、 攻撃を受けた側は投げで指定されたステートに飛ばされ攻撃側もp1statenoで指定されたステートに飛ぶが、 同時に打撃によるダメージも入る。 また、targetは投げを使ったキャラクターのみ保持され、 打撃を当てたキャラクターのtargetは無効となる。 idの若い方が打撃を実行していた場合、 1Fだけ投げで指定されたステートに飛ばされるが、その次のフレームで打撃によるダメージを受けて 5050番ステートに飛ばされ、その場でダウンする。 ****targetstate 投げ技などの過程でtargetstateを使用する場合もあるが、 ここではロック技やワイヤーダメージなどを想定し、 numtarget&&movehitをトリガーにしてignorehitpauseを有効にして作動するものとする。 targetstateはキャラクターの個別処理なので、最速でもヒット判定が出た次のフレームで、 常時監視ステートが実行できる状態にならないと作動させられない。 一方hitoverrideによるステート変更はmugenの内部処理にあたり、 ヒット判定が出た次のフレームの冒頭で実行されるので、 相手がhitoverrideでmovetypeがH以外に指定されているステートに飛ぶと targetが無効になり、作動しなくなる。 targetstateを仕込んだ攻撃で複数の相手を同一フレームで巻き込み、 一方が直撃、一方がガードした場合、ガードした方の相手もtargetstateで指定したステートに飛ぶ。 これはガードされたときもtargetは有効であり、movehitとmoveguardedが同一フレームで成立すると movehitだけが有効になるためで、targetstateのトリガーだけで完璧に回避することはできない。 また、p2statenoのhitonceのように相手を1体に限定することも不可能。 一応、targetstateで飛んだ先でgethitvar(guarded)などをトリガーにしてselfstateで戻すことは可能。 このとき戻すステートは120、130~132番ステートが妥当だが、 技の演出の関係上、どうやっても見た目が不自然になってしまうこともある。 また攻撃側の挙動が安定しないケースもあるので、 タッグ限定のバグであることから、実際には特に対処されていないことがほとんど。 targetstateを仕込んだ攻撃と相手の攻撃が相打ちになった場合、 食らいステートに飛ばされるためtargetstateが実行されることはない。 そのため、hitdefのpriorityをhitにしても基本的に問題はない。 ただし常時監視ステートにtargetstateを置く場合は 相打ちしたときに誤作動することがあるので、movetype!=Hなどが必要になる。 targetstateを仕込んだ攻撃と仕込んでいない攻撃が同じフレームで相手に当たった場合 targetstate自体はidを問わず問題なく作動し、同時にchangestateを作動させても問題ない。 またtargetはtargetstateをかけた側のみ有効になる。 逆にtargetstateが乗っていない攻撃は、攻撃が重なったフレームに関しては 相手のくらい判定や無敵状態に関係なく強制的にスカる。 ---- ***&bold(){技が途中で止まるorいつまで経っても止まらないorキャンセルの猶予が異常に短い} [[真田小次郎]](ホタリュソ氏)の『無明剣・贄』、[[ジャック・ターナー]](Andre Lopes氏)の『ストライカーテムジン』、[[グラント]](M.M.R氏)の『魔神円月輪』などで起こる現象。 最後1つは少し毛色が違うが、原因は同じだったりする。 これはMUGENの、DOS版とWIN版の仕様の違いによるもので、簡単に修正する事が出来る。 下記の左側の記述を右側のように変更すれば良い。 movecontact = 1 ⇒ movecontact movecontact = 0 ⇒ !movecontact movehit = 1   ⇒ movehit movehit = 0   ⇒ !movehit moveguarded = 1 ⇒ moveguarded moveguarded = 0 ⇒ !moveguarded 置換機能のあるテキストエディタを使えば楽、と言うか使わないとかなり面倒なので、おとなしく使おう。 ちなみにこの項の内容は無限小学校のMUGEN説明書にも載っているのだが、意外と気付いていない人も多いのではないだろうか。 『何かおかしいな?』と思ったらまず試してみるのをお勧めする。 ---- ***&bold(){立ち・しゃがみニュートラルで出せる技とstatetypeトリガー} ctrlが有効なときにキー入力により起こる立ち・しゃがみへのchangestateは常時監視ステートの前に処理される。 しかしchangestateが起こった時点でstatenoは変化するが、 実際にstatetypeやphysicsが変化するのは常時監視ステートの処理が終わった後なので、 常時監視ステートでstatetype=Cが成立するのは、 ニュートラル状態でcommand="down"が成立したフレーム(キーの↓を押したフレームと考えていい。 このとき同時にcommand="holdown"も成立する)ではなく、その次のフレームになる。 このため、kfmのようにstatetype=Cがしゃがみ通常技のトリガーに入っている場合、 ↓キーとボタンを同時押しするとしゃがみ通常技が出ない。 また立ちへの移行でも同様の現象が原因で、しゃがみニュートラル状態から ↓キーを離すと同時にボタンを押しても立ち通常技が出せない。 わずか1Fではあるが、立ち通常技>しゃがみ通常技、 またはしゃがみ通常技>立ち通常技の[[目押し]]が重要となるキャラでは致命的。 特に猶予0Fの目押しは、絶対につながらなくなってしまう。 技の条件に入っているstatetype=Sやstatetype=Cを全てstatetype!=Aに書き換えれば、この問題は解決される。 なお立ちガードとしゃがみガードの切り替えに関しては、ガードステート内に立ち、しゃがみの切り替え記述があり、 ガードの正否判定がキャラクターの処理が全て終わった後に行われるので問題ない。 ちなみにキー入力によるジャンプ移行でもctrlが無効化されるのは常時監視ステートの処理が終わった後なので、 ニュートラルからキー↑要素を入れた1F目では、stateno=40&&ctrlが成立する。 この仕様があるので、[[サマーソルトキック]]のようなキー↑要素のある技のトリガーにはstateno=40を加えなくても一応出せるのだが、 出しにくいことにはかわりがないので、stateno=40でも出せるようにしておいた方がいいだろう。 ---- ***&bold(){AIパッチを当てる際の小技} 単にパッチファイルを丸ごと上書きする前に少し手を加えてやると 1キャラ分の容量で複数のAIを使い分けることができ、またバックアップや整理も容易になる。 +キャラフォルダ内に新規フォルダを作る。フォルダ名はAIの製作者名などにしておくと整理する際に分かりやすい。 +そのフォルダにAIパッチの中身を全て入れる。 +AIパッチの中に新しいdefファイルがあればそれを、なければ元キャラのdefファイルをコピーし、元キャラのdefと同じ場所に置く。&br()ファイル名は先ほど作ったフォルダ名と同じにしておくと良い。 +コピーしたdefファイルを開き、AIパッチの内容に基づいて記述を変更する。&br()(例) 新しいchara.cmdとchara.cnsファイルが「AI」フォルダに入っている場合&br()chara.cmd → AI/chara.cmd&br()chara.cns → AI/chara.cns&br()に全て変更 +このdefファイルをMUGENのdataフォルダ、もしくは使用アドオン内のselect.defに登録する。 なお最初からこの形式で製作されてるAI製作者もいるので、その際はこの手順を踏む必要はない。 select.defを参照すればどれが誰のAIなのか一目瞭然なので、後々非常に便利。 ただし新しく作ったdefファイルの記述が間違っていてもエラーが出ないことが多いので、確認はしっかり。 何か動きがおかしいなと思ったらここをチェックしてみよう。 ---- ***チーム戦(Turns)で2番手以降のキャラのイントロを発生させる方法 最初から対応しているキャラもいるが、MUGENのデフォルト設定では発生しないようになっている。 そこでまずMUGENのdataフォルダ内のcommon1.cnsを開き、一番下にある [State 5900, 3] ;Intro for round 1 の記述を >[State 5900, 3] ;Intro for round 1 >type = ChangeState >value = 190 >trigger1 = RoundNo = 1 >trigger2 = RoundsExisted = 0 >trigger2 = TeamMode = Turns >trigger2 = RoundNo > 0 に書き換えてやる。 //これ、trigger1 = RoundsExisted = 0 だけで代用できませんか? これで備え付けのcommonを使っているキャラはOKだが、 独自にcommonファイルを持っているキャラやcns内にvar持ち越し、イントロの設定などが含まれているキャラの場合 それぞれ [State 5900, 3] に相当する記述を探し出して同じように書き換える必要がある。 この場合&b(){間違った場所に上書きしたりすると最悪そのキャラが動かなくなるので、バックアップを忘れずに。} 場所はキャラによってまちまちだが、片っ端からファイルを開いて 「5900」 などで検索をかけていけば大抵は見つかる。 稀に [State 5900] 以外に記述しているキャラもいるので、どうしても見つからなければ検索ワードを 「190」 などに変えてみよう。 2箇所に記述があることもあり、その場合は優先順位の高い方を修正しないと反映されないので注意。 イントロがあるかないかで動画の見栄えもかなり変わってくるので、チーム戦の動画を作る際にはこの作業をやっておくと良いだろう。 ただしこの記述は単にそのキャラが登場したラウンドのみイントロに移行するというものなので、 KOFのような特定の対戦カードになったときの[[掛け合い>特殊イントロ]]が成立しない。 >trigger3 = TeamMode = Turns >trigger3 = P2Name = "kfm" || P2Name = "ryu" || P2Name = "kyo" ;(以下略) という具合に書き加えて対応キャラを個別に登録していけば可能だが、これをいちいちやっていくのは凄まじく骨が折れる。 一応毎試合無条件で両者のイントロを発生させるようにすれば一括で成立するので、 それでもいいから掛け合いが欲しいという人は上の記述5行目行頭に「;」(半角セミコロン)を挿入しよう。 // //また別の方法としてはイントロ分岐用のステートを別に準備した上で5900ステートからへは毎ラウンドそのステートへ飛ばすようにし、 //特殊イントロがあるなら特殊イントロへ、特殊イントロがなくて最初のラウンドなら汎用イントロへ、 //どちらでもないなら立ちステートへ飛ばすように分岐をかければ、これらの問題はすべて解決する。 // //↑この方法だと、シングル戦で特殊イントロがあると全ラウンドで特殊イントロを始めます。 //個別対応すればいいのですが、「個別対応が面倒だから一括対応」という話ではなくなるので……。 ---- ***勝利ポーズ表示時間を変更する方法 [[独眼ちゃん]]やアリ氏の[[斬紅郎>壬無月斬紅郎]](2008年5月以前版)などで、 &bold(){勝利ポーズの途中で画面が切り替わってしまう}現象が時折見られる。 逆に、キャラによっては勝利ポーズが終わったのにいつまでも切り替わらないこともある。 斬紅郎の「無限流こそ海内無双の剣技よ」という台詞の「海内」の辺りで画面が切り替わってしまう現象に[[空耳]]も合わさって、 一部では『&bold(){無限流こそ曖昧現象}』と呼ばれることもある。 それを解決するには、勝利ポーズのステートから >[State 181, 1] >type = AssertSpecial >Trigger1 = Time = [0,200] >flag = RoundNotOver というような記述を探し、無い場合は付け加える。 もちろん勝利ポーズによって掛かる時間は違うため、&bold(){Time = [0,200]}の部分はそれに合わせて書き替える必要があるが、 そこは実際にMUGEN上で動かして調整すればいいだろう。 また[[ライフバー]]側の設定がまずい場合も似たような現象が起こる。代表的なのはVF5LBだろう。 fight.defの中のover.timeの数値を250ぐらいに変更すれば解決するはずだ。 ---- ***常時ステートの専用記述で対応する攻撃一覧 毒などの特殊な技は、攻撃側の記述だけでは再現しにくいことがある。 そのため相手側の常時ステートに専用の記述を組み込む必要があるが、 もちろん全てのキャラがその種の技全てに対応しているわけではない。 キャラや動画を製作する時は、こういった点にも留意するべきだろう。 |~製作者名|~キャラクター名|~対応する攻撃|~備考| |ドロウィン氏|[[廿楽冴姫]]|アンプゾワネ&br()アバトワール|| |~|[[朱鷺宮神依]]|~|~| |~|[[フィオナ・メイフィールド]]|~|~| |SAIKEI氏|[[ユダ]]|イチコロ|| |ゆ~とはる氏|[[マミヤ]]|バイク|七星ゲージのあるキャラ限定| |~|マミヤ|[[挑発]]|| |~|[[愛原奈都美]]|~|| |~|[[アル・アジフ]]|~|| |586氏|[[神尾観鈴]]|不幸の塊&br()観鈴ちんピンチ!|| |HAL氏|[[遠野秋葉]]|獣を焦がす&br()疾駆する獣を焦がす|| |⑨氏|[[赤朱秋葉>遠野秋葉]]|~|| |~|[[翡翠]]|じょうろ|MBAA仕様| |~|[[琥珀]]|現代医学の犠牲者です|MBAA仕様| |~|[[レン]]|パウダースノウ|MBAA仕様| |~|[[ワラキアの夜]]|ブラック・クラック|MBAA仕様| |祇園城奏貴氏|[[西行寺幽々子]]|霊符「无寿の夢」&br()寿命「无寿国への約束手形」|| |水影氏|[[伊吹萃香]]|酔符「鬼縛りの術」&br()酔夢「施餓鬼縛りの術」|霊力ゲージのあるキャラ限定| |~|[[小野塚小町]]|脱魂の儀|| |~|[[鈴仙・優曇華院・イナバ]]|毒煙幕「瓦斯織物の玉」|| |~|[[洩矢諏訪子]]|土着神の祟り&br()ミシャグジさまの祟り|| |IF氏|[[永峰希美]]|ウィッシュプライヤー|| 具体的な対応方法や記述の内容は、各々の付属txtなどを参照のこと。 ---- ***MUGENデバッグキーの一覧 大会・ストーリー動画の作成や、キャラ・AIの作成などあらゆる場面で知っていると便利なMUGENショートカットキーの一覧を掲載。 |[[F1]]|2P側のライフを0に| |CTRL+F1|1P側のライフを0に| |F2|両側のライフを1に| |CTRL+F2|1P側のライフを1に| |SHIFT+F2|2P側のライフを1に| |F3|両側のパワーをMAXに。[[ゲジマユ]]でお馴染み| |F4|ラウンドリセット| |SHIFT+F4|データのリロード(mugen起動中にcnsを更新して、そのまま更新データを読み込ませる事も可能)| |F5|タイムオーバー| |F12|スクリーンショット| |CTRL+C|判定枠の表示の切り替え| |CTRL+D|デバッグデータ表示の切り替え| |CTRL+I|両側のプレイヤーを強制ニュートラルステート(StateNo=0)に(はまり状態の回避に使える)| |CTRL+L|アドオンのライフ、パワーバー等を消去(キャラ固有のパワーバーは消せない)、用途はキャラ作成時に見やすくすることなど| |CTRL+S|ゲームスピードアップ(デバッグのFPSとSPEEDで確認可能)| |CTRL+数字|数字には1~4の数値が入る。指定した数値のキャラをAIモードに(1なら1P、2なら2P)| |CTRL+ALT+数字|キャラの消去。もう一度押すと元に戻る| |SPACE|両側のライフとパワーをMAXに、時間もリセット| |PAUSE|ポーズ画面の表示、トレーニングモードならサンドバッグの状態の指定も可能| |SCROLLLOCK|PAUSE中にSCROLLLOCKを押すたびに1Fだけ時間を進める、製作中キャラの動きの確認等で使える。| |ESC|mugenの終了や画面を戻すのに使用| ---- ***batで色々 [(mugen名) -r (アドオン名) -p2.ai 1]とやるとアドオン実行&2pAIonの効果 |-r|アドオン| |-p2.ai|1で2pのAIon。-p1.ai 0ならwatchモードで1pが操作可能に。| |-p2.color|カラー指定。12P色を選ぶ時とかに| |-s|ステージを指定。select.defに登録する時の「stages/aaaaa.def」という書式ではなく「aaaaa」で記載| ---- ***&bold(){Helpermaxについて} 一部のキャラクターは、製作者が付属のテキストで「Mugen.cfgのHelermaxを56に書き換えてください」と指示していることがあるが、 実はこの修正、ニコニコで目にするようなキャラクターをWin版Mugenで動かす際の必須事項と言ってもいい。 Helperが大量に発生するのは何も[[弾幕]]を張ったときだけではなく、 演出やエフェクトにも使用されており、GM氏の3rd仕様[[リュウ]]がダウン時に10個以上の視覚的に見えないHelperを管理していたりと、 意外なキャラクターがそこそこの数のHelperを発生させている。 Helperの個数がHelpermaxに到達してしまうと、[[飛び道具]]が出ないぐらいならまだいい方で、 ロック技の判定にHelperが使用されていると試合が続行不能になることもある。 こうした事故を未然に防ぐために、面倒くさがらずにWin版MUGENの上限値である56に設定しておこう。 ---- #include_cache(MUGEN豆知識/2)
MUGENにおいてあまり知られていない物事について。 -[[東方キャラのストーリーモード自重方法>ストーリーモード自重方法]] -[[悪咲氏のカプエスキャラのグルーヴ固定方法>グルーヴ#id_0d728050]] -[[分身バグ>分身]] -[[AIの常時起動方法]] -[[七星ゲージ有情化]] -[[MUGENでラスボス格付けを行う設定方法>ラスボス]] -[[新バージョンmugenについて]] -[[ガード関連の仕様について]] -[[ゾンビ化バグ>ゾンビ]] -[[カラーパレット]] 以上の10項目はそれぞれリンク先の独立記事を参照。 ---- #right(){{{注: 容量の都合上、2ページに分割したものを統合しています。&br()製作者特有のMUGENキャラクターの仕様についての編集は&link_edit(page=MUGEN豆知識/2,text=こちら)からお願いします。}}} ---- #contents #contents(page=MUGEN豆知識/2) ---- ***&bold(){MUGENにおける1P側と2P側の差} 一般的な格闘ゲームにおいては1P側と2P側でなんらかの差(特定の攻撃がつながるなど)があることも多いが、 MUGENにおいてもやはり存在する。 MUGENではフレームの開始時点でmoevtypeがAになっているキャラクターやヘルパーが存在しない場合、 1P側のキャラクター本体のステコンが処理された後で、 2P側のキャラクターで同様の処理が行われ、その後ヘルパーの処理がなされた後、攻撃の成功判定などが最後に行われる。 movetypeがAのときは基本的にctrlが無効になるので、 お互いが行動を起こせる状態では2P側は1P側の出方を見てステートを処理しており、 この処理順が勝敗に多大な影響を及ぼす局面が頻繁に起こっている。 特に顕著なのが1F技で、ほとんどの[[AI]]では投げ攻撃に対してhitdefattrを利用して回避行動を取るようになっているが、 [[発生]]1Fの攻撃に限り、2P側では相手の攻撃に対して回避行動やガードを行うことができるが、 1P側のキャラクターはそれができず、2P側で選択されていれば対処できたはずの攻撃をくらってしまうことになる。 またキャラクターの移動も1P側が先に行われるため、原理的には一般的な格闘ゲームに見られる1P側、2P側限定裏回りも成立しうる。 他にも1F技のように目立つことはないものの、全てのトリガーの反応が実質1フレーム遅れて 後出しで行動できるので、色々な局面で2P側が有利になりやすい。 ちなみにmovetypeがAになっているプレイヤーまたはヘルパーが存在する場合、それらの処理が優先して行われる。 発生が1Fでなければ1P側でもhitdefattrを使用してガードなどができるのはこのため。 もっともAI対AIの場合、2P側の方が打撃技に対するガード移行や[[超反応]]迎撃の試行回数が1回多いので、やはり2P側有利は変わらない。 AIに限った話ではなく、相手の挙動に即座に反応するステコン全般でこのような問題が発生する可能性がある。 キャラクターやAIの製作中には、たまには自分のキャラクターを2P側にして動かしてみよう。 ---- ***&bold(){MUGENの処理フレーム} MUGENでは1フレーム経過した時点で処理が完了するケースが多い。 例えばhitdefやprojectileはヒットまたはガード判定が出た次のフレームでダメージが入るため、 ヒット判定が出た次のフレーム(このときのstatenoは5000、5010、5020、150、152、154)で hitoverride、changestateで他のステートに飛ばしたり、statetypesetを実行したりして キャラクターのmovetypeをH以外にするとダメージが入らない。 またmugenの内部処理ではないものの、p2statenoのかわりにtargetstateを使用している攻撃も、 ヒット判定は出るがtargetstateは無効化される。 //ページ容量が限界にきていたため、ガード関連の記述を別ページに分離しました ---- ***&bold(){MUGENのステートの処理順序} //hitdef内のp1statenoおよびp2statenoによるステート移行、 //hitoverride、reversaldefによるステート移行、projectileの処理の順序について情報があれば追記お願いします MUGENでは毎フレームごとに-3ステート→-2ステート→-1ステート→0番以降の自分が今いるステートの順番で処理が進む。 &nowiki(){-}3ステートおよび-1ステートは、ステートを奪われていない限り1フレームにつき必ず1回実行され、 &nowiki(){-}2ステートはステートを奪われていても1フレームにつき1回実行される。 これらのマイナスの番号がついたステートは常時監視ステートと呼ばれ、どのステートも同一フレームで2回以上実行されることはない。 なお0番以降のステートはchangestateを繰り返すことで何度でも(2500回という上限は一応存在する)実行可能である。 MUGENのシステムに組み込まれているAI(デバッグキーのCtrl+1および+2で起動するもの)が起動している場合、 ctrlが有効になっていると-3ステートの前にMUGEN内部のコマンド処理が割り込むことがある。 一般的なchangestateは常時監視ステートで行われるので問題にならないが、 例外的にMUGENの内部処理に組み込まれているchangestate (hitdefを受けたことによるくらいモーションへの移行、MUGEN内部のコマンド処理による前進、後退(ガード)、しゃがみ、 ジャンプ移行。ただし前進と後退、ガードはassertspecialで無効化できる。)は &nowiki(){-}3ステートが実行される前に実行される。 //phisicsがAの時に内部処理として行われる着地は0番以降のステートの処理が終わり、velocityなどによる座標移動が終わったあとに行われるので着地をコメントアウト。 これらの処理は-3ステートにおいてtime=0が成立する数少ないchangestateになっているので、 ジャンプ移行などを完全に排除したいときは-3ステートの末尾でそれぞれのステート番号とtime=0をトリガーにして、 ctrlを有効にしつつニュートラル(一般的には0番ステート)に引き戻すようにすればよい。 ただし下手に条件を設定するとくらい抜けや空中で立つなどということになりかねないので、 トリガーは慎重に設定すること。 ちなみに常時監視ステート内でselfstateおよびchangestateが実行されると、 それ以降のそのステートにあるステートコントローラが全て無視される。 必殺技へのchangestateをcmdファイルの上のほうに記述しなければならないのはこれが理由なのだが、 内部処理用のステコンの前に置いてしまうと本来毎フレーム処理されるはずの処理がスキップされてしまうことにある。 場合によっては致命的な問題を引き起こすので、changestateはそれぞれのステートの末尾にまとめて並べるようにした方がよい。 上記したtime=0のchangestateをわざわざ末尾で実行するよう明記したのはそのためである。 なお実行されないのではなく完全に無視されてしまうので、nullと:=を用いた変数代入もスキップされる。 裏を返せば、type=nullとしてもトリガー自体は実行されているということである。 完全に処理を排除してしまいたければ、セミコロンを使ってコメントアウトしなければならない。 以下、AI製作者向け &nowiki(){-}3ステートで内部処理に加えてAIのchangestateが行われていることがあるが &nowiki(){-}3ステートではAIのchangestateを行わないほうがよい。 それどころか、AI関係のステコンはごく一部の例外を除き、全て-1ステートで処理した方がよかったりする。 というのも、たとえ同一フレームであっても、-2ステートの内部処理を経由することで キャラクターの状態が全く異なることがありうるからである。 オリコンやMAX発動の最後の1フレームなどがわかりやすい例で、 &nowiki(){-}3ステートの時点では最後の1フレームが残っている→ &nowiki(){-}2ステートでカウントが進み、オリコンorMAX状態解除→-1ステートの時点では解除済み、となる。 実際の対戦では両者の最後の1フレームは技の硬直中であったり 持続時間を十分残した状態で超必殺技を使って強制解除となることが大半でほとんど問題にならないのだが、 キャラクターのシステムによっては1フレームの差がきいてくることもある。 フレーム単位で自分のおかれている状況を判断しているAIならば、なおさら差が生まれやすい。 こうした問題があるので、-3ステートには「相手にステートを奪われているときは実行したくない内部処理」のみを置き、 &nowiki(){-}2ステートに「相手にステートを奪われているときも実行したい内部処理」 &nowiki(){-}1ステートに「-3、-2ステートの処理の結果を見て実行したい内部処理とchangestate」を記述するのが無難である。 ---- ***スケール関連 ****&bold(){飛び道具の倍率} CNSのSIZE内「xscale」、「yscale」を任意の数値に変更するとキャラクターの表示倍率が変化する。 ここでproj.doscaleが1になっていると、projectileのスケールも上記の倍率通りになる。 しかし、projectileの代わりにhelperを用いた飛び道具の場合は一括して変更することは出来ない。 CNS内を「type = helper」(=の前後の空白は有ったり無かったりなので気をつけること)で検索し >size.xscale = const(size.xscale) >size.yscale = const(size.yscale) スケールの値をこのように設定すれば本体の倍率が適用されるようになる。 ただしもともとスケールを変更してあるhelperの場合はまた別。 飛び道具の出現位置がずれる場合が多いので、その時は 「type = helper」、「type = projectile」で検索し、 直下の「pos」を倍率及び基準位置(postype)に従ってすべて変更。 さらにキャラ本体の移動速度や弾速もスケールにあわせ全て調整しなくてはならない。 本体およびhelper用の全てのステート内のVel系全命令、それともしもGravityが 使われているならConstのMovement>yaccelもチェックしよう。 projectileの場合「velocity」「remvelocity」がチェックの対象である。 大雑把でいいと割り切っているなら上記の作業全てをやる必要は無いが、きちんとしたものにしようとすると 作業量はかなり多いので気をつけよう。 作業に入る前に、変更前のキャラをどこかに保存しておこう。また、一時的に変更前のキャラと作業中のキャラを 両方登録しておき挙動を比べてみると良い。特に、もしそのキャラを動画に使用するつもりならば、 技の当たり具合やコンボの繋がりにおかしな影響が出ていないかのチェックには充分に念を入れよう。 //こんなとこでまでくどくど説教がましいこと書かなくてもいいんじゃないかな。 //いやー、書き方はともかくとしてお手軽な改造だと誤解させないようにある程度のことは書いておいた方がいいと思うのですよ。 なおWin版MUGENを使っているなら(多分使っているだろうが)次の節も参照しておいた方が良い。 //これをしないと一部のキャラサイズが大きいゲームのキャラは大型キャラにしかコンボが入らなかったり。 //例:GG、北斗他 //変更を推奨してるみたいにとれる文章はよしましょう。 ---- ****Size>scaleの問題点 キャラの倍率を自由に変更できるConst>Size>xscaleおよびyscaleだが、実はWin版MUGENでは yscaleを1以外にすると影や床の反射像の表示位置が狂うという問題がある。 (xscaleの方は1以外を使用しても特に問題は無い。) 解決方法は無いらしく、強いて言えばyscaleを1から変更しないことが対策である。 後からscaleなど使わずに済むように、なるべくSFF構築の時点で画像に拡大縮小をかけておくのが望ましい。 ……と言われても、いわゆるD4専用キャラでは無理な話だろうが、 正規のバージョンではない流出品の本体を正しくない設定で使用していることを考えればこの程度の問題はやむを得ないところだろう。 一応D4キャラのためには、constではなくAngleDrawを-2ステートから用いて常時縮小表示するという手があって、 このやり方ならば影が正しい位置に表示される。 キャラによっては投げ技などの最中にP2用のステイトでAngleDrawを使う場合もあるが、 その場合でもちゃんと双方のAngleDrawの効果が反映された表示になってくれる。 後からサイズを変更するのには向かないが、それをしないならばConstのxscale、yscaleを変更するよりも、 AngleDrawを使う方がより良い処理と言えそうだ。 ---- ***&bold(){NotHitByの仕様} //大幅に改稿 NotHitByを使いこなすには、以下の表の内容を頭に入れておく必要がある。 #region(attrの種類の一覧表) ここでattrそのものについての説明もしておくと、attrはAttribute(特性や属性などといった意味)の略である。 例えば立ち打撃通常技なら記述は「S,NA」などといった形となるが、 この時コンマの前側に記述する部分をarg1と呼び、後側の部分をarg2と呼ぶ。 attrには以下の27種類がある。 |>||打撃 (A)|投げ (T)|飛び道具 (P)| |立ち (S)|通常技 (N)|S,NA|S,NT|S,NP| |~|必殺技 (S)|S,SA|S,ST|S,SP| |~|超必殺技 (H)|S,HA|S,HT|S,HP| |しゃがみ (C)|通常技 (N)|C,NA|C,NT|C,NP| |~|必殺技 (S)|C,SA|C,ST|C,SP| |~|超必殺技 (H)|C,HA|C,HT|C,HP| |空中 (A)|通常技 (N)|A,NA|A,NT|A,NP| |~|必殺技 (S)|A,SA|A,ST|A,SP| |~|超必殺技 (H)|A,HA|A,HT|A,HP| #endregion NotHitByの記述は以下のようなもの。 >[State XX, XX] >type = NotHitBy >trigger1 = (任意のトリガー) >value = (任意のattr) このvalueにattrを書きこむことで、どの属性の攻撃判定に対して無敵なのかを指定するのだが、 この時の記述の形式はけっこう独特で分かりづらいため、しっかりと理解することが必要である。 「value =」の直後に記述するのはarg1要素と決まっていて、例えばこれを >value = S とすると、それだけで&bold(){立属性の判定}(StateTypeがSの状態でのHitDef全て)に対して無敵になる。 //NotHitByのValue=SCで、相手がStateType=Aの状態でAttr=S,HAのHitDefを出しても命中します。 //逆にNotHitByのValue=SCで、相手がStateType=Sの状態でAttr=A,HAのHitDefを出したら当たりません。 arg1要素を省きarg2要素だけ指定したい場合は「value =」の直後にコンマを打ってから記述を始める。 >value = ,NA このようにすれば&bold(){通常技で打撃属性の判定}(arg2がNAのattr全て)に対して無敵になる。 さらにNAの後にまたコンマを打てば他のarg2要素を書き加えていくことが出来る。 基本的に何か書き足せば足した分だけそのまま対称範囲が広がるので >value = S,NA,NP などとすると、全ての&bold(){立属性の判定}、&bold(){通常技で打撃属性の判定}、 &bold(){通常技の飛び道具属性の判定}に対して無敵になる。 なお、通常技、必殺技、超必殺技全てを対象にしたい場合は >value = ,NA,SA,HA と書く以外に >value = ,AA としても良い。通常N or S or Hが入るはずの部分にAを入れるわけだが、これはAllの略のAである。 上記のようにarg1、arg2の要素はそれぞれ独立しているのだが、 value = SCA,NT,ST,HTなどとしてしまっているケースが意外と多い (投げ無敵にするはずが、arg1がSCAになっているため完全無敵になってしまっている)。 もし気になるようなら、報告あるいは修正しておいてもいいだろう。 ちなみに投げ無敵にしたいときはarg1を省略し、value = ,ATまたはvalue = ,NT,ST,HTとすればよい。 キャラ作成をしていれば「立属性かつ打撃属性である攻撃に対してだけ無敵」という状態を作りたい場合なども あるかもしれないが、NotHitByの仕様上それは不可能である。 value = ,AA とarg2要素だけを指定しトリガーにP2StateType = Sを加えるなどすれば、 意図に近い状態を作れないでもないが、トリガー成立中にはあくまでも全ての打撃に対し無敵となっているため、 タッグモードや、相手がヘルパーを多用するキャラだった場合など、 P2のHitDef以外の攻撃がある状況ではどうしても安定した結果にならない。 #region(ちなみに) >value = SCA こう書いた場合と >value = ,AA,AT,AP こう書いた場合とでは、書き方は違っていても結果的にどっちも全ての攻撃に無敵という同じ状態になるが、 新バージョンMUGENではarg2要素を省略するとエラーを返されてしまうことに注意。 #endregion ---- ***&bold(){投げ技の最中にしてはいけないこと} 正確には投げ技だけでなく、HitdefでP2StateNoを指定する技と、 targetstateを使用する技全般である。これらをさしてステートを奪う、などと呼ばれる。 ステートを奪われていると、デバッグを起動したときに画面左下に表示されるキャラクター情報の文字が黄色になる。 このとき、技を仕掛けた側、仕掛けられた側双方にしてはいけないことがある。 まず技を仕掛けた方。 ****相手のVarを変更してはいけない 本当をいうとこれは豆知識だとかではない。なんでかと言うと公式のドキュメントに書いてあることだからである。 sctrls.rtfかsctrls.htmlを開いて「rude」という単語を検索すれば当該の箇所が見つかる(大体を意訳すると 「貴方のカスタムしたステートでP2を処理している間には使わないでください、P2の変数を上書きしてしまいます。 とても失礼です。」というような内容)。 ****Helper、Projectile、Explod等を発生させてはいけない こちらは別にドキュメントに書かれているわけではないが、理由は大体上と同じである。 HelperとProjectileはともかくExplodまで?と思うかもしれないが、 NumExplodというトリガーもあるので念の為に使用を避けた方が安全。 ****相手のPowerをトリガーにした記述を考え無しに使用してはならない これはPowerはそのキャラ固有のものではない(タッグパートナーやヘルパーも共有している)ためで、例えば 『徐々に相手のPowerを減少させていき、やがてある数値を下回ったらSelfStateでコントロールを返す』というような 技を作ると、場合によってはその技は延々終わらなくなってしまう。 ただしあくまでこれは考え無しに使うのが問題なので、&italic(){きちんと考えて使う分には問題はいくらでも避けられる。} ****技の演出中にtargetstateやtargetbindなどを使うときはくらい判定をつけてはいけない [[ワイヤーダメージ]]や特殊ダウン(ダウン追い討ちをかけるためのダウン)など、 かけられた側が一定時間後にselfstateを実行する場合はかまわないが、 投げ技などでは技をかけている最中に攻撃側が攻撃を受けて技のステートから抜けてしまうと、 技をかけられた側がそのステートから抜け出せなくなってしまうことがある。 また技をかけられた側のくらい判定を残したままにすると、攻撃をくらってステートから抜けた際に かけた側が何もない場所で投げモーションを取ったりと妙なことになる。 つぎに技を仕掛けられた方。 こちらはしてはいけないことが多いのでやや大雑把になるが一個一個を上げずにまとめて説明する。 ****勝手に状態を変えてはいけない 勝手に-2ステートでChangestateやSelfState等をするな、ということ。 当たり前に思えるが、原作で投げや当て身投げが通じないような特殊なキャラ([[これ>レオパルドン]]とか[[これ>オンスロート]]とか)で、 その再現のためかこれをやってしまっているキャラは案外いる。 しかし、投げを食らわないようにするのと、投げ成立後に相手の記述から勝手に抜けるのは別である。 最悪本体が落ちることもあるのでこれらのキャラと当て身投げ技を持つキャラの対戦時は注意がいる。 ****相手がトリガーにしそうなものは全て変更してはいけない 例えばVelSet、VelAdd、PosSet、PosAdd、LifeSet、LifeAdd、ChangeAnim…etcである。 これらを変更する記述を-2ステート内に持っているキャラは、-3に記述の場所を移した方が良いだろう。 ちなみにこれらを意図的にやって、相手の投げ技などを正常に機能しなくさせているのが[[神キャラ]]らの[[即死攻撃]]対策である。 特にselfstateで投げなどから抜ける行動はステート抜けと呼ばれ、 [[GUILTY GEAR]]のサイクバーストのようなくらい抜けとは明確に区別されており、 後者はコモンステートで定義された共通くらいステートでのみ使用可能になっている。 裏を返せばステートを奪われるとこれらのシステムが使用できなくなってしまうため、 むやみやたらとステートを奪うのは考え物である。 もっとも、技の性質上こういったシステムを使用させたくないときに、わざとステートを奪うケースもあるのだが。 ****commandトリガーを使ってはいけない ステートを奪った側で実行されたコマンドに対応するコマンド(コマンドの内容ではなく、cmdファイルに記述されている順番が同じコマンド)が、 なぜかステートを奪われた側でも実行されるという仕様が存在する。 そのためcommand以外の条件が甘いステコンを-2ステートに記述すると、 投げ技や当身を受けたときに暴発してしまう可能性がある。 またhelperは本体とは独立して処理を行っているので、 helper側のroot,commandトリガーが反応してしまいステコンの暴発につながることもありうる。 ****stateno=○というトリガーを使ってはいけない stateno!=○というトリガーであれば問題は起こりにくいが、相手がtargetstateなどで指定したstatenoの番号と、 &nowiki(){-}2ステートやhelperに記述されたstatenoトリガーの番号が重なってしまった場合、何が起こるかわからない。 例えば本体のステートを参照してhelperからexplodなどを射出している場合、 本体が投げられた途端にエフェクトが表示されるなどということがある。 それだけならまだいいが、varsetなどが実行されていると非常に危険。 &nowiki(){-}2ステートにあるものついては、statenoトリガーを使うのではなく、 ステートコントローラごとそれぞれのステートに移した方がよい。 また、stateno!=○というトリガーであっても、statenoが重なってしまった時の対応を考えておく必要がある。 commandトリガーと同様、helperでroot,statenoやparent,statenoトリガーを使用している時も注意しなければならない。 これらはトリガーの条件を厳密にすることで対応が可能。 ステートを奪われているときはmovetypeがHとなっていることが多いので、 movetype!=H、またはroot,movetype!=Hを加えることでほとんどの暴発を防止できる。 ---- ***&bold(){p2statenoおよびtargetstateをかけた攻撃の仕様について} ****p2stateno 相手に攻撃がヒットしたフレームでステートが変更されるため、 デバッグのコマ送りで5000番台のステートに飛んでいるのは確認できない(prevstatenoでは確認可能)。 hitdefのattrが相手がhitoverrideで指定しているattrと重複した場合強制的にスカり、 ヒット判定やガード判定、エフェクトは一切出ない。 そのため、一見すると無敵状態になっているように見える。 hitonceが無効になっている攻撃で複数の相手を同一フレームで巻き込み、 一方が直撃、一方がガードした場合、直撃した方のみp2statenoで指定したステートに飛び、 両方とも直撃していれば、両方が飛ぶ。 p1statenoがある場合、1体でも直撃していれば指定したステートに飛び、 全てガードされていれば飛ばない。 hitonceが有効になっている攻撃で複数の相手を巻き込んだ場合、 ランダムでどちらか一方のみp2statenoで指定した飛ばす。 また、自分はp1statenoで指定していたステートに飛ぶ。 なおhitonceを明記しなかった場合、attrが投げ以外なら無効、投げなら有効になる。 p2statenoを仕込んだ攻撃と相手の攻撃が相打ちになった場合、 p1statenoに関係なく食らいステートに飛ばされるが、p2statenoだけは実行される。 selfstateで強引に戻すにしても自分以外のステートをトリガーにせざるを得ないため、 タッグできちんと動作する保障はない。 そのためp2statenoを仕込んだ攻撃のpriorityはmissにしておいた方が無難。 p2statenoを仕込んだ攻撃と仕込んでいない攻撃が同じフレームで相手に当たった場合 (以下便宜のため、p2statenoを仕込んだ攻撃を投げ、仕込んでいない攻撃を打撃と呼ぶ) idの若い方が投げを実行していた場合、 攻撃を受けた側は投げで指定されたステートに飛ばされ攻撃側もp1statenoで指定されたステートに飛ぶが、 同時に打撃によるダメージも入る。 また、targetは投げを使ったキャラクターのみ保持され、 打撃を当てたキャラクターのtargetは無効となる。 idの若い方が打撃を実行していた場合、 1Fだけ投げで指定されたステートに飛ばされるが、その次のフレームで打撃によるダメージを受けて 5050番ステートに飛ばされ、その場でダウンする。 ****targetstate 投げ技などの過程でtargetstateを使用する場合もあるが、 ここではロック技やワイヤーダメージなどを想定し、 numtarget&&movehitをトリガーにしてignorehitpauseを有効にして作動するものとする。 targetstateはキャラクターの個別処理なので、最速でもヒット判定が出た次のフレームで、 常時監視ステートが実行できる状態にならないと作動させられない。 一方hitoverrideによるステート変更はmugenの内部処理にあたり、 ヒット判定が出た次のフレームの冒頭で実行されるので、 相手がhitoverrideでmovetypeがH以外に指定されているステートに飛ぶと targetが無効になり、作動しなくなる。 targetstateを仕込んだ攻撃で複数の相手を同一フレームで巻き込み、 一方が直撃、一方がガードした場合、ガードした方の相手もtargetstateで指定したステートに飛ぶ。 これはガードされたときもtargetは有効であり、movehitとmoveguardedが同一フレームで成立すると movehitだけが有効になるためで、targetstateのトリガーだけで完璧に回避することはできない。 また、p2statenoのhitonceのように相手を1体に限定することも不可能。 一応、targetstateで飛んだ先でgethitvar(guarded)などをトリガーにしてselfstateで戻すことは可能。 このとき戻すステートは120、130~132番ステートが妥当だが、 技の演出の関係上、どうやっても見た目が不自然になってしまうこともある。 また攻撃側の挙動が安定しないケースもあるので、 タッグ限定のバグであることから、実際には特に対処されていないことがほとんど。 targetstateを仕込んだ攻撃と相手の攻撃が相打ちになった場合、 食らいステートに飛ばされるためtargetstateが実行されることはない。 そのため、hitdefのpriorityをhitにしても基本的に問題はない。 ただし常時監視ステートにtargetstateを置く場合は 相打ちしたときに誤作動することがあるので、movetype!=Hなどが必要になる。 targetstateを仕込んだ攻撃と仕込んでいない攻撃が同じフレームで相手に当たった場合 targetstate自体はidを問わず問題なく作動し、同時にchangestateを作動させても問題ない。 またtargetはtargetstateをかけた側のみ有効になる。 逆にtargetstateが乗っていない攻撃は、攻撃が重なったフレームに関しては 相手のくらい判定や無敵状態に関係なく強制的にスカる。 ---- ***&bold(){技が途中で止まるorいつまで経っても止まらないorキャンセルの猶予が異常に短い} [[真田小次郎]](ホタリュソ氏)の『無明剣・贄』、[[ジャック・ターナー]](Andre Lopes氏)の『ストライカーテムジン』、[[グラント]](M.M.R氏)の『魔神円月輪』などで起こる現象。 最後1つは少し毛色が違うが、原因は同じだったりする。 これはMUGENの、DOS版とWIN版の仕様の違いによるもので、簡単に修正する事が出来る。 下記の左側の記述を右側のように変更すれば良い。 movecontact = 1 ⇒ movecontact movecontact = 0 ⇒ !movecontact movehit = 1   ⇒ movehit movehit = 0   ⇒ !movehit moveguarded = 1 ⇒ moveguarded moveguarded = 0 ⇒ !moveguarded 置換機能のあるテキストエディタを使えば楽、と言うか使わないとかなり面倒なので、おとなしく使おう。 ちなみにこの項の内容は無限小学校のMUGEN説明書にも載っているのだが、意外と気付いていない人も多いのではないだろうか。 『何かおかしいな?』と思ったらまず試してみるのをお勧めする。 ---- ***&bold(){立ち・しゃがみニュートラルで出せる技とstatetypeトリガー} ctrlが有効なときにキー入力により起こる立ち・しゃがみへのchangestateは常時監視ステートの前に処理される。 しかしchangestateが起こった時点でstatenoは変化するが、 実際にstatetypeやphysicsが変化するのは常時監視ステートの処理が終わった後なので、 常時監視ステートでstatetype=Cが成立するのは、 ニュートラル状態でcommand="down"が成立したフレーム(キーの↓を押したフレームと考えていい。 このとき同時にcommand="holdown"も成立する)ではなく、その次のフレームになる。 このため、kfmのようにstatetype=Cがしゃがみ通常技のトリガーに入っている場合、 ↓キーとボタンを同時押しするとしゃがみ通常技が出ない。 また立ちへの移行でも同様の現象が原因で、しゃがみニュートラル状態から ↓キーを離すと同時にボタンを押しても立ち通常技が出せない。 わずか1Fではあるが、立ち通常技>しゃがみ通常技、 またはしゃがみ通常技>立ち通常技の[[目押し]]が重要となるキャラでは致命的。 特に猶予0Fの目押しは、絶対につながらなくなってしまう。 技の条件に入っているstatetype=Sやstatetype=Cを全てstatetype!=Aに書き換えれば、この問題は解決される。 なお立ちガードとしゃがみガードの切り替えに関しては、ガードステート内に立ち、しゃがみの切り替え記述があり、 ガードの正否判定がキャラクターの処理が全て終わった後に行われるので問題ない。 ちなみにキー入力によるジャンプ移行でもctrlが無効化されるのは常時監視ステートの処理が終わった後なので、 ニュートラルからキー↑要素を入れた1F目では、stateno=40&&ctrlが成立する。 この仕様があるので、[[サマーソルトキック]]のようなキー↑要素のある技のトリガーにはstateno=40を加えなくても一応出せるのだが、 出しにくいことにはかわりがないので、stateno=40でも出せるようにしておいた方がいいだろう。 ---- ***&bold(){AIパッチを当てる際の小技} 単にパッチファイルを丸ごと上書きする前に少し手を加えてやると 1キャラ分の容量で複数のAIを使い分けることができ、またバックアップや整理も容易になる。 +キャラフォルダ内に新規フォルダを作る。フォルダ名はAIの製作者名などにしておくと整理する際に分かりやすい。 +そのフォルダにAIパッチの中身を全て入れる。 +AIパッチの中に新しいdefファイルがあればそれを、なければ元キャラのdefファイルをコピーし、元キャラのdefと同じ場所に置く。&br()ファイル名は先ほど作ったフォルダ名と同じにしておくと良い。 +コピーしたdefファイルを開き、AIパッチの内容に基づいて記述を変更する。&br()(例) 新しいchara.cmdとchara.cnsファイルが「AI」フォルダに入っている場合&br()chara.cmd → AI/chara.cmd&br()chara.cns → AI/chara.cns&br()に全て変更 +このdefファイルをMUGENのdataフォルダ、もしくは使用アドオン内のselect.defに登録する。 なお最初からこの形式で製作されてるAI製作者もいるので、その際はこの手順を踏む必要はない。 select.defを参照すればどれが誰のAIなのか一目瞭然なので、後々非常に便利。 ただし新しく作ったdefファイルの記述が間違っていてもエラーが出ないことが多いので、確認はしっかり。 何か動きがおかしいなと思ったらここをチェックしてみよう。 ---- ***チーム戦(Turns)で2番手以降のキャラのイントロを発生させる方法 最初から対応しているキャラもいるが、MUGENのデフォルト設定では発生しないようになっている。 そこでまずMUGENのdataフォルダ内のcommon1.cnsを開き、一番下にある [State 5900, 3] ;Intro for round 1 の記述を >[State 5900, 3] ;Intro for round 1 >type = ChangeState >value = 190 >trigger1 = RoundNo = 1 >trigger2 = RoundsExisted = 0 >trigger2 = TeamMode = Turns >trigger2 = RoundNo > 0 に書き換えてやる。 //これ、trigger1 = RoundsExisted = 0 だけで代用できませんか? これで備え付けのcommonを使っているキャラはOKだが、 独自にcommonファイルを持っているキャラやcns内にvar持ち越し、イントロの設定などが含まれているキャラの場合 それぞれ [State 5900, 3] に相当する記述を探し出して同じように書き換える必要がある。 この場合&b(){間違った場所に上書きしたりすると最悪そのキャラが動かなくなるので、バックアップを忘れずに。} 場所はキャラによってまちまちだが、片っ端からファイルを開いて 「5900」 などで検索をかけていけば大抵は見つかる。 稀に [State 5900] 以外に記述しているキャラもいるので、どうしても見つからなければ検索ワードを 「190」 などに変えてみよう。 2箇所に記述があることもあり、その場合は優先順位の高い方を修正しないと反映されないので注意。 イントロがあるかないかで動画の見栄えもかなり変わってくるので、チーム戦の動画を作る際にはこの作業をやっておくと良いだろう。 ただしこの記述は単にそのキャラが登場したラウンドのみイントロに移行するというものなので、 KOFのような特定の対戦カードになったときの[[掛け合い>特殊イントロ]]が成立しない。 >trigger3 = TeamMode = Turns >trigger3 = P2Name = "kfm" || P2Name = "ryu" || P2Name = "kyo" ;(以下略) という具合に書き加えて対応キャラを個別に登録していけば可能だが、これをいちいちやっていくのは凄まじく骨が折れる。 一応毎試合無条件で両者のイントロを発生させるようにすれば一括で成立するので、 それでもいいから掛け合いが欲しいという人は上の記述5行目行頭に「;」(半角セミコロン)を挿入しよう。 // //また別の方法としてはイントロ分岐用のステートを別に準備した上で5900ステートからへは毎ラウンドそのステートへ飛ばすようにし、 //特殊イントロがあるなら特殊イントロへ、特殊イントロがなくて最初のラウンドなら汎用イントロへ、 //どちらでもないなら立ちステートへ飛ばすように分岐をかければ、これらの問題はすべて解決する。 // //↑この方法だと、シングル戦で特殊イントロがあると全ラウンドで特殊イントロを始めます。 //個別対応すればいいのですが、「個別対応が面倒だから一括対応」という話ではなくなるので……。 ---- ***勝利ポーズ表示時間を変更する方法 [[独眼ちゃん]]やアリ氏の[[斬紅郎>壬無月斬紅郎]](2008年5月以前版)などで、 &bold(){勝利ポーズの途中で画面が切り替わってしまう}現象が時折見られる。 逆に、キャラによっては勝利ポーズが終わったのにいつまでも切り替わらないこともある。 斬紅郎の「無限流こそ海内無双の剣技よ」という台詞の「海内」の辺りで画面が切り替わってしまう現象に[[空耳]]も合わさって、 一部では『&bold(){無限流こそ曖昧現象}』と呼ばれることもある。 それを解決するには、勝利ポーズのステートから >[State 181, 1] >type = AssertSpecial >Trigger1 = Time = [0,200] >flag = RoundNotOver というような記述を探し、無い場合は付け加える。 もちろん勝利ポーズによって掛かる時間は違うため、&bold(){Time = [0,200]}の部分はそれに合わせて書き替える必要があるが、 そこは実際にMUGEN上で動かして調整すればいいだろう。 また[[ライフバー]]側の設定がまずい場合も似たような現象が起こる。代表的なのはVF5LBだろう。 fight.defの中のover.timeの数値を250ぐらいに変更すれば解決するはずだ。 ---- ***常時ステートの専用記述で対応する攻撃一覧 毒などの特殊な技は、攻撃側の記述だけでは再現しにくいことがある。 そのため相手側の常時ステートに専用の記述を組み込む必要があるが、 もちろん全てのキャラがその種の技全てに対応しているわけではない。 キャラや動画を製作する時は、こういった点にも留意するべきだろう。 |~製作者名|~キャラクター名|~対応する攻撃|~備考| |ドロウィン氏|[[廿楽冴姫]]|アンプゾワネ&br()アバトワール|| |~|[[朱鷺宮神依]]|~|~| |~|[[フィオナ・メイフィールド]]|~|~| |SAIKEI氏|[[ユダ]]|イチコロ|| |ゆ~とはる氏|[[マミヤ]]|バイク|七星ゲージのあるキャラ限定| |~|マミヤ|[[挑発]]|| |~|[[愛原奈都美]]|~|| |~|[[アル・アジフ]]|~|| |586氏|[[神尾観鈴]]|不幸の塊&br()観鈴ちんピンチ!|| |HAL氏|[[遠野秋葉]]|獣を焦がす&br()疾駆する獣を焦がす|| |⑨氏|[[赤朱秋葉>遠野秋葉]]|~|| |~|[[翡翠]]|じょうろ|MBAA仕様| |~|[[琥珀]]|現代医学の犠牲者です|MBAA仕様| |~|[[レン]]|パウダースノウ|MBAA仕様| |~|[[ワラキアの夜]]|ブラック・クラック|MBAA仕様| |祇園城奏貴氏|[[西行寺幽々子]]|霊符「无寿の夢」&br()寿命「无寿国への約束手形」|| |水影氏|[[伊吹萃香]]|酔符「鬼縛りの術」&br()酔夢「施餓鬼縛りの術」|霊力ゲージのあるキャラ限定| |~|[[小野塚小町]]|脱魂の儀|| |~|[[鈴仙・優曇華院・イナバ]]|毒煙幕「瓦斯織物の玉」|| |~|[[洩矢諏訪子]]|土着神の祟り&br()ミシャグジさまの祟り|| |IF氏|[[永峰希美]]|ウィッシュプライヤー|| 具体的な対応方法や記述の内容は、各々の付属txtなどを参照のこと。 ---- ***MUGENデバッグキーの一覧 大会・ストーリー動画の作成や、キャラ・AIの作成などあらゆる場面で知っていると便利なMUGENショートカットキーの一覧を掲載。 |[[F1]]|2P側のライフを0に| |CTRL+F1|1P側のライフを0に| |F2|両側のライフを1に| |CTRL+F2|1P側のライフを1に| |SHIFT+F2|2P側のライフを1に| |F3|両側のパワーをMAXに。[[ゲジマユ]]でお馴染み| |F4|ラウンドリセット| |SHIFT+F4|データのリロード(mugen起動中にcnsを更新して、そのまま更新データを読み込ませる事も可能)| |F5|タイムオーバー| |F12|スクリーンショット| |CTRL+C|判定枠の表示の切り替え| |CTRL+D|デバッグデータ表示の切り替え| |CTRL+I|両側のプレイヤーを強制ニュートラルステート(StateNo=0)に(はまり状態の回避に使える)| |CTRL+L|アドオンのライフ、パワーバー等を消去(キャラ固有のパワーバーは消せない)、用途はキャラ作成時に見やすくすることなど| |CTRL+S|ゲームスピードアップ(デバッグのFPSとSPEEDで確認可能)| |CTRL+数字|数字には1~4の数値が入る。指定した数値のキャラをAIモードに(1なら1P、2なら2P)| |CTRL+ALT+数字|キャラの消去。もう一度押すと元に戻る| |SPACE|両側のライフとパワーをMAXに、時間もリセット| |PAUSE|ポーズ画面の表示、トレーニングモードならサンドバッグの状態の指定も可能| |SCROLLLOCK|PAUSE中にSCROLLLOCKを押すたびに1Fだけ時間を進める、製作中キャラの動きの確認等で使える。| |ESC|mugenの終了や画面を戻すのに使用| ---- ***batで色々 [(mugen名) -r (アドオン名) -p2.ai 1]とやるとアドオン実行&2pAIonの効果 |-r|アドオン| |-p2.ai|1で2pのAIon。-p1.ai 0ならwatchモードで1pが操作可能に。| |-p2.color|カラー指定。12P色を選ぶ時とかに| |-s|ステージを指定。select.defに登録する時の「stages/aaaaa.def」という書式ではなく「aaaaa」で記載| ---- ***起き上がり短縮 common1.cnsでは、自分が操作しているキャラクターがダウンした時(StateNo5100、5101、5110の時)、 ボタン(FBUDabcxyzsどれでもOK)を連打するとダウン時間を短縮出来る様になっている。 連打の速さによってはダウン直後に起き上がれる場合があるので、ダウン追い討ちを免れる事が出来る。 逆に自分が製作したキャラにダウン追い討ちをさせたい場合、相手の連打に注意しよう。 ---- ***&bold(){Helpermaxについて} 一部のキャラクターは、製作者が付属のテキストで「Mugen.cfgのHelermaxを56に書き換えてください」と指示していることがあるが、 実はこの修正、ニコニコで目にするようなキャラクターをWin版Mugenで動かす際の必須事項と言ってもいい。 Helperが大量に発生するのは何も[[弾幕]]を張ったときだけではなく、 演出やエフェクトにも使用されており、GM氏の3rd仕様[[リュウ]]がダウン時に10個以上の視覚的に見えないHelperを管理していたりと、 意外なキャラクターがそこそこの数のHelperを発生させている。 Helperの個数がHelpermaxに到達してしまうと、[[飛び道具]]が出ないぐらいならまだいい方で、 ロック技の判定にHelperが使用されていると試合が続行不能になることもある。 こうした事故を未然に防ぐために、面倒くさがらずにWin版MUGENの上限値である56に設定しておこう。 また、Helperを使ったキャラを製作する時は、2対2の試合の時でもHelpermaxを超えない様に、 一度に使用するHelperは14個までにしておくのが望ましい。 ([[弾幕]]キャラの場合そうはいかない事もあるが) ---- #include_cache(MUGEN豆知識/2)

表示オプション

横に並べて表示:
変化行の前後のみ表示: