妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

SpriteStudioのデータをUE4で使う方法(関連ファイルとアセットの取り扱い)

妹「UE4で動かしてるアニメーションって、sspjとかのファイルと連動してるの? sspjファイルを修正したらアニメーション変わるとか、消したらアセットの方もなくなるとか」

「そういう風にはならない。アセットとして追加した時点で画像もアニメーションも別のファイルになってるから。だから修正した場合は読み込み直さなきゃいけなくて、その時はSsProjectのアセットを右クリックすると出てくるReImportを使う」

f:id:una_unagi:20151230222704p:plain

「途中でテクスチャを上書きするかどうか聞いてくるから、上書きしないとテクスチャの方は反映されない」

妹「そんなの上書きするに決まってるのでは? 修正したいからReImport押したんだし」

「そうなんだけど、例えばSpriteStudioの方で新しいテクスチャを追加してて、それと同じ名前のテクスチャがたまたま同じ場所にあったりすると困るからじゃないかな。テクスチャは別にSpriteStudio専用形式じゃないから、他のかどうかを自動的に区別が出来なさそう。基本的にはSpriteStudio以外のデータは同じフォルダに入れないようにして、全部上書き出来るようにしておくのが楽だと思う。テクスチャとsspjを別のフォルダに移すのとかもやめといた方が良さそう」

妹「これsspjファイルをもう1回ドラッグするっていうのは駄目なの? 最初に追加した時と同じパターンで」

「それで上手くいくアセットもあるけど、SpriteStudioに関しては絶対駄目。上書きするか選べるのはSsProjectだけで、テクスチャは別の名前になってしまって、データがごちゃごちゃになる」

妹「ひぇぇ……そんなことになったらどうしたらいいのか」

変になったら無理にテクスチャだけ直そうとせずに、いったんSsProjectを消してから、テクスチャも消して、最初からやり直すのがいいと思う」

妹「同じファイルを読み込み直す場合はReImportでいいとして、別のファイルの場合はどうするの? 別のSsProjectとして作るの?」

「それはSsProjectをダブルクリックして出てくる画面で、ReImport > ImportSettings > Source の欄で、新しい読み込み先ファイルを設定できる」

f:id:una_unagi:20151230224428p:plain

「この仕組みはSpriteStudioプラグインだけじゃなく色んなアセットで使われいて、例えば普通のテクスチャ画像もこの方法で読み込み直しが出来る。日本語版だとReImportじゃなく再インポートになってるけど」

妹「なぜこっちだけ日本語に……」

「あと今回SpriteStudio関連のファイルを色々触ってて一番やばいと思ったのはテクスチャで、SsProjectだけ保存して、テクスチャファイルは保存しない状態でプロジェクトを閉じたら駄目。コンテンツブラウザで*マークが付いた状態。この状態で閉じると次に開いた時にSsProjectから画像を読み込もうとしてクラッシュするんだけど、プロジェクト開いた瞬間にクラッシュするから直せないという恐ろしい事態になる。結果を保存しなくてもいいなと思ってつい保存せずに閉じちゃうことがあるけど、ちゃんと保存して削除するのが安全」

妹「も、もし保存せずに閉じてしまって、クラッシュの無限ループになったら……?」

「一応Contentフォルダにある、SsProjectのuassetを消せば、プロジェクトは開けた。アセットがないっていう警告が出るけど、クラッシュはしないから、アウトライナからSsPlayerActorとかを消して対処が出来る。ただ世の中にはもっと安全でいい方法があるのかもしれない」

妹「じゃあ絶対に助からないというわけではないのか」

「あと、テクスチャ画像とsspjのファイル名は別にしておいた方が良さそう。同じでも使えることは使えるんだけど、最終的にどっちもアセットファイルになるから、同じ名前だと内部的にややこしいことになるみたい」