3D謎解きゲーム『Prison Dream(プリズンドリーム)』のトレーラー動画を作ってみた!!
昨年の2月ごろに「Brackeys Game Jam 2022」という海外のゲームジャムで作成したゲームをスマホ用に修正して、リリースしようとしているんですが、その宣伝のためのトレーラー動画を作ってみました!今月(2023年1月)にはGoogle PlayとApp Storeでリリースしたいと思っています!!
=== ゲームの概要 ===
『プリズンドリーム』は、謎解きと探索が楽しめる3D謎解き脱出ゲームです。操作は指1本でスワイプとタップだけ。画面をスワイプすることで、視点を動かすことができ、いろんな場所に隠されたアイテムの発見を楽しめます。8つの場所を移動することができ、3D空間が、より一層謎解きに臨場感を与えてくれます。あなたはこの不思議な施設から脱出できるだろうか?
=== ゲームの要素1 ===
いろんな場所にいろんなアイテムが落ちていて、「探索する楽しさ」と「謎を解く楽しさ」を追求しました。あるアイテムが別のアイテムのヒントになっていたりして、複雑な謎解きを楽しめます。
=== ゲームの要素2 ===
単純なモノ探しゲームではなく、暗号を解読して、新たなアイテムをゲットするギミックがあります。
=== ゲームの要素3 ===
ハイクオリティな3Dグラフィックス。スマートフォンでもサクサク動くように、より臨場感を高めるリアルな表現を追求しつつも、描画負荷を低減。
=== SPEC ===
ゲームタイトル:プリズンドリーム(Prison Dream)
ジャンル:3D探索型謎解き脱出ゲームApp Store ダウンロードページ:プラットフォームごとにURLを入れてください。
Google Play ダウンロードページ:プラットフォームごとにURLを入れてください。
価格:無料
課金要素:なし
対応OS:iOS , Android
UnityのAndroidビルドでTarget API Levelを31にしたらエラー出まくったときの対処法!!
基本的なGoogle Play Consoleへのアップロードの手順は以下のURLを参照させていただきました。
https://tukikusa.hatenablog.jp/entry/2022/03/24/180000
恐らく何も問題なければ上記のURLの手順通りにアップロードすればリリース完了となり、すんなり行くと思って安心していたら、最後の最後でApp Bundleをアップロードしたときにエラーが発生!何回通り超えないといけないハードルがあるのか。。。以下のようなエラーメッセージが出ます。
以下に、私が対処した方法をメモしておきたいと思います。
ちなみに、対処法は使っているUnityのバージョンなどによって変わってくるので、開発者全員に共通した方法ではないと思われます。(これがまたやっかいなところ)
また、Unityバージョンが「2021.3.14f1」の場合は何もエラーも出ずにビルドできた。比較的新しいバージョンのUnityでは以下の対策は何もしなくてもいいような気がするので、一番手っ取り早いのは、開発しているプロジェクトのUnityバージョンを上げてしまうことかもしれないが、ゲームが正常に動かなくなるリスクもあるので、バージョンを上げたくない場合は以下の処理が必要になる。
【開発環境】
Unity2020.3.4f1
【対処した方法】
①個別にGradleのダウンロード
②Custom Base Gradle Templeteを使用
③baseProjectTemplete.gradle内を編集
④keystoreを再生成
⑤CustomMainManifestを使用
【対処法の詳細】
①Gradleの公式ホームページからGradleを個別にダウンロードしてくる。
https://gradle.org/releases/
ここで、必要なバージョンがあるらしく、私は「6.1.1」をダウンロードしてきた。
最新だったらいいというわけでもないようだ。
(この必要なバージョンは各人で異なる可能性がある。)
- 参考URL
https://rarafy.com/blog/2021/08/24/unity-gradle-error/
そして、上記の参考URLの通りに、ダウンロードしてきたGradleをUnityをインストールしているフォルダの中の指定の場所に配置して、Unity内のPreferenceでそのGradleの場所を手動で設定する。
②以下のURL内の対応策3を参考に、Custom Base Gradle Templeteを使う設定をする。
- 参考URL
https://qiita.com/warapuri/items/17721b113be8c44e5369
③classpathのところも②の参考URL同様で「4.0.1」にする。
④keystoreを再生成する
生成方法は、本記事の一番上で紹介したURLにやり方が書いてありますので参照ください。
https://tukikusa.hatenablog.jp/entry/2022/03/24/180000
そして、何故再生成するかですが、よくわからないのですが、APIレベルを上げてビルドしたときにエラーとしてkeystoreが古い?かパスワードが一致しない?みたいなエラーメッセージがUnityのログに表示されたためです。(当然エラーなのでビルド失敗)
推測ですが、keystoreの中にAPIレベルの情報なども入っていて、Target API Levelと一致しないといけないなどの制限があるのかもしれません。
とにかく、再生成したところ、このエラーは無くなりました。なお、新規作成する場合は再生成は関係なく、新規作成するだけでOK。
⑤AndroidManifest.xmlを生成してファイル内を編集する。
以下のURLを参照し、その通りに直します。
- 参考URL
https://www.hanachiru-blog.com/entry/2022/02/10/120000
実は、この対応はAPI Levelを31に変更することと関係は無いようです。
④まで対応すると恐らくビルドは成功し、アップロードもできるのですが、アップロードすると「’android:exported’ プロパティ セットは使用されていません。」というエラーが発生します。このエラーを解除するために⑤の対応を行います。
とりあえず、上記①から⑤の処理を行うことでビルドが通り、アップロードも成功しました。
以下、Unity内のビルド関連のもろもろの設定を貼り付けておきます。
いきなりUnityでAndroidのプラットフォームでビルドが出来なくなった!!
特に何もしていないのに。
エラーとしては以下のようなエラーだった。
Gradle build failed. See the Console for details.
つまり、詳細はコンソールを見ろとのことなので見てみた。 うむ。全くわからん!!
とにかくわからないので、空のプロジェクトを作って、Androidでビルドしたら、やはり上と同じエラーが出てビルドが出来なかった。
つまり、プロジェクトの中身は関係なく、Unityがビルドできなくなっていることが判明。
そして、試しに、別のUnityバージョンでビルドしたら、ビルドできた!!
つまり、「Unity2020.3.2f1」のバージョンでだけAndroidでのビルドが出来なくなっているっぽいのだ!!
■対処法
もう何が原因か分からないので、とりあえず近いバージョンということで、「Unity2020.3.4f1」にプロジェクトを変更して、このバージョンでビルドしたらできた!!
結局原因はわからないままだが、バージョン変えて動いたので深く考えないことにした。