ACMD解説

「ACMD解説」の編集履歴(バックアップ)一覧はこちら

ACMD解説 - (2018/03/03 (土) 02:07:05) の1つ前との変更点

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

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

#contents(,fromhere=true) ---- 数値は16進数または10進数で表記されている。 技スクリプトは↓。 -[[http://rubendal.github.io/Sm4sh-Calculator/scripts.html]] -[[技解析値(DLリンク)>>http://ux.getuploader.com/ssb4_kensyou/download/16/116_latest.zip]] ---- **Hitbox読み取り(掴み、投げ以外) 普通のHitboxはパラメータが24番までしかない。 Special_Hitboxとして設定されている攻撃判定には25番以降のパラメータがある。 またExtended_Hitboxとして設定されている攻撃判定は、攻撃判定引き伸ばし(stretch)のパラメータがある。 [[スマブラまとめWIKI_攻撃判定>>http://ssbwiki.e3.valueserver.jp/wiki/index.php/%E5%88%A4%E5%AE%9A#.E6.94.BB.E6.92.83.E5.88.A4.E5.AE.9A]]も参考になる。 ***早見表 |~No.|~進数|~名称|~効果| |1|16|ID|IDが若い方が優先してヒット| |2|16|Part(GID)|異なるもの同士はそれぞれ判定を持つ| |3|16|Born|攻撃部位| |4|10|Damage|ダメージ| |5|16|Angle|ベクトル。詳細は[[スマブラまとめwiki ベクトル>http://ssbwiki.e3.valueserver.jp/wiki/index.php/%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB]]| |6|16|KBG|リアクション影響値| |7|16|FKB|リアクション固定値| |8|16|WBKB|リアクション付加値| |9|10|Hitbox Size|攻撃判定球の半径| |10|10|Offset X|Bornに対する判定の位置| |11|10|Offset Y|~| |12|10|Offset Z|~| |13|16|Element|属性| |14|10|Trip|転倒確率| |15|10|Hitlag|ヒットストップ倍率| |16|10|SDI|ずらし距離倍率| |17|16|Clang|相殺の有無| |18|16|Rebound|相殺モーションの有無| |19|16|Shield Damage|シールド削り値| |20|16|SFX Level|効果音の大きさ| |21|16|SFX Type|効果音の種類| |22|16|Ground/Air|対地・対空判定| |23|16|Direct/Indirect|直接・間接| |24|16|Type|種類| |25|16|Action|0x3fから0x1まで多種確認| |26|16|???|0x0と0x1を確認、キャラクターの向きでOn/Off?| |27|16|???|常に0xf| |28|16|???|常に0x0| |29|16|Blockability|ガード可/不可| |30|16|Reflectability|反射可/不可| |31|16|Absorbability|吸収可/不可| |32|16|Rehit Rate|再ヒット間隔| |33|16|IgnoreInvuln|常に0x0| |34|16|Unknown|常に0x0| |35|16|Facing Restriction|対象の吹っ飛び向きを指定| |36|16|Grippy|0x0と0x1を確認、Facing Restriction関連?| |37|16|Team Damage|チームアタックOff下でのチームメイト攻撃可/不可| |38|16|Hitlag Disable|ヒットストップの消去ON/OFF| |39|16|NoGFX|カウンター反応有無? 水・風判定では0x1| |40|16|Flinchless|やられ硬直の消去ON/OFF。水・風判定で0x1| |41|10|Stretchy Z|Z方向範囲引き伸ばし| |42|10|Stretchy Y|Y方向範囲引き伸ばし| |43|10|Stretchy X|X方向範囲引き伸ばし| #table_zebra(t1, #ddd, #fff, #3f6) ***ID・Part 1つの技が複数のHitboxを持っていて、相手がそれらに同時に触れた場合、IDが一番若いもののみがヒットしそれ以外は無視される。例えばマルスの剣先部分はID番号が大きいため、根元と剣先が同時に当たった場合は根元判定がヒットする。 ただし、それぞれのHitboxのPartの値が異なる場合は、同時に触れた場合でも全てのHitboxが有効になる。(ほとんどのHitboxはPart=0であり、このような技はとても少ない) 異なるPartが使われている攻撃の一つであるクッパ空Nを例にとって説明する。 この技は「右手→左手→右足・左足」と順次攻撃判定が追加されていき(途中で消去されない)、各手足が全て異なるID・Partを持つ。したがって、攻撃の持続中に右手・左手の判定に同時に触れれば、その両方がヒットする。ちなみにこのときコンボカウンターでは「12%x1ヒット」という表示になる。無論、右手→左手と時間差で触れた時は、両方が時間差でヒットする(仮に同Partなら、右手に当たった時点で以降の左手の攻撃判定は当たらなくなる)。 ***Ground/Air -0x1:地上の相手にのみヒット -0x2:空中の相手にのみヒット -0x3:地上・空中問わずヒット(ほとんどの攻撃) また、この値が0x800000001,0x80000003の技はダウン中の相手に当たらないという特性がある。 -0x800000001 --ゲッコウガかげうち --ディディーDA1段目 --メカクッパ(移動中) --ゼロサムフリップ踏みつけ判定 --フィットレ弱3埋め判定 -0x800000003 --カービィ、デデデすいこみ ***Facing Restriction |値|攻撃を受けたキャラの向き|使われている技|備考|h |0|攻撃者がいる方向|ロボ下スマ、カムイ空Nなど多数|設定されていない技は0扱い| |1|攻撃者の向きと逆|飛び道具|3との違いは不明| |2|変わらない|トゥーンNB2炎部分&br()フィットレ下強風圧|| |3|攻撃者の向きと逆|多くの攻撃|| |4|攻撃者の向きと同じ|多くの空後|| |5|攻撃判定の中心方向|天空(剣上昇中のみ)|| |6|攻撃者の向きと同じ※|バックスラッシュ|ガードノックバックが通常と逆。&br()専用の吹っ飛びモーションがある| |7|左向き|なし|| |8|右向き|~|| |9~|正面|~|| #table_zebra(facing, #ddd, #fff, #3f6) ***Element |~HEX|~属性名|~該当技、キャラの例| |0|打撃|| |1|無|| |2|斬撃|| |3|電撃|| |4|氷結|ジャッジ8、カービィNB2、ギガクッパ下スマ、PKフリーズなど| |5|火炎|| |6|コイン|マリオ上B、ルイージ上B| |7|反転|マント/シーツ、剣術Mii下B2、オリマーNB3、プリン上B3、ゼルダNB2| |8|転倒|むらびと下B2、クッパ下B3、ワリオNB3遠距離| |9|睡眠|ピーチNB2、ピーチ最後の切り札、キレイハナ、トゲピー、ダークライ| |a|未使用|| |b|埋め弱|(薄い台には効果なし)| |c|ふらふら|ワリオNB3近距離| |d|未使用|| |e|花|ピーチ横B2、ワリオ下B2、ねむる、むらびと| |f|未使用|| |10|即死|フィールドスマッシュのみ| |11|草|X時代のフシギソウ、今作では使われていない| |12|水|消火栓水部分、カムイ、マリオ、むらびと、ゲッコウガ| |13|暗黒|ガノン、ギガクッパ、ルフレ、白ピクミン、ミュウツー| |14|麻痺|ゼロサム、カムイ、ファルコン下B3、ガノン・リンクなど最後の切り札| |15|波導|ルカリオ| |16|埋め2|おとしあなのタネ| |17|ダウン|X時代のスネーク下投げ、今作では使われていない| |18|付着|クラッシュボム、射撃Mii横B2| |19|刺突|シーク横スマ、マルキナ上スマ、カムイ槍など| |1a|魔法|ピーチ上B、ネス空前、ロゼッタ横スマなど| |1b|Flinchless1|フォックス上投げブラスター部分| |1c|Flinchless2|フォックス下投げブラスター部分| |1d|太陽|太陽礼拝| |1e|崩れ|セビ| |1f|かなしばり|ミュウツー下B、ミュウツー最後の切り札1%部| |20|突き刺し|カムイ横B| |21|即死2|| |22|未使用|| |23|不明|| |24|バレットアーツ|バレットアーツ| |25|不明|ダックハントNB、シーク/ゼルダ/ブラピ最後の切り札| #table_zebra(t2, #ddd, #fff, #3f6) ---- **その他のスクリプト ****Asynchronous_Timer、Synchronous_Timer 指令が有効になるフレームの記述。 Asynchronous_Timerは技の何F目に有効になるか、 Synchronous_Timerは直前の指令から何F後に有効になるかを記述する。 例: Asynchronous_Timer(Frames=28) Hitbox(省略) Synchronous_Timer(Frames=1) Remove_All_Hitboxes() この例では28F目にHitboxが有効になり、29F目にHitboxが消える(持続は1F)。 ****Set_Frame_Duration スクリプトおよびアニメーションの進行時間をa倍する。 要するに早送りorスロー再生のコマンドである。 発生高速化・後隙減少のアップデートや、Xのモーションを流用&調整するために使われる。 #region(close,クリックで詳細解説) FDはFrame Duration の略。 以下では「Frame」をスクリプト上の時間としてゲーム内のフレームと区別する。 &big(){<基本仕様>} FD効果中は、Timerが実時間の1Fにつき"1/FD"カウントずつ進んでいく。 通常はFD=1で、1FにつきTimerが1進む。 ゲームでは、Timerの小数点以下を''切り捨てた''Frameのコマンドおよびアニメーションが1F毎に読み込まれる。 FD<1の場合(早送り)、ゲーム内ではスキップされるFrameが出てくる。 スキップされたフレームがHitboxの持続中だった場合、その分持続は短くなる。 ただし新しいコマンドはそのFrameが飛ばされた場合でも読み込まれ、次のフレームから適用される。 例1: Asynchronous_Timer(Frames=3) Set_Frame_Duration(Speed=0.8) ~省略~ #image(FD08.png) この例ではFrame7, 12がスキップされている。 FDの影響が画面に現れるのは、''Set_FDが起動した次のフレームから''である。 FDはフレームが進行するときに適用されるため当然と言えばそうなのだが、 攻撃のコマンドが起動したそのフレームに発動するのとは少し勝手が違うので注意。 例2: Asynchronous_Timer(Frames=3) Set_Frame_Duration(Speed=2) ~省略~ Asynchronous_Timer(Frames=5) Set_Frame_Duration(Speed=1) #image(FD2.png) Frame3のFD=2により、以降の''進行時間''が2倍に引き延ばされ動作が遅くなる( ''アニメーション速度は0.5倍'')。 この場合FDは3F目から4F目に移る際に初めて適用されるので、影響が見えるのは4Fからとなる。 同様にして、Frame5→6ではFDは1に戻るので、8F目からは等速のアニメーションとなる。 &big(){<仕様1>} FDが途中で変化する場合、Timerの値はそのまま引き継ぐ。 Timerは1フレームごとにしか更新されないので、新しいFDが適用されるフレームまでは前のFDで計算する。 例3: Asynchronous_Timer(Frames=1) Set_Frame_Duration(Speed=0.8) ~省略~ Asynchronous_Timer(Frames=7) Set_Frame_Duration(Speed=1.2) #image(FDchange.png) 例えば8F目のTimerは、  1×1F + 1.25×5F + 0.8333×2F = 8.9167 と計算される。 例3ではingameの5-6Fの間に「Frame7:FD=1.2」を通過するが、5-6Fの間までは前のFD=0.8が有効であり、6F目のTimerは7.25となる。 &big(){<仕様2-1>} ''スクリプトの先頭(Frame0)に整数でないSet_FD''が設定されると、ゲーム内の''1F目はコマンドを全く読み込まなくなる。'' また、0→1F目に限り''Timerの加算も行われない''。 アニメーションはFDの数値によらずFrame1のものになる。 ※Timerについては事実に沿った解釈であり、実際の内部処理は不明。 例4: Set_Frame_Duration(Speed=0.8) ← Frame=0 Asynchronous_Timer(Frames=16) Hitbox(省略) Asynchronous_Timer(Frames=21) Remove_All_Hitboxes() #image(IkeFair.png) アイクの空前のスクリプト。 1F目は「空白の時間」であり、2F目からTimerの加算が始まる。 また、Frame15,19がスキップされて持続が2F短くなっているのも確認できる。 スクリプト上は14-20Fの計7Fがactiveだが、FDが適用されると12-16F、持続は5Fになる。 &big(){<仕様2-2>} ''スクリプトの先頭(Frame0)に1より大きいSet_FD''が設定されると、最初のTimer更新は「''1以上になるまで(1/FD)を足し続ける''」。 例5: Set_Frame_Duration(Speed=2.5) ← Frame=0 #image(FD25.png) (1/FD)=0.4なので、Timerは「0.4 0.8 1.2 1.6 …」と増えていくはず。しかし0.4と0.8は1より小さいため飛ばされ、最初のTimerの値は1.2になる。以降は0.4ずつ加算される。 このケースではFDが整数でないので、1F目が空白の時間になっている。 FDが整数の場合は1F目からTimerが更新される。 &big(){仕様3} FDで延長・短縮されるのはゲーム内の全体モーションFである。 技の全体Fには影響を与えない。 技の全体Fはfighter_param.binにコーディングされていて、実はアニメーションとは全く関係がない。 例6: Generate_Article(ID=0x4) Set_Anchored_Article_Action() Asynchronous_Timer(Frames=12) Extended_Grab_Collision() Asynchronous_Timer(Frames=14) Grab_Collision() Asynchronous_Timer(Frames=20) Terminate_Grab_Collisions() ''Set_Frame_Duration(Speed=0.55)'' Asynchronous_Timer(Frames=69) Remove_Article() Script_End() リュカのその場つかみのスクリプト。 「Set_FD=0.55」の行はつかみの後隙が短くなったアップデートで追記された。 これは短くなった全体Fに合わせてアニメーションを早送りするためだけに書かれたコマンドである。 同じような変更がクッパjr.の横スマなどにも見られるが、あちらはついでに最終段の発生が早くなっていたりする。 &big(){検証方法メモ} Asynchronous_Timer(Frames=1) Remove_All_Hitboxes() Hitbox(dmg=1) Asynchronous_Timer(Frames=2) Remove_All_Hitboxes() Hitbox(dmg=2) という風に、Frameが切り替わるたびにダメージの異なる新しいHitboxを生成し、キャプチャ&コマ送りしながら当たったコマンドをメモする。短時間で多量のダメージを与えるとフリーズするので、ダメージ設定を工夫すべし。 #endregion ****重量固定フラグ -Unk_853CD75E(Unk=0x1) -Set_Weight(Flag=0x1) など。0x1に設定されていると、相手の重量を100として吹っ飛ばし力を計算する。 ベヨネッタの横B・上Bなどに登場。 ****全体/部分無敵 -Body_Collision(State=0x0) -WHOLE_HIT(Unknown=0x0) -Set_Bone_Intangibility(Bone=0xD, Mode=0x1) --上2つが全体無敵、下が部分無敵。 など。0x0が通常(食らい判定あり)、0x1が当たり判定あり無敵(invincible)、0x2が当たり判定なし無敵(intangible)。 ****アーマー -Set_Armor(State=0x0, Type=0x0) 「State」部分の数値 0x0(アーマー無し)、0x1(アーマー付与) ****透明化 -Body_Visibility(State=0x0) 0x0(透明化)、0x1(通常に戻る)  パルテナの回避にそれぞれ使われている。 ****速度指定 -Add/Set_Momentum(Horizontal=0, Vertical=0, Mode=0x1) 「Horizontal」=水平移動、「Vertical」=垂直移動、「Mode」=不明  「H, V」の数値はFLOATであり、キャラクターは設定された速度で移動する ****画面色彩 -Screen_Tint(unknown=0x0, unknown=0x0, unknown=0x0, unknown=0x0, unknown=0x0, unknown=0xFF, unknown=0x0, unknown=0xFF) |~左から|~数値内容|~数値説明| |1|不明|| |2|色の変化速度|16進数で入力、数値が小さいほど速くなる| |3|赤色|0~FFまで対応 3つの色の数値を組み合わせることで他カラー対応| |4|緑色|0~FFまで対応| |5|青色|0~FFまで対応| |6|エフェクト?|エフェクトが色の影響を受ける色彩量?| |7|キャラカラー|0~7確認、キャラが色の影響を受ける色彩量| |8|不明|| 上記のスクリプトを終了する場合は、 -End_Screen_Tint(unknown=0x0, unknown=0x78) 2番目の部分、16進数(FFが上限)の数値が小さいほど速く終了する。 ****キャラ色彩 -Color_Overlay(Red=0, Green=0, Blue=0, Alpha=255) -Terminate_Overlays() 「R.G.B.A」はFLOATで入力。 「Alpha」=透明度  終了するには下のスクリプトを組む  ルイージFB、ガノンNBなどに使用されている。 ****Subroutine -Subroutine(Hash=0xD720F989) -External_Subroutine(Unknown=0xC5312E6B) など。指定番号のスクリプトを参照する。 必殺技の空中版などに登場。 ****Set_Loop 同じ動作の繰り返しを記述。 Iterationsはループ回数。 Gotoはよく分からないが、多分ループ先頭に戻る指示。 例: Asynchronous_Timer(Frames=7) Set_Loop(Iterations=8){  Hitbox(省略)  Synchronous_Timer(Frames=2)  Remove_All_Hitboxes()  Synchronous_Timer(Frames=1)  Goto(Unknown=-58) } 7F目から、「Hitbox2F有効→1F空白」という動作を8回繰り返す。 7-8F,10-11F,13-14F...といった具合。 「8」の部分を「-1」にするとそのモーションが終了するまで繰り返される。 ****エフェクト切り離し -EFFECT_DETACH_KIND(unknown=0x0000000, unknown=0xFFFFFFFF) 左側のunknownに切り離したいグラフィックIDを入力。右は不明。  通常Boneに設定したエフェクトは切り離せないが、これを入れることにより切り離しが可能。  ベヨネッタなどのスクリプトに組まれている。  ※注意してもらいたいのは、Animcomd-Latestの方でやらないとこのスクリプトを読み込んでくれない。 ****剣先の弧の部分のビジュアルエフェクト Defensive_Hitbox(ID=0x0, Bone=0x0, X=0, Y=7, Z=10) なぜかeffect.binではなくgame.binに記述されている。 ---- **コメント - CPUのAIファイルを弄ってカスタム出来るツールって無いんですかね?前作や前々作ではそれが出来る状態です。ファイターのフォルダからscript→aiと進むとそのファイルが有り、それをsm4shで他のファイターのと置き換える事は出来るのですが、直接ファイルを編集出来るツールは発見出来ません。何か分かれば、ここで書いて頂けると嬉しいです。 -- 名無しさん (2017-11-08 00:47:09) - 今作はmsc&gt;mario.mscsb でキャラクターの行動が規定されているようです。詳しいことは私も分かりませんが↓が参考になるかもしれません。 https://www.youtube.com/watch?v=ZsVhBAKKha4 https://github.com/jam1garner/pymsc/wiki -- DRAFIX/管理人 (2017-11-08 20:21:27) - どうもです。Extractで取り込んだので地道に研究します(笑) -- 名無しさん (2017-11-09 22:47:02) #comment()
#contents(,fromhere=true) ---- 数値は16進数または10進数で表記されている。 技スクリプトは↓。 -[[http://rubendal.github.io/Sm4sh-Calculator/scripts.html]] -[[技解析値(DLリンク)>>http://ux.getuploader.com/ssb4_kensyou/download/16/116_latest.zip]] ---- **Hitbox読み取り(掴み、投げ以外) 普通のHitboxはパラメータが24番までしかない。 Special_Hitboxとして設定されている攻撃判定には25番以降のパラメータがある。 またExtended_Hitboxとして設定されている攻撃判定は、攻撃判定引き伸ばし(stretch)のパラメータがある。 [[スマブラまとめWIKI_攻撃判定>>http://ssbwiki.e3.valueserver.jp/wiki/index.php/%E5%88%A4%E5%AE%9A#.E6.94.BB.E6.92.83.E5.88.A4.E5.AE.9A]]も参考になる。 ***早見表 |~No.|~進数|~名称|~効果| |1|16|ID|IDが若い方が優先してヒット| |2|16|Part(GID)|異なるもの同士はそれぞれ判定を持つ| |3|16|Born|攻撃部位| |4|10|Damage|ダメージ| |5|16|Angle|ベクトル。詳細は[[スマブラまとめwiki ベクトル>http://ssbwiki.e3.valueserver.jp/wiki/index.php/%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB]]| |6|16|KBG|リアクション影響値| |7|16|FKB|リアクション固定値| |8|16|WBKB|リアクション付加値| |9|10|Hitbox Size|攻撃判定球の半径| |10|10|Offset X|Bornに対する判定の位置| |11|10|Offset Y|~| |12|10|Offset Z|~| |13|16|Element|属性| |14|10|Trip|転倒確率| |15|10|Hitlag|ヒットストップ倍率| |16|10|SDI|ずらし距離倍率| |17|16|Clang|相殺の有無| |18|16|Rebound|相殺モーションの有無| |19|16|Shield Damage|シールド削り値| |20|16|SFX Level|効果音の大きさ| |21|16|SFX Type|効果音の種類| |22|16|Ground/Air|対地・対空判定| |23|16|Direct/Indirect|直接・間接| |24|16|Type|種類| |25|16|Action|0x3fから0x1まで多種確認| |26|16|???|0x0と0x1を確認、キャラクターの向きでOn/Off?| |27|16|???|常に0xf| |28|16|???|常に0x0| |29|16|Blockability|(0x1)ガード可/(0x0)不可| |30|16|Reflectability|反射可/不可| |31|16|Absorbability|吸収可/不可| |32|16|Rehit Rate|再ヒット間隔| |33|16|IgnoreInvuln|常に0x0| |34|16|Unknown|常に0x0| |35|16|Facing Restriction|対象の吹っ飛び向きを指定| |36|16|Grippy|0x0と0x1を確認、Facing Restriction関連?| |37|16|Team Damage|チームアタックOff下でのチームメイト(0x1)攻撃可/(0x0)不可| |38|16|Hitlag Disable|ヒットストップの消去ON/OFF| |39|16|NoGFX|カウンター反応有無? 水・風判定では0x1| |40|16|Flinchless|やられ硬直の消去ON/OFF。水・風判定で0x1| |41|10|Stretchy Z|Z方向範囲引き伸ばし| |42|10|Stretchy Y|Y方向範囲引き伸ばし| |43|10|Stretchy X|X方向範囲引き伸ばし| #table_zebra(t1, #ddd, #fff, #3f6) ***ID・Part 1つの技が複数のHitboxを持っていて、相手がそれらに同時に触れた場合、IDが一番若いもののみがヒットしそれ以外は無視される。例えばマルスの剣先部分はID番号が大きいため、根元と剣先が同時に当たった場合は根元判定がヒットする。 ただし、それぞれのHitboxのPartの値が異なる場合は、同時に触れた場合でも全てのHitboxが有効になる。(ほとんどのHitboxはPart=0であり、このような技はとても少ない) 異なるPartが使われている攻撃の一つであるクッパ空Nを例にとって説明する。 この技は「右手→左手→右足・左足」と順次攻撃判定が追加されていき(途中で消去されない)、各手足が全て異なるID・Partを持つ。したがって、攻撃の持続中に右手・左手の判定に同時に触れれば、その両方がヒットする。ちなみにこのときコンボカウンターでは「12%x1ヒット」という表示になる。無論、右手→左手と時間差で触れた時は、両方が時間差でヒットする(仮に同Partなら、右手に当たった時点で以降の左手の攻撃判定は当たらなくなる)。 ***Ground/Air -0x1:地上の相手にのみヒット -0x2:空中の相手にのみヒット -0x3:地上・空中問わずヒット(ほとんどの攻撃) また、この値が0x800000001,0x80000003の技はダウン中の相手に当たらないという特性がある。 -0x800000001 --ゲッコウガかげうち --ディディーDA1段目 --メカクッパ(移動中) --ゼロサムフリップ踏みつけ判定 --フィットレ弱3埋め判定 -0x800000003 --カービィ、デデデすいこみ ***Facing Restriction |値|攻撃を受けたキャラの向き|使われている技|備考|h |0|攻撃者がいる方向|ロボ下スマ、カムイ空Nなど多数|設定されていない技は0扱い| |1|攻撃者の向きと逆|飛び道具|3との違いは不明| |2|変わらない|トゥーンNB2炎部分&br()フィットレ下強風圧|| |3|攻撃者の向きと逆|多くの攻撃|| |4|攻撃者の向きと同じ|多くの空後|| |5|攻撃判定の中心方向|天空(剣上昇中のみ)|| |6|攻撃者の向きと同じ※|バックスラッシュ|ガードノックバックが通常と逆。&br()専用の吹っ飛びモーションがある| |7|左向き|なし|| |8|右向き|~|| |9~|正面|~|| #table_zebra(facing, #ddd, #fff, #3f6) ***Element |~HEX|~属性名|~該当技、キャラの例| |0|打撃|| |1|無|| |2|斬撃|| |3|電撃|| |4|氷結|ジャッジ8、カービィNB2、ギガクッパ下スマ、PKフリーズなど| |5|火炎|| |6|コイン|マリオ上B、ルイージ上B| |7|反転|マント/シーツ、剣術Mii下B2、オリマーNB3、プリン上B3、ゼルダNB2| |8|転倒|むらびと下B2、クッパ下B3、ワリオNB3遠距離| |9|睡眠|ピーチNB2、ピーチ最後の切り札、キレイハナ、トゲピー、ダークライ| |a|未使用|| |b|埋め弱|(薄い台には効果なし)| |c|ふらふら|ワリオNB3近距離| |d|未使用|| |e|花|ピーチ横B2、ワリオ下B2、ねむる、むらびと| |f|未使用|| |10|即死|フィールドスマッシュのみ| |11|草|X時代のフシギソウ、今作では使われていない| |12|水|消火栓水部分、カムイ、マリオ、むらびと、ゲッコウガ| |13|暗黒|ガノン、ギガクッパ、ルフレ、白ピクミン、ミュウツー| |14|麻痺|ゼロサム、カムイ、ファルコン下B3、ガノン・リンクなど最後の切り札| |15|波導|ルカリオ| |16|埋め2|おとしあなのタネ| |17|ダウン|X時代のスネーク下投げ、今作では使われていない| |18|付着|クラッシュボム、射撃Mii横B2| |19|刺突|シーク横スマ、マルキナ上スマ、カムイ槍など| |1a|魔法|ピーチ上B、ネス空前、ロゼッタ横スマなど| |1b|Flinchless1|フォックス上投げブラスター部分| |1c|Flinchless2|フォックス下投げブラスター部分| |1d|太陽|太陽礼拝| |1e|崩れ|セビ| |1f|かなしばり|ミュウツー下B、ミュウツー最後の切り札1%部| |20|突き刺し|カムイ横B| |21|即死2|| |22|未使用|| |23|不明|| |24|バレットアーツ|バレットアーツ| |25|不明|ダックハントNB、シーク/ゼルダ/ブラピ最後の切り札| #table_zebra(t2, #ddd, #fff, #3f6) ---- **その他のスクリプト ****Asynchronous_Timer、Synchronous_Timer 指令が有効になるフレームの記述。 Asynchronous_Timerは技の何F目に有効になるか、 Synchronous_Timerは直前の指令から何F後に有効になるかを記述する。 例: Asynchronous_Timer(Frames=28) Hitbox(省略) Synchronous_Timer(Frames=1) Remove_All_Hitboxes() この例では28F目にHitboxが有効になり、29F目にHitboxが消える(持続は1F)。 ****Set_Frame_Duration スクリプトおよびアニメーションの進行時間をa倍する。 要するに早送りorスロー再生のコマンドである。 発生高速化・後隙減少のアップデートや、Xのモーションを流用&調整するために使われる。 #region(close,クリックで詳細解説) FDはFrame Duration の略。 以下では「Frame」をスクリプト上の時間としてゲーム内のフレームと区別する。 &big(){<基本仕様>} FD効果中は、Timerが実時間の1Fにつき"1/FD"カウントずつ進んでいく。 通常はFD=1で、1FにつきTimerが1進む。 ゲームでは、Timerの小数点以下を''切り捨てた''Frameのコマンドおよびアニメーションが1F毎に読み込まれる。 FD<1の場合(早送り)、ゲーム内ではスキップされるFrameが出てくる。 スキップされたフレームがHitboxの持続中だった場合、その分持続は短くなる。 ただし新しいコマンドはそのFrameが飛ばされた場合でも読み込まれ、次のフレームから適用される。 例1: Asynchronous_Timer(Frames=3) Set_Frame_Duration(Speed=0.8) ~省略~ #image(FD08.png) この例ではFrame7, 12がスキップされている。 FDの影響が画面に現れるのは、''Set_FDが起動した次のフレームから''である。 FDはフレームが進行するときに適用されるため当然と言えばそうなのだが、 攻撃のコマンドが起動したそのフレームに発動するのとは少し勝手が違うので注意。 例2: Asynchronous_Timer(Frames=3) Set_Frame_Duration(Speed=2) ~省略~ Asynchronous_Timer(Frames=5) Set_Frame_Duration(Speed=1) #image(FD2.png) Frame3のFD=2により、以降の''進行時間''が2倍に引き延ばされ動作が遅くなる( ''アニメーション速度は0.5倍'')。 この場合FDは3F目から4F目に移る際に初めて適用されるので、影響が見えるのは4Fからとなる。 同様にして、Frame5→6ではFDは1に戻るので、8F目からは等速のアニメーションとなる。 &big(){<仕様1>} FDが途中で変化する場合、Timerの値はそのまま引き継ぐ。 Timerは1フレームごとにしか更新されないので、新しいFDが適用されるフレームまでは前のFDで計算する。 例3: Asynchronous_Timer(Frames=1) Set_Frame_Duration(Speed=0.8) ~省略~ Asynchronous_Timer(Frames=7) Set_Frame_Duration(Speed=1.2) #image(FDchange.png) 例えば8F目のTimerは、  1×1F + 1.25×5F + 0.8333×2F = 8.9167 と計算される。 例3ではingameの5-6Fの間に「Frame7:FD=1.2」を通過するが、5-6Fの間までは前のFD=0.8が有効であり、6F目のTimerは7.25となる。 &big(){<仕様2-1>} ''スクリプトの先頭(Frame0)に整数でないSet_FD''が設定されると、ゲーム内の''1F目はコマンドを全く読み込まなくなる。'' また、0→1F目に限り''Timerの加算も行われない''。 アニメーションはFDの数値によらずFrame1のものになる。 ※Timerについては事実に沿った解釈であり、実際の内部処理は不明。 例4: Set_Frame_Duration(Speed=0.8) ← Frame=0 Asynchronous_Timer(Frames=16) Hitbox(省略) Asynchronous_Timer(Frames=21) Remove_All_Hitboxes() #image(IkeFair.png) アイクの空前のスクリプト。 1F目は「空白の時間」であり、2F目からTimerの加算が始まる。 また、Frame15,19がスキップされて持続が2F短くなっているのも確認できる。 スクリプト上は14-20Fの計7Fがactiveだが、FDが適用されると12-16F、持続は5Fになる。 &big(){<仕様2-2>} ''スクリプトの先頭(Frame0)に1より大きいSet_FD''が設定されると、最初のTimer更新は「''1以上になるまで(1/FD)を足し続ける''」。 例5: Set_Frame_Duration(Speed=2.5) ← Frame=0 #image(FD25.png) (1/FD)=0.4なので、Timerは「0.4 0.8 1.2 1.6 …」と増えていくはず。しかし0.4と0.8は1より小さいため飛ばされ、最初のTimerの値は1.2になる。以降は0.4ずつ加算される。 このケースではFDが整数でないので、1F目が空白の時間になっている。 FDが整数の場合は1F目からTimerが更新される。 &big(){仕様3} FDで延長・短縮されるのはゲーム内の全体モーションFである。 技の全体Fには影響を与えない。 技の全体Fはfighter_param.binにコーディングされていて、実はアニメーションとは全く関係がない。 例6: Generate_Article(ID=0x4) Set_Anchored_Article_Action() Asynchronous_Timer(Frames=12) Extended_Grab_Collision() Asynchronous_Timer(Frames=14) Grab_Collision() Asynchronous_Timer(Frames=20) Terminate_Grab_Collisions() ''Set_Frame_Duration(Speed=0.55)'' Asynchronous_Timer(Frames=69) Remove_Article() Script_End() リュカのその場つかみのスクリプト。 「Set_FD=0.55」の行はつかみの後隙が短くなったアップデートで追記された。 これは短くなった全体Fに合わせてアニメーションを早送りするためだけに書かれたコマンドである。 同じような変更がクッパjr.の横スマなどにも見られるが、あちらはついでに最終段の発生が早くなっていたりする。 &big(){検証方法メモ} Asynchronous_Timer(Frames=1) Remove_All_Hitboxes() Hitbox(dmg=1) Asynchronous_Timer(Frames=2) Remove_All_Hitboxes() Hitbox(dmg=2) という風に、Frameが切り替わるたびにダメージの異なる新しいHitboxを生成し、キャプチャ&コマ送りしながら当たったコマンドをメモする。短時間で多量のダメージを与えるとフリーズするので、ダメージ設定を工夫すべし。 #endregion ****重量固定フラグ -Unk_853CD75E(Unk=0x1) -Set_Weight(Flag=0x1) など。0x1に設定されていると、相手の重量を100として吹っ飛ばし力を計算する。 ベヨネッタの横B・上Bなどに登場。 ****全体/部分無敵 -Body_Collision(State=0x0) -WHOLE_HIT(Unknown=0x0) -Set_Bone_Intangibility(Bone=0xD, Mode=0x1) --上2つが全体無敵、下が部分無敵。 など。0x0が通常(食らい判定あり)、0x1が当たり判定あり無敵(invincible)、0x2が当たり判定なし無敵(intangible)。 ****アーマー -Set_Armor(State=0x0, Type=0x0) 「State」部分の数値 0x0(アーマー無し)、0x1(アーマー付与) ****透明化 -Body_Visibility(State=0x0) 0x0(透明化)、0x1(通常に戻る)  パルテナの回避にそれぞれ使われている。 ****速度指定 -Add/Set_Momentum(Horizontal=0, Vertical=0, Mode=0x1) 「Horizontal」=水平移動、「Vertical」=垂直移動、「Mode」=不明  「H, V」の数値はFLOATであり、キャラクターは設定された速度で移動する ****画面色彩 -Screen_Tint(unknown=0x0, unknown=0x0, unknown=0x0, unknown=0x0, unknown=0x0, unknown=0xFF, unknown=0x0, unknown=0xFF) |~左から|~数値内容|~数値説明| |1|不明|| |2|色の変化速度|16進数で入力、数値が小さいほど速くなる| |3|赤色|0~FFまで対応 3つの色の数値を組み合わせることで他カラー対応| |4|緑色|0~FFまで対応| |5|青色|0~FFまで対応| |6|エフェクト?|エフェクトが色の影響を受ける色彩量?| |7|キャラカラー|0~7確認、キャラが色の影響を受ける色彩量| |8|不明|| 上記のスクリプトを終了する場合は、 -End_Screen_Tint(unknown=0x0, unknown=0x78) 2番目の部分、16進数(FFが上限)の数値が小さいほど速く終了する。 ****キャラ色彩 -Color_Overlay(Red=0, Green=0, Blue=0, Alpha=255) -Terminate_Overlays() 「R.G.B.A」はFLOATで入力。 「Alpha」=透明度  終了するには下のスクリプトを組む  ルイージFB、ガノンNBなどに使用されている。 ****キャラの向き変更(左右のみ) -Reverse_Direction() 「右向き」の場合→「左向き」、「左向き」→「右向き」 これだけで指定したフレームの下に組み込めば、キャラの向きが変えられる。 ****Subroutine -Subroutine(Hash=0xD720F989) -External_Subroutine(Unknown=0xC5312E6B) など。指定番号のスクリプトを参照する。 必殺技の空中版などに登場。 ****Set_Loop 同じ動作の繰り返しを記述。 Iterationsはループ回数。 Gotoはよく分からないが、多分ループ先頭に戻る指示。 例: Asynchronous_Timer(Frames=7) Set_Loop(Iterations=8){  Hitbox(省略)  Synchronous_Timer(Frames=2)  Remove_All_Hitboxes()  Synchronous_Timer(Frames=1)  Goto(Unknown=-58) } 7F目から、「Hitbox2F有効→1F空白」という動作を8回繰り返す。 7-8F,10-11F,13-14F...といった具合。 「8」の部分を「-1」にするとそのモーションが終了するまで繰り返される。 ****エフェクト切り離し -EFFECT_DETACH_KIND(unknown=0x0000000, unknown=0xFFFFFFFF) 左側のunknownに切り離したいグラフィックIDを入力。右は不明。  通常Boneに設定したエフェクトは切り離せないが、これを入れることにより切り離しが可能。  ベヨネッタなどのスクリプトに組まれている。  ※注意してもらいたいのは、Animcomd-Latestの方でやらないとこのスクリプトを読み込んでくれない。 ****剣先の弧の部分のビジュアルエフェクト Defensive_Hitbox(ID=0x0, Bone=0x0, X=0, Y=7, Z=10) なぜかeffect.binではなくgame.binに記述されている。 ---- **コメント - CPUのAIファイルを弄ってカスタム出来るツールって無いんですかね?前作や前々作ではそれが出来る状態です。ファイターのフォルダからscript→aiと進むとそのファイルが有り、それをsm4shで他のファイターのと置き換える事は出来るのですが、直接ファイルを編集出来るツールは発見出来ません。何か分かれば、ここで書いて頂けると嬉しいです。 -- 名無しさん (2017-11-08 00:47:09) - 今作はmsc&gt;mario.mscsb でキャラクターの行動が規定されているようです。詳しいことは私も分かりませんが↓が参考になるかもしれません。 https://www.youtube.com/watch?v=ZsVhBAKKha4 https://github.com/jam1garner/pymsc/wiki -- DRAFIX/管理人 (2017-11-08 20:21:27) - どうもです。Extractで取り込んだので地道に研究します(笑) -- 名無しさん (2017-11-09 22:47:02) #comment()

表示オプション

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