# Unreal EngineのゲームをiOSへ移植する

> UnrealからiOSへは、はるかに小さい電力の予算での作り直しだ。PC版を良く見せていた描画の機能は、たいてい最初に落ちる。

- URL: https://www.summerengine.com/ja/port-unreal-game-to-ios
- Keyword: UnrealゲームをiOSへ移植する
- Related: https://www.summerengine.com/ja/porting

Unreal EngineのゲームのiOSへの移植とは、権利のあるゲームを電話のハードウェアに合わせて作り直し、App Storeの審査を通すことだ。デスクトップのUnrealのプロジェクトを自動で承認済みのiOSアプリに変えるものはない。

この移植を決めるのは予算だ。現代のiPhoneのGPUは高性能だが、電話の筐体と電池と同じ発熱の枠を共有する。デスクトップのGPUを狙った描画の技法、重い動的ライティング、密なジオメトリ、大きな非圧縮のテクスチャは、縮小ではなく置き換えが要る。二つ目の壁はメモリだ。超えるとシステムがアプリを終了させ、プレイヤーにはクラッシュに見える。

Summer Engineは現在デスクトップビルドを書き出し、iOSビルドにはXcodeを入れたMac、署名、タッチ入力への対応作業が要る。コードはC++とGDScriptで、C#はデスクトップエディタで使えるが、Godot 4のワークフローではiOSでのC#はまだ実験的扱いだ。プロジェクトは自分のもので、ロイヤリティはない。

## モバイルのレンダラー向けに見た目を作り直す

焼き込んだライティング、少数の動的ライト、圧縮テクスチャ、積極的な詳細度の切り替えを前提にする。主要アセットのポリゴン数を減らし、描画コールをまとめ、ポストプロセスは低い解像度でも生き残るものだけに削る。最高値ではなく安定したフレームレートを狙う。デスクトップのゲームをうまく移植したモバイル版の多くは、PCの見た目を薄めた写しにするのではなく、はっきりしたシルエットと平坦な陰影を選び、意図的にアートの方向を変えている。

## タッチ操作には設計の工程が要る

ツインスティック、遮蔽物からの射撃、精密なプラットフォーム操作は、ガラスへの直訳では生き残らない。動詞の数を減らし、照準の吸い付きや縁での自動ジャンプのような補助を足し、当たり判定は最低でも44ポイントの幅にする。ホームインジケーターの周りの安全領域を尊重する。元の操作方式を望むプレイヤー向けにMFiのコントローラに対応してもよいが、ゲームはタッチだけで完結している必要がある。審査担当も大半のプレイヤーもタッチを使うからだ。

## 容量の制限と導入の摩擦

Appleは一定の大きさを超えるダウンロードを携帯回線で制限し、ネットワークを待つよう利用者に促す。App Storeのバンドルには上限もある。大きなUnrealのプロジェクトが手を入れずに収まることはまれなので、初回起動後のダウンロード可能なコンテンツのパックか、本当に小さいアセット一式を計画に入れる。小さいアプリはより多く導入される。元のアセットの大きさではなく、端末での導入後の大きさを計る。

## App Store Connectを通した出荷

Xcodeの入ったMac、年99米ドルのApple Developer Programの登録、配布用の証明書、プロビジョニングプロファイルが要る。App Store Connectへ上げ、実機での検証のためにTestFlightで配り、それから審査へ出す。審査はクラッシュ、説明文の正確さ、動作するプライバシーポリシー、記入済みのプライバシーマニフェスト、そしてデジタル商品に対するアプリ内課金の利用を見る。

## FAQ

### UnrealのプロジェクトをSummer Engineへ読み込めるか

読み込めない。.uprojectや.uassetのインポーターはない。ゲームを作り直し、権利のある書き出し済みのメッシュ、テクスチャ、アニメーション、音声を持ち込む。

### 設定を下げるだけでデスクトップのUnrealのゲームは電話で動くか

たいてい動かない。デスクトップの描画の予算とメモリの占有は電話が持続できる範囲を超えており、設定のスライダーはコンテンツそのものの費用を取り除かない。現実的な道は、モバイルの予算でコンテンツを作り直すことだ。

### Macは必要か

必要だ。iOSのビルドの署名とアップロードにはXcodeが要り、XcodeはmacOSでしか動かない。

### iOS版でC#を使えるか

C#はデスクトップエディタで使えるが、Godot 4のワークフローではiOSでのC#はまだ実験的扱いだ。iOS版にはC++かGDScriptのほうが安全だ。

### 古いiPhoneで60フレーム毎秒を保つには

対応する最も古い端末で初週から試し、熱による性能低下を捉えるために数分にわたる持続したフレームレートを計り、設定ではなくコンテンツを直す。よくある原因はテクスチャの大きさ、描画コール、重ね描きだ。

[作り直しを始める](https://www.summerengine.com/ja/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api