パッケージ化
パッケージ化ってだいたい最初は失敗しますよね。
そしてエラーログの意味がよくわからなくて絶望する。
ググっても日本語の情報があんまりなくて英語のアンサーハブをなんとか読んで、解決することもあればしないこともあり、これは無理なんじゃないか?と思ってるとなぜかパッケージ化成功とか…
というわけで今回は今作っているゲームのα版パッケージ化でつまずいたところを書いていきます。(もう2か月前のことかー)
ダメだ…、このプロジェクト、破棄しよう…
仕切り直し。
バックアップからクローンを作成してパッケージ最初からやり直し。
ディレクトリ名が長いのは
C:\Users\XXXX\Documents\Unreal Projects
にプロジェクト作ってるため、出だしから既に長いので、もっと浅いディレクトリにプロジェクトを作ることにしました。
絶望しつつググってみるとアンサーハブにあった!
英語だ…(あたりまえ)
そうだそのままページを翻訳してみよう。
内容は
エラーの文章のとおりやってみろよって書いてある。
エラーの文章は
---
DefaultEngine.iniにEngine.RecastNavMeshがあるけど、そいつはもう使ってないクラスだぜ、NavigationSystem.RecastNavMeshに書き換えてくれよな。
---
英語だ!ってパニくってましたが冷静に読めば簡単な内容でしたねw
ということでプロジェクトのフォルダのConfigに入ってるDefaultEngine.iniを開くと確かにEngine.RecastNavMeshが書いてありました。
でもNavigationSystem.RecastNavMeshの項目もある。
バカ正直にEngine.RecastNavMeshを書き換えるとNavigationSystem.RecastNavMeshが2つになっちゃうよね?
ダメだよね?
よし消しちゃおう。
ということでEngine.RecastNavMeshの項目を消しました。
エディターのプロジェクト設定のところで設定したものがDefaultEngine.iniに書き込まれてるってことだと思うので、
だとすると、たぶん古いバージョン(4.19以前?)でNavMeshに関して設定を変えたけど新しいバージョン(4.20)でもNavMeshの設定を変えてDefaultEngine.iniの中に2つ項目が出てきちゃったってことですかね?
確かにNavMeshの設定でRuntimeGenerationをDynamicに設定変更してたり色々いじりました。
GameModeとGameInstanceの指定が全然違う!
エディターのプロジェクト設定の指定では正しいファイル名になってるんだけど、なぜ??
謎だけど、とりあえず正しいファイル名に直そう。
DefaultEngine.iniを直に直すよりも根本治療ということで、エディターのプロジェクト設定でGameModeとGameInstanceを全く別のファイルに指定してから1回プロジェクトを起動しなおして正しいファイルを指定してみると、DefaultEngine.iniの中身も正しくなった!
めでたしめでたし。
(この後、ファイルサイズが3GB越えで、容量を減らすのが大変だったのはまた別のお話)
そしてエラーログの意味がよくわからなくて絶望する。
ググっても日本語の情報があんまりなくて英語のアンサーハブをなんとか読んで、解決することもあればしないこともあり、これは無理なんじゃないか?と思ってるとなぜかパッケージ化成功とか…
というわけで今回は今作っているゲームのα版パッケージ化でつまずいたところを書いていきます。(もう2か月前のことかー)
パッケージ化について書いてあるサイトを参考に(皆さんありがとうございます!)
容量圧縮方法を試みながらおもむろにパッケージ化してみる。
↓
失敗!
ですよねー。
エラーログにディレクトリー名が長いからアカンと出てる。
わかりやすいエラーで助かった!と思いマケプレで買ったローディングシステムのやつのフォルダ名とかをリネームしてみる。
↓
失敗!
というか、なんかさっきリネームしたフォルダとリネームしてないフォルダが両方あるんですが…、大丈夫なんでしょうか??
そうこうしているうちに、なんか消したはずのフォルダが出てきたり、そこに入れてないはずのファイルが入ってたり入ってなかったり、どんどん泥沼にはまっていって…
ダメだ…、このプロジェクト、破棄しよう…
仕切り直し。
バックアップからクローンを作成してパッケージ最初からやり直し。
ディレクトリ名が長いのは
C:\Users\XXXX\Documents\Unreal Projects
にプロジェクト作ってるため、出だしから既に長いので、もっと浅いディレクトリにプロジェクトを作ることにしました。
さておもむろにパッケージ化
↓
失敗!
ですよねー。
さっきも出てたかもしれないエラー。
[Script/Engine.RecastNavMesh]found in the DefaultEngine.ini file.This class has been moved.Plaese rename that section to[/Script/NavigationSystem.RecastNaviMesh]
だと?
英語だ…(あたりまえ)
絶望しつつググってみるとアンサーハブにあった!
英語だ…(あたりまえ)
そうだそのままページを翻訳してみよう。
内容は
エラーの文章のとおりやってみろよって書いてある。
エラーの文章は
---
DefaultEngine.iniにEngine.RecastNavMeshがあるけど、そいつはもう使ってないクラスだぜ、NavigationSystem.RecastNavMeshに書き換えてくれよな。
---
英語だ!ってパニくってましたが冷静に読めば簡単な内容でしたねw
ということでプロジェクトのフォルダのConfigに入ってるDefaultEngine.iniを開くと確かにEngine.RecastNavMeshが書いてありました。
でもNavigationSystem.RecastNavMeshの項目もある。
バカ正直にEngine.RecastNavMeshを書き換えるとNavigationSystem.RecastNavMeshが2つになっちゃうよね?
ダメだよね?
よし消しちゃおう。
ということでEngine.RecastNavMeshの項目を消しました。
エディターのプロジェクト設定のところで設定したものがDefaultEngine.iniに書き込まれてるってことだと思うので、
だとすると、たぶん古いバージョン(4.19以前?)でNavMeshに関して設定を変えたけど新しいバージョン(4.20)でもNavMeshの設定を変えてDefaultEngine.iniの中に2つ項目が出てきちゃったってことですかね?
確かにNavMeshの設定でRuntimeGenerationをDynamicに設定変更してたり色々いじりました。
さておもむろにパッケージ化
↓
成功!?
パッケージしたゲームのデバッグ方法がわからず途方に暮れるも、さっきのDefaultEngine.iniが怪しいんじゃないかと中を見直してみると
ついに成功かと思ったけど、ゲームを起動するとなんか挙動がおかしい。
GameModeとGameInstanceの指定が全然違う!
エディターのプロジェクト設定の指定では正しいファイル名になってるんだけど、なぜ??
謎だけど、とりあえず正しいファイル名に直そう。
DefaultEngine.iniを直に直すよりも根本治療ということで、エディターのプロジェクト設定でGameModeとGameInstanceを全く別のファイルに指定してから1回プロジェクトを起動しなおして正しいファイルを指定してみると、DefaultEngine.iniの中身も正しくなった!
さておもむろにパッケージ化
↓
成功!!
今度こそちゃんとパッケージ化されました。めでたしめでたし。
(この後、ファイルサイズが3GB越えで、容量を減らすのが大変だったのはまた別のお話)
コメント
コメントを投稿