App Store Connectを網羅!! -UEゲームをiOSに出そう!後編-
皆様、アンリアルエンジンでモバイルゲームは作っているでしょうか?私もUE4歴が2年をこえ、Android,iOSにアプリを3本出すことができました(もちろんクソゲーであるが)。
ということで今回は本当に初見の時に挫折しそうになった
UEアプリをiOSに公開する!後編
をやっていきたいと思います!
↓前編はこちら↓(実はこっちの方が初見の時大変やった)
今回はApp Store Connectの↓サイト↓から作業を進めていきますよ〜
https://appstoreconnect.apple.com
サイトを開いたら、MyApp、Appアナリティクス、etc...があると思いますので、MyAppを開きましょう!
そうしたら、画像のような画面になるかと思います。初公開の方の場合は真っさらな画面ですかね。
そうしましたら、Appの右にある+を押し、新規Appを選択しましょう!
新規Appをクリックすると、このような画面が出てくると思いますので、画像のように記入をしていきましょう!プラットフォームは、基本はiOSにチェック。名前は後からでも変更できますが、この名前が、AppStoreに公開した時に表示される名前となりますので、分かりやすく、検索されやすいキーワードを入れると良いかもしれません。
プライマリ言語は日本語にします。バンドルIDは、前編で作ったやつですね。作ってあれば、バンドルIDをクリックした時に選択肢として出てくると思います。バンドルIDがなかったらそもそも選択肢として何も出てこないと思います。SKUはよう分からんけど英語で自分のゲームの名前入れときました。ユーザーアクセスに関しては、制限なしを選びました。
それでは作成しましょう!
1.0提出準備中
作成を押すと、色々設定が必要そうな画面が表示されましたね!おめでとうございます!
まず画面にスクショの画面がありますが、一度飛ばしてプロモーション用テキストから埋めていきたいと思います!(スクショを先に埋めても構わない)
プロモーション用テキストとは、アプリ説明欄の「さらに表示」を押さなくても表示される、かなり大事な短文です。上の写真では、「単純操作のミニゲームを4つ収録!ランキング上位を目指して頑張ろう!」と書いていますが、下の写真では「極めろ、暇つぶし」となっていますね、これはただ私が、アップデートを繰り返していく中でキャッチフレーズを変えただけでございます。
概要とは、本格的なアプリの説明欄です。長いので、あまり見る人はいないかもしれませんが、妥協せず、ルール説明など、細かく書きましょう。かくキーワードによって、検索に引っかかるかも!?
キーワードは、その名の通りキーワードをぶちこみましょう。
サポートURLは、自分のプライバシーポリシーを記載したサイトのリンクを貼りましょう。
マーケティングURLは、今回はスルーしますが、広告をつける際のapp-ads textで重要になります。
バージョンは初回なら1.0
公開する年 組織名 Inc.
の形で入力します。
例;2022 sattsat Inc.
これでスクショ以外の「1.0 提出準備中」の設定が完了
App情報
続いて、「App情報」の入力です。名前は元から入っていますよね、先ほど、名前は変えられると言ったところはここのことです。サブタイトルとは、アプリ詳細を開いた時、タイトルの下に少し小さめに表示されるやつです。かっこいいキャッチコピーを入力しましょう。
一般情報のほとんどは元から埋まっていますね(これApple IDとか写していいのか分からんけど写しちゃってます)。
カテゴリは真剣に決めましょう。アプリが人気になったときにカテゴリ別にランキングが表示されると思います。そこでの競争相手がここで決まります多分。
その後は、コンテンツ配信権、年齢制限指定など、自分のアプリの通りに回答を入力してもらえればOKです。
Appのプライバシー
続いて、「Appのプライバシー」です。
プライバシーポリシーURLには、先ほど「1.0提出準備中」に入れたリンクと同じものを入れています。
ユーザープライバシー選択URLはよく分からないので何も入力していません。
プロダクトページのプレビューですが、広告を表示しない場合はデータの収集なしでOKです!
しかしながら、広告を表示させる場合は、トラッキングなど扱うことになるので、設定しなければなりません。私が今回出すゲームのプロダクトページのプレビューは、
ユーザのトラッキングに使用されるデータ→ID、使用状況データ
ユーザに関連つけられないデータ→ID、使用状況データ
って感じです。
Appのプライバシーから下にある「評価とレビュー」、「バージョン履歴」、「App Review」に関しましては、アプリを出す手順には関係ないので飛ばします!
サービス(ランキング機能)
画面上の項目の「サービス」をクリックすると、Game Centerの機能として、実績やランキングなどを作成できる画面となります。皆様が実装したいものはランキング機能でしょう。ランキングはリーダーボードというものを作成して作ります。今回は解説しませんが、またいつかリーダーボードに関する動画を上げたいと思います。
ランキングは、クソゲーこそ競争が重要なので、必須でしょう!
Game Centerのランキング機能を使いたくないけどランキングを扱いたい方は、PlayFabを扱ったこちらの神サイトをご覧ください。神です。
ipaパッケージ
お疲れ様でした!スクショ以外のアプリ情報の入力が完了し、あと少しのところまできました。それでは、これからはTransporterを使った、ipaファイルの読み込みを行いたいと思います!
まずは、ipaファイルを作らなければなりませんね。自分が作ったプロジェクトを開いて、パッケージをしていきます。スマホといえば容量との戦い🔥容量を小さくするモバイルパッケージ設定はこちらのサイトで行いましょう。自分のブログなんですが笑
ここでiOSの前編で作り上げた製品用のプロビジョニングプロファイルと証明書にチェックをしましょう。この作業をしないとそもそもパッケージできない感じだと思います。
パッケージ設定が終わったら、いよいよipaファイルの作成です。
ファイル→プロジェクトをパッケージ化→iOSの順番でipaファイルを作成できます。
ipaファイルの作成が終わりましたら、↓Transporter↓をダウンロードしましょう!
Xcodeでビルドする方法もありますが、ややこしいらしいので簡単すぎるこちらで😂
ダウンロードしましたら、Apple Developer programに毎年10000円払っているアカウントでログインします。
準備が完了しましたら、デリバリをしたいので、作ったipaファイルをファイルから選択するかドラッグ&ドロップして読み込ませます。
読み込みが完了したら、デリバリボタンがあるかと思いますが、そこを押す前に、
デリバリの横にある・・・ボタンを押し、検証を押して、アプリを確かめます。
その作業を経て何もなければ、やっとデリバリボタンを押せます、押しましょう。
デリバリが完了し、数分待てばApp Store Connectにも反映されているかと思います。
この時、TestFlightにて外部テストは審査が必要ですが、基本自分だけ確認することができる内部テストで挙動を確かめてみましょう。
スクリーンショット
ここにてスクショを入れます、なぜ、私がスクショを最後にしたか、それはまだスクショ写真を用意してなかったからである。
それぐらいだるいスクショは、なぜだるいのか。(語彙力皆無)
iPhone6.5ディスプレイ、iPhone5.5ディスプレイそれぞれ指定サイズが異なるんです泣
表はこちら↓
動画は諸説あり、どうぞ参考に。
そうしたら、提出してOKです!本当にお疲れ様でした!!!
この手順で公開したアプリ(クソゲー)
ADMOB GoodiesにあるBannerのSizeがどんな見た目か見てみる。
皆様こんにちは、UEモバイルゲーム開発ライフは充実しているでしょうか?笑
この記事に全く関係ありませんが、先日、なんと私のアプリ、「日常英単語」がアンリアルエンジンが提供する今週の一枚に選ばれました!!ツイートの内容も見ると、この記事を書いているノウハウのようなものを公式に認知してもらって、大変嬉しく思っております。
ランチャーの「今週の一枚」に さっとさと さん(@officialsattsat)の作品を掲載させていただきました!#UE4 製のモバイルアプリを開発・リリースされたとのことです!日々開発ノウハウも発信されていて素晴らしいです!https://t.co/56TwfUOllL
— アンリアルエンジン (@UnrealEngineJP) 2022年7月19日
「日常英単語」のダウンロードも引き続きお待ちしております🙇
それでは、本題、
UEマーケットプレイスにある、広告プラグイン。これ、実はUEモバイル開発者でお金を稼ぎたいという方には必須なんです。
一応UE標準機能で搭載されていますが、対応しているのが、Androidのみ、そしてバナー広告と、インタースティシャル広告(全画面広告)のみということで、一番売上につながる、報酬広告がないんです!!
例)広告視聴で100コインゲット!!!みたいな
それと、このプラグインはiOSにも対応しています。日本で爆売れさせたいというなら、なおさら必須でしょう!
まあ今回はバナーの話なんですけども。
今回は、こちら、Sizeのところに、
Banner
Large Banner
Full Banner
Leaderboard
Medium Rectangle
Smart
の合計六種類の形態があります。
なので、皆様の時間短縮になればと、どのような形態なのか見ていきます。
Banner
これが一番使われているであろうBannerです。
Large Banner
でかい。。。
Full Banner
びっしり詰まりすぎて端見えへんやないかい。
Leaderboard
はい、なんも出て来ませんでした、使い道が他と違うんかな?
Medium Rectangle
うん、でっかい正方形ですね。
Smart
通常のBannerと似ていますが、このバナーは横で余っているところを黒塗りしていますね、時に便利かもしれません。
考察
通常Bannerと、Smart Bannerは使えそうですね!!それ以外は、難しい!!!
iOS Distribution(製品用)の作成方法 -UEゲームをiOSに出そう!前編-
この記事をご覧になった皆様、お疲れ様です。さぞiOS実機プレイを乗り越えたり、モバイル特有の動きで大変な思いをしたことでしょう。それももう終わりに近づいています。最難関、iOS製品用の証明書を作らなければならない。本記事は、その最難関を、簡単に説明しちゃいます♪
iOS実機プレイが済んでいると少し楽です。
ステップ1- 証明書の要求
すみません、このステップ1は自分やってしまっているので文字のみで説明します。
※ステップ1はiOS実機プレイをしたことがある方は、スキップで大丈夫だと思います。
まずはMAC標準アプリ、キーチェーンアクセスを開きましょう。
そうしたら、左上のキーチェーンアクセスのメニューを開いて、
証明書アシスタント→認証局に証明書を要求を選択してください。
証明書アシスタントには以下を入力
ユーザーのメールアドレス
通称(自由な名前)
CAのメールアドレスは無記入で良いです。
要求の処理では、ディスクに保存 と 鍵ペア情報を指定にチェック
そうしたら、大事な大事な
CertificateSigningRequest.certSigningRequest
を保存しましょう!場所はデスクトップがいいんかな、わからん。
ステップ2 - iOS Certificate の作成
続いて、Apple Developerにアクセス
↑リンクを押して作業をしましょう。
Certificatesの右の+をクリック
↑のような画面が出てきます。今回は実機プレイではなく、製品版として作りたいので、
iOS Distribution
を選択して、continueを押します。
↑が出てきたら、Choose Fileの中に、先ほど文字のみで説明した
「CertificateSigningRequest.certSigningRequest」を入れます。
そしてcontinue、ダウンロードしましょう!
ステップ3 - App IDの作成
Identifiersに移動して、+を押しましょう。
一番上のAPP IDsを選択して、continue
Select a Typeが出てくるので、APPを選択して、continue。
ここが大事ですね、左側のDescriptionは重要ではない方かな、ですが、どのアプリか、簡単にわかるようにしましょう。私は、「UE4iOSGame ”アプリ名”」としました。
右のBundle IDが本題です。製品版なので、Wildcardではなく、Explicitを選択します。
私は、Bundle IDを。。。
com."組織名"."アプリ名"
としました。
例:自分の組織名がhatenaで、アプリ名をクソゲームにするなら、
com.hatena.kusogame
下のCapabilitiesは何も変更していません。
Game Centerを扱う場合はGame Centerにチェックが必要かも、
最後にRegisterを押せば完了!
ステップ4 - Provisioning Profileを作成
↑またもや+を押しましょう。
製品用なので、DistribtionのApp Storeを選択して、continue。
Select an App IDが出てくるので、先ほど作った「com."組織名"."アプリ名"」を選択して、continue!
↑ここでは、おそらく最初にダウンロードしたDistribution証明書が表示されると思われる。
押したら、continue!
そしたら、確認と共に名前を指定するところがあるので、今回私がリリースする「日常英単語」ということで名前はDailyEnglishにしました。
そうしましたら、Generateを押しましょう!
おしまい!!
とは言っても全てがおしまいではなく、UE4側で作成しなければなりません。
それは、後編という形で語ろうと思います。
とにかくここまではお疲れ様です!!
と見せかけて後編あります😂
MacでC++プロジェクト新規作成できない時の対処法
プロジェクトがコンパイルできませんでした。Xcode で開きますか?
いざ、C++を少しだけいじろうとした時、あれ、、、コンパイルに失敗!?
プロジェクトを作成するだけでエラーが出てくるとは思いませんでした。
そんな訳ですが、解決法をWebから見つけましたので、日本語で軽く紹介。
開発環境
ーーーーーーーーーーーーー
UE4.27.2
Xcode Version 13.4
ーーーーーーーーーーーーー
ステップ1
今回扱っていくMaterial.hを探しましょう!
Engine/Source/Runtime/Engine/Classes/Materials/Material.h
にあります。
ステップ2
見つけたら開きましょう。おそらくXcodeが開くでしょう。
そしたら簡単、ファイルの1279行目と1293行目をコメントアウトするだけ!!!
↓1279行目
const TArray<FText>* LayerNames = &LayersExpression->GetLayerNames();
↓1293行目
LayerNames = &LayersParameter.Value.LayerNames;
コメントアウトの仕方は、行の最初に//を置くだけでございます。
例:
// LayerNames = &LayersParameter.Value.LayerNames;
以上です!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記
今回上記の処理で解決しましたが、その前に解決しなかったものの実行したものがありました。それがもしかしたら、コンパイル成功の引き金になっているかもしれないので、そちらも紹介させていただきます。
ステップ1’
いじっていくファイル、「MacToolChain.cs」を探しましょう!
/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/MacToolChain.cs
にあります。
ステップ2’
そのファイルを開き、検索機能を使って
Result += " -Wundef" + (CompileEnvironment.bUndefinedIdentifierWarningsAsErrors ? "" : " -Wno-error=undef"); }
と検索したら、}の下から、
Result += " -Wno-deprecated";
Result += " -Wno-deprecated-declarations";
Result += " -Wno-int-to-void-pointer-cast";
Result += " -Wno-non-literal-null-conversion";
Result += " -Wno-overloaded-virtual";
Result += " -Wno-pointer-to-int-cast";
Result += " -Wno-pragma-once-outside-header";
Result += " -Wno-unused-but-set-variable";
Result += " -Wno-unused-function";
Result += " -Wno-unused-result";
Result += " -Wno-unused-variable";
を追加‼︎
インデントに注意!
}
Result += ~~~~
といった形にしましょう。
参考(そのまんま)
Unreal won't compile my project on MacOS - #2 by douglaslassance - Ask - GameDev.tv
SATTSATのゲーム一覧
暇つぶしミニゲーム!
みなさん、暇になったらこのアプリをプレイしてみませんか?
4つのちょうどいい難易度に設定した暇つぶしミニゲーム。
ランキングを搭載、総合スコアランキング1位を目指して頑張ろう!
そして、2倍速モード、あれはやばいです。
■4つのゲーム
・回避ゲーム
・ジャンプゲーム
・ダッシュゲーム
・チャリゲーム
■特徴
・簡単操作
・ランキング機能搭載
・地獄の2倍速モード搭載
■遊び方
・回避ゲーム
押すと上昇、離すと降下、上にいきすぎても、下に行きすぎてもアウト、気をつけてください。
・ジャンプゲーム
タップで上昇、うまく当たらないように調整しよう。
・ダッシュゲーム
右側タップで右に移動、左側タップで左に移動します。
・チャリゲーム
右側を押し続けるの右に移動、反対に、左側を押し続けると、左に移動します。
iOS:
日常英単語
皆様は、TOEIC、TOEFL、英検と、数々の試験に触れてきたと思います。そこで学習してきた英単語は、日常で使われますか?多くは使われると思いますが、一部は、ネイティブからしたら滅多に使わないなんてことはよくあるでしょう。義務教育では、読解をメインで行っていたと思います。そこで私は思いました。私は書くための英語ではなく、話すための英語が良いと。
そうして開発を始め、遠回りをせず、日常で話していく上で必要になる単語のみを習得できる、NGSL(New General Service List)の単語を活用した、「日常英単語」を完成させました。
4択形式で答えられる容易さと、シンプルな画面配置で、あなたの集中力をより倍増させます。
■特徴
・四択問題でお手軽学習
・学習進捗度をひと目で確認
・暗記シートで効率アップ
・日本語→英語に対応
・例文で、使い道を習得
■学習方法
学習を始めると、4択が出てくるので、正解と思ったボタンを押すだけ。英語は知識です。迷ってはいけません
・iOS:
・Android:
-
キックターゲット -暇つぶしのサッカーゲーム-
このアプリは、サッカーを使ったゲームとして人気な「キックターゲット」をゲーム化したものです。通常のキックターゲット、回転、拡大縮小、動くなど要素を用意した程よい難しさがあるゲームです。ただ蹴るのではなく、スワイプする速さ、タイミングも重要になってくる。パーフェクトを目指して、全50ステージをクリアしよう!操作は簡単、上にスワイプするだけ!
■豊富なゲームモード
・チャレンジ(全50ステージ)
・練習場
・2人で遊ぶ
■特徴
・上にスワイプするだけの簡単操作
・unreal engine4による良グラフィック
・ランキング機能搭載
・豊富なゲームモード
■遊び方
上にスワイプするとボールが出てきます。ボールの行方は、スワイプする速さ、スワイプ開始位置によって変わります。
-
おならで神回避 -簡単操作ミニゲーム-
-おならでシリーズ第一弾 おならで神回避-
このアプリは、おならが無限に出る男性が、生き残るために様々な障害物を避けながらスコアを伸ばしていく無料ゲームです。
生き残る時間が長いほど、男性のスピードが早くなり、障害物にぶつかる可能性が高くなります。うまくおならを活用して、ハイスコアを目指して生き残りましょう!
■特徴
・押して離すだけのシンプル操作
・unreal engine4による良グラフィック
・ランキング機能搭載
・男性のキレのいいダンス
■遊び方
画面を押している間は男性がおならを出して上昇します。対して、離すと急降下します。上手く加減を見つけて、障害物を避けていきましょう!
-
おならでガチダッシュ -簡単操作ミニゲーム-
おならでシリーズ最新作!! おならでガチダッシュ
このアプリは、おならが無限に出る男性が、生き残るために華麗に敵をかわしてスコアを伸ばしていく無料ゲームです。
生き残る時間が長いほど、敵の出現数が多くなり、ぶつかる可能性が高くなります。時間経過で切れていくおならガスにも注意しながら、ハイスコアを目指して生き残りましょう!
■特徴
・押して移動するだけのシンプル操作
・ランキング機能搭載
・難易度高めの定番カジュアルゲーム
■遊び方
画面中央から右側タップで右に移動、左タップで左に移動。ランダムな速さで襲ってくる敵を避け、ハイスコアを目指しましょう!
走って飛べ!!
こちらTikTokでバズったゲームでございますが、あまりにもクソゲーすぎてしょうもないゲームになっております。記念すべき初リリースですが、バグも多いかも?笑
なお、Androidのみプレイ可能です。
ただいまリメイク版を制作途中でございます。期待しておいてください。
iOSエラー色々出てきたのでメモメモ...
正直色々なエラーが考えられる。私はiOSのモバイルプロビジョン、証明書がValidになっていたのに、このエラーがでた。
自分が解決した方法は、パッケージの中の配布用にチェック指定していたことが原因。配布用はパッケージするときだけにする。
↑これは逆に配布用プロファイルを指定しているのに配布用にチェックを入れなかったことが原因。
Error: CDO Constructor (Console):
Failed to find /Engine/
EngineResources/Black
こちらは、私の数ヶ月いじっていなかったアプリをアップデートするために再度パッケージしたやつを起動したらこれ泣
私の場合、すごく下までエラー文がスクロールできてしまうほどエラーが多かったです笑
対処法
今回のエラー内容は正確にはわかっていませんが、おそらくアセットダウンロードに失敗したのでしょう?ということで扱っているエンジンバージョンを認証してあげてください。認証によって、大事なエンジンプロジェクトを間違えて消してしまったという問題も解決するのではないでしょうか。
このエラーに限ったことではないですね。エラーが調べてもでてこなかったら、認証をやってみるべきでしょう。
LogPlayLevel: Error: /Users/Shared/UnrealEngine/UE_4.27/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h:536:10: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
↑のエラーを解決してみよう。
これ、普通のコンパイルエラーのようですね。(最新のプロジェクトでは何も言われなかったのに古いプロジェクトだと怒られたエラー。なんでやねん)
対処法
素直にエラー吐かれた場所のファイルをいじっていきましょう。今回の場合、UObjectフォルダ内にある、「NameTypes.h」が原因みたいです。メモ帳など、いじれるツールで開きましょう。おそらくロックがかかっていますので、「慎重に扱います」と唱えてからロックを解除しましょう。
↑こちらの、536行目、541行目が今怒られた場所です。
※写真では、536行目をすでに&から&&に変更してあります。
それでは、541行目のパイプラインに変更していきましょう。|から||に直しましょう!
UE4モバイル実機プレイでレベル遷移ができない時の対処法
皆さんiOS,Androidに限らず、モバイルでレベル遷移をしようとしたときに、このようなメッセージが出てきたことはありませんか?
私は、Android実機プレイの時もiOS実機プレイの時も出てきて大変うんざりしたメッセージです。
という事でいつも通り解決方法を皆さんと共有して行きたいと思います。
1つ目
プロジェクト環境設定>プロジェクト>パッケージング>パッケージングには、「パッケージビルドに含めるマップのリスト」というオプションがあります。ここでは、常に調理したいマップごとに配列要素を追加する。
そこにレベルのファイルパスをぶち込みましょう!私はこれでAndroid実機プレイの問題が解決しました!
2つ目
プロジェクト設定>マップ&モードで四つマップ指定してありますよね。そちらの一番下!
サーバーのデフォルトマップがEntryとなっていますが、クリアにしてまっさらにしましょう!これだけです!これでiOS実機プレイが完了いたしました!デフォルトマップは指定してあげて!
3つ目(おまけ)
DefaultEditor.ini(ProjectName/Config/)を開きましょう。その中のテキストを追加します!追加するのは。。。
[AlwaysCookMaps] +Map=/Game/Maps/対象マップの名前.umap
のような形で追加しましょう。これで一時的に実機プレイが可能になりました。なぜか一時的なのでおまけ判定。