PSACompressor ver 0.11 公開

2015.12.30 00:00|スマブラX改造
PSACompressor ver 0.11(バグが多いので削除しました)

機能: PSAとバイナリエディタでできるある程度の軽い圧縮を自動で行う
開発言語: C#
動作に必要なもの: .NET Framework 4.0
ドラッグ&ドロップ対応(複数ドロップしてもファイルは1つしか読み込めない)
一応全キャラ開ける。

Ver 0.11の機能
・AttributesのデータをSSEAttributesにコピーする機能
・PSAで勝手に作られたNONEを削除する機能
・PSAで編集できるSubActionの中の空Offsetのデータを削除する機能
・サブアクションのモーションリネームにより増えたデータを軽量化
3つめは最初から使えますが空Offset削除済みのファイルには効果がありません。(ミスあり)
4つめはファイルによっては変更した名前を1つ編集すると同じ名前のものが一緒に動くようになることがあります。

圧縮レベル:まだ試作段階レベル。全部にチェックを入れても圧縮量は3KB以下の場合が多い。
4KB以上圧縮される場合はどれにもチェックを入れなくてもいくらか圧縮できる場合だろう。
PSAで編集できる部分に空きができるだけでファイルの自体圧縮ができていない場合もあるので、PSAで編集する際に思ったより使用効果が大きいこともあるかも。

ソースコードはアップロードしても見たり編集する人がいなければ意味がないので、アップロードしていません。
※アプリケーション本体は英語ばかりですが、マニュアルやソースコードのコメント文は日本語です。
スポンサーサイト



使われていないところに行くと容量が増える。

2015.12.18 21:12|スマブラX改造
PSAで「NONE」と表示されているサブアクションが出てくることがありますが、触らない&通らない方がいいみたいですね。
容量が増えてしまって、BrawlBoxでも元に戻せないようなので。

まあ、通ってもAnimation Flagsが触れない間はNONEを作られていない場合もありますが。
アニメーションを追加する場合などで、未使用サブアクションは使えないことはないんですが
無駄にNONEを増やすのはちょっと面倒ですね...
NONEを消したい場合は、バイナリエディタを使って強引に消すか専用のソフトを使うしかないですね。
それと、同じサブアクション名はまとめられるみたいです。全部まとめることができれば、少しは容量を軽量化できるかもですね。

書き忘れ
この記事で紹介している仕様変更はモーションリネーム時に文字数を一定(1~4)以上増やすと同名のモーション名がバグるといったリスクがあるらしいです。
ちなみにAnimation Flagsはいくらいじっても容量は増えません。


まあバイナリエディタからやるのはとても面倒なうえ、ソフトウェアがないから作るしかありませんね。
BrawlBoxではどのような処理を行って圧縮しているのだろうか...
(解決済み)

無駄記述?

2015.12.07 20:42|スマブラX改造 謎
42と151~158のSFXにAsynchronous Timer : frames= 0
がほとんどのキャラで見かけられるのだが、何のために入っているんだろうか。
特に151~158にあるものはGo to Loopを使ってるけどあってもなくても同じなのか?
他にもSubRoutineを空データに指定してあったり、
Asynchronous Timerのframesが0ではないもののそれだけで記述が終わってたり。
...

PSACompressorについて(2017/7/27更新)

2015.12.03 04:05|スマブラX改造 アプリ関連
動作とテキストファイルの詳細です。
基本的に最新版v0.27にあわせて書いてます。なのでv0.27より古いバージョンだとないor動作しない場合があります。
(v0.30でサブタブMiscの追加で見れる(弄れる)ようになったデータが増え、上部メニューからVariableと未認識イベントの検索ができるようになりました)
(v0.31で「Copy Routine」とPasteの機能が強化され、オーバーライドリストIDのSortをする機能が追加されました)
(別プロジェクトとして作られたPSA Remakerにより、最大レベルの圧縮が可能となりました)

・最大について
読み込めるファイルの最大サイズ: 580KB(0x91000以下)
読み込めるテキストファイルの最大行数: 2000行以下(基本的に空行を除いた行数)
※ただしAttributes.txtとRequirements.txtは特殊仕様で、一定の行数を超えていない場合は無視される。

-動作-
※文字列データを書き込む際、2バイト以上の文字(ひらがなやカタカナ、漢字など)を入れて確定すると、アプリがおかしくなるので注意してください。
上部のメニューについて
File
-Open... ファイルを開く。ドラッグ&ドロップでもいいので、あまり使わないかも。
-Save... 現在の状態でファイルを名前を付けて保存する。
-Exit... アプリを終了する。

Setting
-Save... Compressタブのチェックボックスの状態と、右クリックメニューのチェック状態を保存する。この時にできる、Setting.txtが保存後の状態で、このファイルを消すと、デフォルトに戻る。
v0.17までは、Check SSE Not Copy Dataがある。SSEAtr_setting.txtの中身をチェックするというもの。
v0.17では、Auto line Returnがある。これはCompressする時のテキストデータの自動改行をするかしないかを決めるものである。
v0.17までは、SSEAtr_setting.txtは消しても起動時にデフォルトのデータのファイルが作られるので消しても大丈夫。
v0.20からはSSEAtr_setting.txtは使わないので、いらない。

Help
About... バージョンを表示する。
Current Size... 現在のファイルサイズを表示する。PSA部分のみのサイズも表示される。
Compressed Minumum Size... データ"FADEF00D"をすべて除去できれば、どれくらいまでサイズが減るかを表示する。最大圧縮量とは少し違うので注意。(-0)が出た場合、これ以上"FADEF00D"がないことを表す。

メインタブの上のテキストボックスについて
左側 - 今開いているファイルを表示する。
右側 - 詳細やエラーなどの情報を表示する。

・メインタブ Commpress
v0.11からv0.20では項目数は同じだがすることは変わっている。基本的にArticles内のデータには影響はない。

最初に、Externalによるバグ発生の可能性があれば修正する。

Attributes SSE DataCopy
選択式で表示されるデータ。通常の戦闘で使われるAttributesと亜空の使者の道中で使われるSSEAttributesを同じ値にする。PSAでSSEAttributesが編集できないという理由で作ったもの。
v0.15~v0.17では一番上のNo Copyを選ぶと一切同じにはならない。一番下のCopy ALLを選ぶと全て同じになる。
Case 1~3を選ぶとそれぞれSSEAtr_setting.txtの設定されているデータと同じにするものを制限する。どのパラメータが変更されないかは、上部メニューのSettingから「Check SSE Not Copy Data」をクリックすると確認できる。このデータはメモ帳などでSSEAtr_setting.txtを開いて自分で編集・追加できるが、値が昇順で3桁の16進数でないと正常に動作しない。
v0.20以降はSSEAtr_setting.txtは使われなくなり、選択肢は全く同じにしないと、全て同じにするだけになった。
この機能を使わなくてもメインタブをAttributesにするとAttributesとSSEAttributesが別々に編集可能。

Name NONE Compress
ファイル内にある"NONE"をすべて削除する。消した分容量が軽くなるが、PSAで編集時に再度作られるので、PSAで編集する場合は意味は薄いかもしれない。

Empty Data Compress
SpecialsのEnterとExit、Sub ActionsのMain~Otherにあるもので
イベントが0でOffsetの指定があるもののOffsetを0に修正して容量を減らす。2回目以降は効果がない。
何もイベントのないサブアクションを編集する前からやるほうが効果は大きい。
ついでに、消したデータの内容のない項目に対してSub Routineがあった場合は、イベントを"No Event"に変更する。
アイスクライマーの場合はナナ側のSub Actionにも同じ処理を行う。
v0.24より前のバージョンでは、SpecialsとSub Actions内のデータをどちらかだけ処理することもできるが、特にそうする必要はないので、v0.24からは1つにまとめられた。

SubActions Name Compress
サブアクション名を変更した時増えてしまった分の容量を圧縮する。
NONEを作った分の圧縮もいっしょに行うが、こちらはName NONE Compressとは違いPSAで再度作られたりないが、圧縮量は少ない。(BrawlBoxと同程度)
v0.17までとv0.20からで仕様が変わっている。(v0.20ではFADEF00Dがでにくい)

Sub Routine Data Compress
Sub RoutineかGotoでの指定先のデータ量が少なすぎて逆に余計に容量を取りそうな場合は、指定先と同じデータに書き換えて容量を減らす。指定先のサブルーチンデータが未使用になった場合は、データを削除する。サブルーチン内のデータには効果がありない。

No Event Compress
Pointerで値を0に設定してあるGotoとSub RoutineはNo Eventに変更し、
Eventsの各タブのNo Event、Synchronous Timer、Asynchronous TimerだけでできているOffsetを0に修正して容量を減らす。
そうでなくても、Synchronous TimerかAsynchronous Timerが連続している部分は1つにまとめる。
イベントリストの途中からPointerで値を指定されていない場合は、そのイベントリスト内のNo Eventをすべて除去する。
簡単に言うと、無駄と思われるデータをいくらか削除する機能。
サブルーチン内には効果がない。

Same Data Compress ... パラメータありのイベントが2つ以上ある場合、他の場所に同じデータがあるか探して、同じデータがある場合は自動的にサブルーチン化を行う。
このとき、そのイベントリスト内でSub Routine Externalなどが使われている所は、サブルーチン化ができない。
また、全く同じ2つのパラメータがあるイベントが2回以上連続している場合は、Set Loopでループ化させる。(1つのイベントが4回以上でも動作するが、3つ以上のイベントでループしている場合はできない。)
このとき、IfやSet Loopが元々のイベントリスト内になければ、Asynchronous TimerはSynchronous Timerに変更される。
サブルーチン内やArticleのみに使われているデータには効果がない。

SubActions All Move Offsets
全てのサブアクションに対して、右クリックメニューのMove Offsetに似たことをする。
Article、Overrideには無関係。

Specials All Move Offsets
全ての固有アクションに対して、右クリックメニューのMove Offsetに似たことをする。
Article、Overrideには無関係。

Move for In Sub Routine
チェックをいれている場合は、All Move Offsetsの動作時に、Sub Routineのアドレスの指定先にもAll Move Offsetsの効果が出る。Sub Routineの指定ミスがあれば、チェックを入れないようにするといい。
また、ミス指定でなくてもイベントの途中から読み込むようにOffsetを指定している場合は、バグが発生することがあるのでチェックを入れない方がいい。(v0.22からはイベントの途中から読み込むように指定してもある程度防がれる。Sub ActionsまたはSpecialsのデータの途中からなら、途中で異常な値を入れていない限り、途中から指定していても分離はしない。)
どちらにもチェックを入れていなければ、動作しない。

Delete Unused Externals ... 使われていないExternal Sub Routineのデータを削除する。

Delete PSA Data
PSAで最初に必ず作られるデータを削除する。

Move All Offsetsは1回だけでなく、数回やった方が効果が大きい場合がある。
2回目に"Fixed (数) External Data."が表示された場合は1回目でバグが発生しているので注意。
Sub Routineのミス指定がある場合は、バグが発生する可能性あり。
場合によっては、BrawlBox0.67bなどより圧縮できるが、基本的には、BrawlBoxの圧縮量の方が多い。
Compressed Minimum Size で表示される(-数値)の数値が大きくても、全く圧縮できない場合はArticleやOverride、無駄サブルーチンのうちのどれかが原因であることが多いと思われる。(dataのOffsetが原因の場合は、それ以上の圧縮は無理)

最後に、最後の方にある無駄データの圧縮を行う。

・メインタブ Events
作りはBrawlBoxやOpenSAよりPSA2.70に近い。PSAやOpenSAで見れない所まで確認可能。
専用のテキストファイルがあれば説明を表示したりパラメータの表示をカスタマイズしたりできる。
ModifyやPasteなど、主な機能はv0.20から動作する。
SubRotine Externalの表示も、複数同じものが表示できる。
一応、PSAでは開けないFitDedede.pacやFighter.pacも開けるが、アイテムなどは開けないので注意。

-サブタブ Specials
固有アクションを編集できる。Entryはもちろん、PSAでは見れないExitも編集可能。

-サブタブ Sub Actions
サブアクションのMain~Otherを編集できる。アイスクライマー場合はナナ側も編集できる。
アニメーションとアニメーションフラッグも編集可能。<null>と入れると、アニメーションの名称データを消すことができる。
ただし、変更してもEnterを押さないと確定しないので注意。

-サブタブ Sub Routines
サブルーチンを開く。16進数のOffsetを記入。0xのあるないは関係なく読み込める。
変な値を入れると右上にエラーが表示される。0xの代わりにDxを入れると10進数Offsetを読み込む。
Createでは、新しいサブルーチンを作れる。BrawlBoxとは違い、未使用のまま保存しても消えない。
Createの隣のボックスでは、履歴の表示や、使用中のサブルーチンを約500個まで表示したりできる。ちなみに、履歴の表示は古い順である。
その下のボックスは、Using Data Traceを押した時のみ、動作する。

・サブタブ Override
Action Overrideのイベント編集はもちろん、EntryとExitを追加・編集、削除もできる。
元々持たないキャラでも、新規作成が可能。ただし、削除は2つ以上ないとできない。(つまり新規作成は可能だが既存のデータの削除は不可能)
名称も決めることができる。名称の削除は可能。
ちなみにv0.17ではメインタブDataの最後のタブにある。確認のみ可能。

・メインタブ Attributes
通常の戦闘で使われるAttributesと亜空の使者の道中で使われるSSEAttributesを別々に編集できる。
専用のテキストファイルがあれば説明を表示できる。
右クリックメニューからその行のIntとFloatの型を入れ替えることができる。16進数での表示もできる。

・メインタブ Articles
専用のテキストファイルがあれば各Articleやパラメータなどを確認できる。
No Selectを選んだ時だけ表示されるパラメータもある。

・サブタブ Actions
Articleのアクションを編集できる。Exitがあるのはピクミンのみ。

・サブタブ Sub Actions
ArticleのサブアクションをMain~GFXまで確認できる。(Otherは存在しない)
デデデのワドルディやオリマーのピクミンなども専用のテキストファイルがあれば確認できる。
アニメーションとアニメーションフラッグも編集可能。でも使わないかも。これもEnterを押さないと確定しないので注意。

・サブタブ Parameters
パラメータを編集できる。専用のテキストファイルの値が間違っていても編集できてしまうので注意。
専用のテキストファイルにパラメータのサイズさえ書いてあれば読み込めるが、パラメータなしでサイズしか書いていない場合はIntとFloatの型は値の大きさで自動で変わるので、Int型の場合は億単位の数値(1234567890など)、Float型の場合は0などにすると、違うパラメータにして戻ってきたときIntとFloatの型が入れ変わることがある。
またパラメータのオフセットが書かれているところかパラメータの編集するリストの所で右クリックを押すとOpen Params Offsetが出現。テキストボックスに16進数のアドレスまたはオフセットの値を入れることで指定した場所の値を自由に変更できる。下のリストから開くサイズも変更可能。ただし、ほとんどどこでも開くことができるので、値を変更する場所に注意しないとバグが発生してしまう。Open AddressとOpen Offsetがあるが、使い分け方はFPEのデータを持ってきた場合はOpen Address、BrawlBoxのデータを持ってきた場合はOpen Offsetといった具合に使い分けるといい。
もちろん、Attributesと同じようにその行のIntとFloatの型を入れ替え、16進数での表示もできる。

・サブタブ DataOffset
アーティクルのパラメータなどのデータを表示する。データサイズなどは表示されない。

・サブタブ Compress
選択中のArticleに対して圧縮を行う。使い方、することが共にメインのCompressとほぼ同じ。ただし、圧縮結果は表示されない。どの項目も、ActionとSub Actionすべてに効果が出る。
・Empty Data Compress
・No Event Compress
・All Move Offsets
・Move for In Sub Routine

・メインタブ Data
・サブタブ DataOffset
BrawlBox0.67bなどでDataを表示した場合とだいたい同じ。

・サブタブ Data Table
OpenSAでのみ確認できるリスト。右クリックメニューからOffsetを確認できる。

・サブタブ External Subroutines
OpenSAとBrawlBoxで確認できるリスト。右クリックメニューから追加や削除が可能。

イベント編集画面での下のAddなどのボタンについては、PSA2.70とほぼ同じ。
CopyとPasteはクリップボード式になっている。
Modifyの動作も、Pasteの動作もPSAとは違う。

・イベント編集画面での右クリックメニュー
No Select... リスト内のイベントのすべてを選択解除
Select All... リスト内のイベントのすべてを選択状態にする
Offset View... Offsetを確認できる。イベントを何も選択していない場合はイベント数を確認できる。
Open Sub Routine... Sub Routineを指定してあるデータがある場合に便利。Offsetを入力するのを飛ばして即データを表示できる。
Refresh...イベントが表示されていない場合、またはFADEF00Dでデータが始まっている場合に、Offsetを0にして容量を減らすことができる。
また、イベントの途中にFADEF00Dがある場合にFADEF00Dを削除したり、バグの修正やエラーの表示を行ったりする。
Copy Text... 選択した項目のテキストをコピーする。通常のコピーとは違って、改行あり。字下げした分の空白もコピーされる。
Move Offset... Offset値の小さい場所に移動できる場合、移動する。選択しているかは関係なしに、パラメータも全て移動できる場合は移動する。v0.24からは選択した箇所だけOffset値の小さい場所に移動させることができるようになった。逆に選択した個所をOffset値のより大きい場所に移動させることもできる。これらを上手く使えばより確実な圧縮ができるかもしれない。
Set External... 既存のExternal Subroutineを設定できる。No Selectを選ぶと解除できるが、Removeで消した方がはやい。
Offset InterLock... Offset値が変わる操作をしたときに動作する。編集してOffsetが変わった時に、同じOffsetを指定したものが連動して動く。クリックで機能のON、OFFが切り替わる。

イベント編集画面での右クリックメニューのMove Offsetと、CompressタブのMove All Offsetsの動作で違うところ
・動かすデータの量(Move Offsetは1つのリスト内すべて、Move All OffsetsはSub Routineで指定されたアドレス内(Externalは無視)を含むすべてのSubActionsまたはSpecialsリスト内すべて)
・イベント数が空の場合の動作(Move Offsetは消すが、Move All Offsetsは消さない)
・移動量(Move All Offsetsはイベントが一定以上前に進まない場合、動かない。)
Move All OffsetsはSubRoineの中にSubRoutineがあってもそこを動かしますが、限界があります。

・イベント編集画面のCopyボタン上での右クリックメニュー
Copy Routine... EventsタブのSpecialsかSub Actionsでは、Sub Routine: Sub Action (0 Main) といった感じのものをコピーできる。編集中にOffsetが変わっていてもわざわざコピーし直さずにそのままペーストが使えるという利点がある。
Selected Parameter Equalize... パラメータのあるイベントを2つ以上選択することで使える。
選択したイベントの選択したパラメータを、選択されているものの中で一番上にあるものと同じ値にする。
複数の異なるイベントの値を編集することもできる。説明文は一番上のものが表示される。
パラメータ数の違うイベントのパラメータ値を同じにすることも可能。
まとめて同じ値にできるパラメータの数は、選択したものの中で一番パラメータ数の少ないものと同じになる。

・イベント編集画面のPasteボタン上での右クリックメニュー
Paste to Multiple Sub Routine... 範囲を指定してまとめて同じデータ(Sub Routineのみ)をペーストできる。Eventsタブのみで動作する。Sub Routionesタブ上では動作せられない。通常のペーストと異なり、ペーストされたデータは一番上に行く。クリップボードにあるデータがペーストできないデータであっても動作させることができるが、通常ペーストするサブルーチンのデータをあらかじめクリップボードにいれておけば、サブルーチンの値を間違えることを防ぐことができる。また、まとめてペーストされる場所は現在選択している場所に依存するので、こちらの注意も必要。(まとめて消す機能はない)書き込みは1000行まで可能。

サブアクションのAnimation Flags上での右クリックメニュー
Flags Form Animation... チェックを入れるとAnimation Flagsのフォームでアニメーションを編集可能。ここでアニメーションを編集してDoneをクリックした場合、Enterを押さなくても変更が確定される。

メインタブEventsのサブタブSub Routinesタブ上でCreateの隣のボックス上での右クリックメニュー
Reset / Generate Sub Routine Data ...リストの削除と検索を行う。下のリストからHistoryを選んだ状態の場合はリストの削除のみが行われる。どの様な動作をするかは、このすぐ下のリストから選択できる。
・History... 履歴の表示。ミス検索でも、履歴は残る。表示数の上限は未設定。Reset / Generate Sub Routine Dataをクリックすると履歴を消せる。リストでこれを設定していない限り、履歴の表示と追加はできない。
・Using Events Sub Routines... Action 、Sub Actions、OverrideからSub Routineとして使われているデータだけをすべて表示する。
・Using Events Sub Routines All... Specials 、Sub Actions、OverrideからSub Routineとして使われているデータだけをすべて表示する。こちらは上のものとは違って、別のSub ActionのOffsetなどをそのまま指定しているデータも表示される。
・Using Article Events Sub Routines... 全てのArticlesからSub Routineとして使われているデータをすべて表示する。別のSub ActionのOffsetなどをそのまま指定しているデータも表示される。
・Using All Sub Routines... Action 、Sub Actions、OverrideからSub Routineとして使われているデータだけをすべて表示する。Articleのみ、他のArticleの場所で使われていてもすべてそのまま表示される。
・Using All Sub Routines All... Action 、Sub Actions、OverrideからSub Routineとして使われているデータをすべて表示する。別のSub ActionのOffsetなどをそのまま指定しているデータも表示される。
ちなみに、どれもGo toループは対象外。
・Search Compress Blocked Sub Routines... 圧縮の妨げとなっていると思われるデータを表示する。ただし、おかしい値のデータを読み込むことがよくあるので、注意が必要。特に、PSAでアニメーション名称を編集したファイルの場合は、CompressモードのSubAction Name Compressを使っていないとバグ表示が出やすい。

Sub Routine List Count View... リストに表示されている項目数を上に表示する。
Sub Routine List Sort... 値をOffsetの小さい順に変える。513項目以上だとこのときに古いものから削除される。
Using Data Trace... Offsetとして使用している個所を検索する。SubRoutineなどとして見つかった場合、Createの右下のリストにまとめられる。Full Data Traceと同じ処理をした状態で表示される。
Sub Routine Full Data Trace... 途中からOffsetを指定してSub Routineを指定して表示している場合、すべてを表示する。ただし、途中で値がおかしいものが設定されている場合などで、うまく動作しない場合がある。
Search Same Data (Not Full)... 現在開いているOffsetの順番とパラメータを含めた全てのイベントと同じデータがどこかで使われているかを検索できる。結果はCreateの右下のリストにまとめられる。Full Data Traceのような処理はされないため、途中からの表示になる場合がよくある。
Search Same Data... 現在開いているOffsetの順番とパラメータを含めた全てのイベントと同じデータがどこかで使われているかを検索できる。結果はCreateの右下のリストにまとめられる。Full Data Traceと同じ処理をした状態で表示される。
Search Perfect Matching Data... 現在開いているOffsetのイベントデータと完全に全く同じデータがどこかにあるかを検索できる。結果はCreateの右下のリストにまとめられる。Full Data Traceと同じ処理をした状態で表示される。
Compress Same Data... 現在開いているOffsetの順番とパラメータを含めた全てのイベントと同じデータがどこかで使われているかを検索して、同じデータをすべてサブルーチン化する。Same Data Compressとは異なり、サブルーチン内やArticlesのデータにも効果がある。ループ化もするが、Asynchronous TimerをSynchronous Timerに変えたりはしない。イベント数が2つ以上、またはパラメータが2つ以上あるイベントがあれば動作する。(無駄に容量を増やさなくするためにこうなっている)

メインタブEventsのサブタブOverrideタブ上でListの隣のボックス上での右クリックメニュー
Edit, Add... オーバーライドするAction IDの変更、ができる。最大500までだが、通常のAction数は300もないので気にする必要はない。名称の変更、追加、削除も可能。
Remove... オーバーライドするAction IDの削除を行う。消す前にイベントがあれば、削除も行う。2つ以上ある時のみ有効。
Move Up... データを移動する。2つ以上ある時のみ有効。
Move Down... データを移動する。2つ以上ある時のみ有効。

パラメータ上での右クリックメニュー
右クリックメニューからその行のIntとFloatの型を入れ替えることができる。
Change Int Float... Int型とFloat型を入れ替えて表示する。
Hex View... 16進数表示とInt型、Float型表示を入れ替える。Change Int Floatとは違い、すべてのパラメータの表示が変わる。
メインタブArticlesのサブタブParameters上だけにあるもの
Open Params Offset
テキストボックス... 開きたい場所を入力する。
Open Address... テキストボックスに入力したアドレスを開く。
Open Offset... テキストボックスに入力したOffsetを開く。
<Select Size>... 開くパラメータの最大サイズを選択できる。

サブタブData Table上での右クリックメニュー
Offset View... データの指定しているOffsetを表示する。
Copy Text... 登録された名称データをクリップボードにコピーする。新しくExternal Subroutineを追加したい場合、これを使えば簡単にFighter.pacから必用な文字列データを持ってくることができる。

サブタブExternal Subroutine上での右クリックメニュー
Add... 新しくExternalのデータを作る。
Remove... いらないデータを削除できる。一応、使われているものを消す前には注意表示が出るようになっている。
Rename... 登録されているデータの名称を変える。
Move Up... データを1つ移動する。
Move Down... データを1つ移動する。
Offset View... データの指定しているOffsetを表示する。FFFFFFFFの場合は未使用のもの。
Copy Text... 登録された名称データをクリップボードにコピーする。

-テキストファイル-
-Dataフォルダ内-
Attributes.txt
これがあるとAttributesタブでパラメータの説明を表示できる。
先頭に*があるかどうかでIntとFloatの型か判定しているので表示を切り替える場合はここを変更する。
テキストファイルがなければデフォルトの状態でIntとFloatの型がセットされる。説明は"No Description Available." (説明なし) しか表示されない。

EventListView.txt
イベントのパラメータの表示方法を決めるテキストファイル。パラメータの表示方法をカスタマイズできる。
まず表示方法を変えたい8桁の16進数数値を書き込み、その下の行に値を入れる。
値と効果について
0 - イベント本体のすぐ後ろにくる": "を表示されなくする。これ以外は他と組み合わせられない。
1 -中に文字を組み込んで1文字ずつ順番に表示することができる。数値の表示は\X(16進数)、\D(10進数)、\H(16進数前4桁/後ろ4桁)。\H以外はValue以外の値が出てきたときは普通に表示される。\Cは数値ではなく比較記号になる。
C - 中に文字を組み込んで指定した個所の値を表示することができる。\Xまたは\Dの後には2桁の10進数数値を入れる。この2桁でどこを表示するかを決める。\Hの後には4桁の10進数数値を入れる。前2桁はどこを表示するか、後ろ2桁はどの桁を表示するか指定できる。02なら先頭2桁、48なら後方4桁を表示できる。ちなみに表示できるのは2桁区切りに2桁か前方または後方4桁の場合のみ。
V - 値完全に文字のみに変えたい時に変えるバリエーションが豊富といった時に使える。表示方法を変えたい8桁の16進数値の後ろに"-"を入力。その後ろに文字を入れるだけ。XDefault-を入れるとそれまで入れた値のどれでもない場合に読み込み、そこで指定した値が表示される。値を表示する際に\Dと\Xも使用可能。(\Hは使えない)

Events.txt
イベント本体の表示方法を決めるテキストファイル。PSAに使われているものと同じ。これがない場合は下部のテキストに説明が表示されず、すべてのEventが16進数で表示される。さらにイベントを変更するフォームのリストが空になる。
8桁の16進数数値を書き込み、その下の行にイベント名、さらにその下の行にイベントの説明、さらにその下にパラメータのタイプのデフォルト値を1行いれてこれで1セットとなる。1セットごとに読み込むため、こうしないと変になるので注意。

Parameters.txt
編集時のフォームで使用されるテキストファイル。パラメータの詳細などを表示できる。
構成は8桁の16進数数値、1つめのパラメータの名称、1つめのパラメータの説明、2つめのパラメータの名称... といったようになっている。しっかりこうなっていないと表示が変になるかもしれない。
もちろん、ここにパラメータ数0のものを書き込んでも無意味なので注意。

Requirements.txt
Requirementsを表示方法を決めるテキストファイル。0~7Fと270F~2725の表示方法を変えられる。
順番になっている。行数を減らしたり増やしたりすると読み込まなくなる可能性があるので注意。

また、この中でEvents.txt、Parameters.txt、EventListView.txtの3つは
PSACompressor用テキスト修正アプリを使えば、ある程度自動で修正・無駄の削除をしてくれるので便利。

-CharSpecificフォルダ内-
※BrawlBox0.67bとは違い、Dataフォルダ内に入れても読み込まないので注意。
また、テキストファイルもBrawlBox0.67bのものとは全くの別物。
1行目に"DataSize0x"の後に16進数がくるところから始まる。こうなっていない場合、ファイルは無視される。
その下に3桁の16進数、スペース、"Params"または"Article"、その次に略称、スペース、0x16進数データサイズというつくりになっているデータがいくつか存在する。記入にミスがあると、うまく読み込めない可能性あり。
この3桁の16進数は4で割り切れる数字で昇順になっていないとうまく読み込まない。
略称は次にスペースがくるまで。ArticleIDのリストにも略称が表示されるので分かりやすい名前にしておくのもいい。
またここでParams同士またはArticle同士で同じ略称を使ってしまうと、うまく読み込めなくなるので注意。
このリストが終わると、この後にParamsとArticleの情報を記入する。
Paramsはパラメータリストが存在する場合はその下のデータがパラメータリストに表示される。
パラメータは構造がAttributes.txtと似ている点があるが、こちらのものは1文字と空行は無視して読み込まれるので注意。
アーティクルは最初と似たつくりになっているがここではArticleは追加できない。その代わりSubActionが追加表示できる設定ができる。
また、アーティクルはArticle略称のすぐ後に16進数Action数-16進数SubAction数が設定できる。ここで設定しないとActionとSubActionは全く表示されないので注意。ここは"-"を入れて必ず7行以下である必要がある。
それぞれ、間違った値を書き込むと表示エラーにつながるので注意が必要。
パラメータの説明はOPENSAのArticle Floating Pointsに書かれている。これに合わせたい場合はCharSpecificParamsAsWriterという専用のソフトを使うと楽。ただし、説明にオフセットが書かれていたりする場合があるので、その時は自分でテキストファイルを編集しないといけない。
プロフィール

ICLPX

Author:ICLPX
主にスマブラXの改造をやっています。
更新ペースはその時によってバラバラです。
質問などがあれば気軽に書き込んでください。
かなり過去に書いた記事も更新することがあります。

最新記事

最新コメント

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

この人とブロともになる

QRコード

QR