ワイヤード・パンチ

そろそろ過去記事の整理をする予定。

SB3UtilityでAnimatorのデータが削除できないことへの対処法。

コイカツでMODを作るうえでは必ず使うことになるであろう、SB3Utility。

もとからあるunity3dをコピーして、それをもとにデータを書き換えていくことが多いと思いますが、今作ろうとしているものと関係ないデータは削除しておきたいところ。

でも、Animatorというタブの中にあるデータは、どういうわけかremoveを実行しても削除することができません。

広告

Animatorを削除しようとしたときの挙動。

コイカツで、既存コーデのテクスチャだけを張り替える、コーデMODの作り方。

前回の記事にて、チアトップスの改造品を作ったので、そのチアトップスが入っていた「abdata/chara/co_top_00.unity3d」を開いてみます。

Animatorタブを開くと多数のデータが存在していますが、チアトップスに関係あるのは「p_o_top_cheer」およびそれに「_low」がついたものだけです。

その他のデータを残しておくと容量を圧迫してしまうので、削除したいと思いました。

というわけで、削除したいデータを選択した状態で、「Assets」→「Attention!」→「Remove」を実行します。

(余談ですが、いちいちAttentionに分けてるのがめんどくさい。ショートカットコマンドもなし。)

しかし、Removeを実行しても「Removing Animators is not implemented yet.」というエラーがログに表示されて、削除を実行することができませんでした。

この英文をそのまま翻訳にかけてみると「アニメーターの削除はまだ実装されていません。」という結果が表示されました。

つまり、現状ではどうあがいても、Animatorの中のデータは一度作られると削除できないようです。

それじゃ、このままデータを圧迫したまま泣き寝入りでしょうか?

空のファイルにコピーする。

Animatorの削除もできなければ、SB3utilityではunity3dの新規作成をすることもできません。

そこで代わりとなる方法として、Animatorが何もないファイルに、必要なデータだけコピーするという方法があります。

まずはAnimatorがないファイルを何か探しましょう。

charaフォルダの中のunity3dではたいていAnimatorが入っているので、listフォルダからunity3dをコピーしていきます。

今回はlistフォルダの「00.unity3d」をcharaフォルダにコピーして、「test.unity3d」に改名します。

listからコピーしてきたファイルを開くと、そもそもAnimatorが存在していないので、削除できないことに悩まされることがありません。

Animator以外のデータはありますが、それは全くいらないので、全部removeしてしまいます。

次に、必要なデータを、実質空となったtest.unity3dにコピーする作業を行います。

コピー元となるファイルのAnimatorタブから、必要なデータを選択して「Assets」→「Mark for Copying」を実行します。

もう一度コピー先のファイルに戻り、「Assets」→「Paste All Marked」を実行します。

すると、Animatorだけでなく、そのデータと関連する他のタブのデータも、自動的に貼り付けすることができました。

これで、実質空のファイルにデータをコピーしたことにより、余分なAnimatorを取り除くことができました。

なお、先程のコマンドで必要なデータをすべてコピーしてこれるとは限らないので、その都度選択するデータを切り替えてコピーを実行しましょう。

ただ、もし貼り付けを実行して余分なAnimatorがついてきてしまっても、削除することはできないので、事前に保存して復旧できるようにしておきましょう。