ICLPXのスマブラ改造日記2|2017年07月ICLPXのスマブラ改造日記2スマブラXの改造に関する記事をいろいろと書いていきます。v0.31をアップロードしました。新機能を少し使いやすくなるように変更し、表示も少し変更。新機能でEvents関連の動作を失敗するバグを修正。Article本体のOffsetを表示する場所を追加し、テキストデータを少し更新しました。(修正前だと対象のOffsetが変わった場合、その値が変わったOffsetにデータの書き込み、削除を失敗する場合があります。Attacksなどで編集したデータの圧縮はPSARemakerで行うことをお勧めします。・Pasteでまとめていくつかのデータを編集できる仕様を追加(成功すると確認画面が表示されます。Article側だと無理)・オーバーライドリストにもMoveB(データを後ろ側へ移動させる機能)追加。・ActionFlagsまたはSubActionFlagsを同じように変更する機能これらの機能が追加されました。開始点~終了点の範囲指定でまとめて行います。v0.11の修正をしました。ダウンロード詳細(前回v0.11の記事)はこちら変更点:・ミスサブルーチンによる、イベント00000001などのデータをコピーしないように変更。・パラメータがFADEF00Dになっている場合にバグが起こらない様に、自動で値を+1した値に修正するよう変更。・すでに超圧縮されたデータを読み込んだ時に、なぜかパラメータなどの変更が適応されないことがあったので修正まだ不具合があったら報告お願いします。PSA参考|CPの超反応と、条件次第で起こる謎のフリーズがいやらしいので対策してみる。攻撃を受けたときに、特定のアクションに移行するようなので、オーバーライドによる対策も可能。発動キャラとActionIDはこの様になっています。Actionなし)・アイク:F7・ファルコン:FD・カービィ:100メタナイトはキャラがフリーズするバグがあるらしく、オーバーライドでないと強行突破ができません。リンクは切りふだの途中で掴まれ状態が解除されるキャラがいて、その後のリンクの通常掴みでフリーズ、なんてことがありました。場合によってはフリーズさせないためにも対策必須になるかもしれません。ファルコンは、攻撃を受けた後に対策しても強行突破ができないので厄介。オーバーライドによる無効化でも、吹っ飛び耐性を付けるなどの対策が必須になりそうです。ファルコンの攻撃を誰かが受けて、自分は受けなかった場合は動きが止まりますが、これは時止めみたいなものではなく、キャラが停止するアクション(ActionFB)に強制的に移行するというもののようです。Actionで強行突破するのも面白いかもしれません。(超広範囲なら攻撃なども届きます。カメラはファルコンが占領します)ちなみに元々吹っ飛び耐性持ちで、攻撃を受け時にアクションを即切り替えてしまうような相手(スーパーターボ系キャラの強モードなど)にリンクの切りふだが発動すると、リンクがどこかに飛んで行って自滅することがあります。アプリ関連|完成しました。PSAの圧縮専用アプリです。ダウンロード※ArticleのGroupIDやBone(0x000~0x008)のデータがコピーされないようになっていたので修正しました。Compress(最大圧縮設定)にチェックを入れると、Action数とSubAction数を変えることができます。(ドロップした時に、デフォルトの値が表示されます。(減らすこともできますが、バグが起こるかもしれないので注意。)読み込み方は、ドラッグ&ドロップのみで、閉じるボタンも右上にある×だけとなっています。複数のファイルをドロップした場合は、ドロップしたファイルをまとめて圧縮することもできます。圧縮専用ツールなので、ファイルの編集などは全くできませんが、PSACompressor以上の圧縮が期待できます。Compress」などの機能はついていませんが、サブアクションにアニメーション名として設定された「NONE」は消える仕様になっています。※PSACompressorで開けないファイルはこちらでも開けません。RoutineやGotoによるサブルーチンの設定がおかしい場合も、バグの原因となることがあるので、PSACompressorで確認した方がよさそうです。(空ルーチンなら基本的に消えます)元となる専用のデータにファイル内のデータを書き写して出力するため、BrawkBoxによるバグなどで消えた一部のデータがデフォルト状態で復元されることがあります。(存在する場合は値を入力データに合わせます)元となるファイルは、「PSADatas」フォルダに入っている圧縮されたファイルです。出力データとして読み込む時に復元して使うようになっています。仕様いろいろ:・未使用サブルーチン、空データのOffsetなどは基本的に削除される。・基本的にイベントなどに使われているOffsetデータはすべて変更される。Eventに変換する。・OverrideのOffsetなどがおかしい場合は、元々OverrideデータがあるキャラでもOverride関連のデータが消える。(場合によってはバグの原因となるので注意)・BrawlBoxとは違い、Offsetの同一設定は引き継ぐ。(ただし途中から(Offsetから+8した値など)になっている場合は無理。これがこのアプリで圧縮したのに容量が増える原因になることがある。)・SubActionの7Eと84などのデフォルトで同一Offsetの設定になっているデータはイベントデータが1つで同じ、もしくはサブルーチンで場所を指定していればであればOffsetの同一化をする。(SubAction76~95、BC~BD限定。固有データまでは対応していない)・Externalデータは昇順ソートされる。・一部非対応データあり。BrawlBoxとは違って、非対応のデータでも消さずにデフォルトの値で残すのでバグの心配はまずない。パラメータなどに、圧縮対処になっている値「FADEF00D」を使うとバグの原因になります。Compress設定時は特に、ほぼ確実にどこかがおかしくなってしまうので注意しましょう。v0.31から、文字列データをクリップボードにコピーして、Pasteボタンを押すことで、まとめて多数のデータを書き換えることができる機能が追加されました。この機能を使うには、メモ帳などにデータを書き込んで、文字列を完成させてクリップボードにコピーを行う必要があります。Previewが表示されます。117-118,」OKをクリックするとSpecialsから見ることができるExitのイベントデータがAction117と118の所だけ全て削除されます。同じようなことをまとめてできるので、イベントデータなどの編集が簡単になるかもしれません。Eventsタブ内で、通常のイベント貼り付けさえ行うことができるなら、どこでもできます。(Fighter.pacは不可)※どこでPasteをクリックしても効果は同じです。この機能を使って特定のデータを消すもしくはイベントの追加をするからと言ってわざわざそこに開く必要はありません※Articleのデータには使えません。例の「AC」の部分は「どのようなことを行うか」という部分で、バリエーションは全8種。イベントを全削除する。空ルーチンでもOffsetは0にする。Offsetがすでに0のものには効果はない。ActionFlags(メインタブData、サブタブMiscから編集できるデータ)を新しく入れたデータで上書きする最後に「/」を入れて、2つ以上の動作を行うこともできます。Externalの設定はできません。SN、SF、EF、AFの4つはAC、PF、PB、POと異なる書き方が必要なので、まず、AC、PF、PB、POの4つについて書きたいと思います。「117-118,」は117が「開始地点」、118が「終了地点」をそれぞれ表しています。普通にCopyボタンをクリックしてコピーされるデータを貼り付けるだけでOKです。3Dを選択中だと「E=00070100:SOR:Ex=03D,」がクリップボードに書き込まれます。この「E=00070100:SpA:En=112,」のうち、「SpA:En」の部分を取り出して使えばOKです。ついては、そのままです。開始地点のIDと終了地点のIDをそれぞれ入れるだけです。注意点としては、IDが0や1でも「000」といったように必ず3桁にしないと動作しないことと、Overrideの場合は設定されたActionIDが「開始地点」と「終了地点」のID内に入っている場合に動作するため、位置を書き込んでも正常な動作をしないということこの2つくらいです。※仕様変更により「開始地点」と「終了地点」の値が逆になっている場合は「開始地点」の1つだけの設定が適応されるようになりました。これを利用して、「終了地点」を0にしておき、103、104、105、106にそれぞれ一つずつ指定サブルーチンの位置が違うデータを貼り付けるように設定、まとめて貼り付けを行わせる。いったこともできます。ちなみに、変更前のものだと「開始地点,」となっている場合は動作しません「どのようなことを行うか」という部分が、SNの場合はSN:Set003-004,JumpFといった書き方をします。JumpF」の部分は書き込みをしたいAnimation名です。通常の場合と同様で、Animation名の部分に「<null>」を入力するとAnimation名のデータを消すことができます。文字数最大が31までなのも同じです。※仕様変更により、改行を途中で入れると改行以降のデータの読み込みが行われないようになりました。「SN:Set003-004,<null>SN」といったように入れた場合、「<null>」の後ろにあるデータは読み込まれず「<null>」だけが適応されるようになりました。仕様変更前は改行も読み込んで文字列にしてしまうので注意が必要です。「どのようなことを行うか」という部分が、SFの場合はSF:Set003-004,00020000といった書き方をします。00020000」の部分は書き込みをしたいAnimation名です。今回の「00020000」だとLoopの部分のみにチェックが入り、他は全部チェックが外れた状態になります。「Set」の部分を「And」または「Or=」(Or,でもOK)に変えると効果を変えることもできます。(AndだとAnd演算、Or=だとOr演算を行います)SF:And003-004,00020000→Loop以外にチェックが入っている場合はLoop以外のチェックを外すSF:Or=003-004,00020000→Loopにチェックが入っていない場合はチェックを入れる一応、下4桁も変更できますが、意味はないかと思われます。※仕様変更により、最初の文字さえ合っていれば動作するようになりました。「Or=」ではなく「ORs」、「Set」ではなく「SET」と書いても問題なく動作します。「どのようなことを行うか」という部分が、EF、AFの場合はEF:Set117-118,1-00002000といった書き方をします。1」の部分はFlags、「00020000」の部分は書き込みをしたいAnimation名です。SFと同じで、「Set」の部分を「And」または「Or=」に変えると効果も同じように変わります。Flags(Action112以降のデータ)がありますが、ここでは区別がありません。Flagsの112にデータが適応されます。一度につき1つのFlagsしか、まとめて変更をすることはできません。(Flags0の変更をするように書き込んだ場合、Flags0の部分以外は動作しない)Flags0とFlags1をまとめて変更したい場合は、EF:Set117-118,0-20000040/EF:Set117-118,0-00002000といったように、「/」を入れましょう。部分が、「SN」以外であれば、「/」の前に改行を1~2つ程度入れて、その改行もまとめてクリップボードにコピーしてこの機能を使っても、動作に変化はありません。ちなみに「まとめ貼り付け」だけでなく、通常の「Paste」を行った時も、イベント最初の「E=」の部分を改行に変えたろしても問題なく動作します。(スペースは1文字、改行は2文字扱い。最後の部分に改行が入ってもある程度(10文字まで)の余分なデータは無視される。)簡単に言うと、重要な部分である16進数データさえ問題がなければ、それ以外が変になっていても読み込めるというわけです。(v0.30以前のバージョンでもできます)例:E=000A0100:6-0000001F,E=1F020000:E=000F0000:↑のコピーされた文字列を↓ようにしても問題なく上のものと同じ動作をします。6x0000001F1F020000+000F0000&*******!Excelなどにデータをまとめることもできます。うまくExcelとPSACompressorを使えば、使用変数を探すためのデータ作成などが簡単にできそうですね。キャラ紹介|更新しました。ダウンロード特定の攻撃を当てるとダメージを回復できるタイプのネスです。スーパーターボ系キャラと同程度の強さで、スーパーターボ系キャラと似た性質を持っています。上アピール(?)ができるように変更。・掴みカウンターと、上Bを空中で行った時に、飛び道具使用回数としてカウントされないようにした。・下Bを攻撃回数としてカウントされないようにした。下Bでエネルギーを吸収することができれば、すごい回復力を発揮します。(弾の威力の5倍回復、上限999)普通にアピールをしたり、攻撃を当てて回復をした方が早く回復できそうですが...下B解除時に発生する風圧は、ダメージこそないもののスター無敵状態の敵を押し出すことができます。残り作業はほぼデバッグのみの状態になりました。Section」などのデータのOffsetをあまり変えずにできる範囲で最大の圧縮を行う・すべてのOffsetを変えてBrawlBoxのような圧縮をするこの2通りしか基本的にできない仕様になると思います。ちなみにこのアプリは、PSACompressorで開けないようなファイルは基本的に対応していませんので、注意してください。RoutineやGotoによるサブルーチンの設定がおかしい場合も、バグの原因となることがあるので、PSACompressorで確認した方がよさそうです。仕様いろいろ:・BrawkBoxによるバグなどで消えた一部のデータがデフォルト状態で復元されることがある。(元となる専用のデータにファイル内のデータを書き写して出力するため)・すべてのOffsetデータが変更されてしまう可能性がとても高い。・空データのOffsetは自動ですべて0になる。空サブルーチンの設定先になっていても同じ。Eventに変換する。RoutineやGotoで設定先が空データのサブルーチンがあると、Offsetを0にする・OverrideのOffsetなどがおかしい場合は、元々OverrideデータがあるキャラでもOverride関連のデータが消える・BrawlBoxとは違い、Offsetの同一設定は引き継ぐ。(途中からになっている場合は無理)・SubActionの7Eと84などのデフォルトで同一Offsetの設定になっているデータはイベントデータが1つで同じ、もしくはサブルーチンで場所を指定していればであればOffsetの同一化をする。(SubAction76~95、BC~BD限定。固有データまでは対応していない)・Externalデータは昇順ソートされる。・一部非対応データあり。10C)データにType(Value、Scalarなどの選択箇所)4が使われているデータがありました。アドレスで文字列指定と、少し特殊なつくりになっていて、PSACompressorで対応化させるかどうかは実用性があまりなさそうなので意味薄ですね...PSARemakerの方はとりあえずデータ的におかしくならないようにはする予定です。Offsetなどで動かさないようにすれば問題ありません。▲|HOMEプロフィールAuthor:ICLPX主にスマブラXの改造をやっています。更新ペースはその時によってバラバラです。質問などがあれば気軽に書き込んでください。過去に書いた記事も更新することがあります。