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

> UnrealからSteamへは、作り直しとストアへの申請だ。ブループリントのグラフと.uassetのファイルは変換されないが、コンテンツと設計は移る。

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

Unreal EngineのゲームのSteamへの移植とは、権利のあるゲームを新しいエンジンで作り直し、そのビルドをSteamworks経由で出すことだ。.uprojectのファイル、.uassetのコンテンツ、ブループリントのグラフのためのインポーターは存在しない。

Unrealのプロジェクトは二種類の価値を持つ。コンテンツ、つまりメッシュ、テクスチャ、アニメーション、音声、レベルの配置は、開かれた形式へ書き出せばおおむね移せる。ロジック、つまりブループリントのグラフ、Gameplay Ability Systemの構成、Unrealのクラスの上に建てたエンジン固有のC++は、書き直しが要る。ブループリントは目に見えるコードなので、仕様書として読んで同じ挙動を作り直す。

Summer EngineはC++とGDScriptを使い、デスクトップではC#も使えるので、UnrealのC++プログラマーは馴染みのある領域にとどまれる。Godot 4のワークフローと互換があり、百万行を超える独自コードを持つ完全な独自エンジンだ。プロジェクトは自分のもので、ロイヤリティはない。これはUnrealの売上分配も式から外すことを意味する。

## Unrealからコンテンツをきれいに取り出す

静的メッシュとスケルタルメッシュをアニメーションごとFBXかglTFへ書き出し、テクスチャは元の解像度でPNGかTGAとして書き出す。マテリアルは書き出さずに作り直す。Unrealのマテリアルのグラフはエンジン固有だからだ。レベルの配置は座標として書き留めるか、参照用にメッシュとして書き出す。Fabや旧Marketplaceのものはライセンスを確認する。一部のコンテンツはUnreal Engineのプロジェクトでの利用に限定され、他では再利用できないからだ。

## ブループリントのロジックを作り直す

ブループリントを一つずつ開いて何をしているか記録し、同じ挙動をGDScriptかC++で実装する。イベントグラフはシグナルとコールバックに対応する。ブループリントのコンポーネントは子ノードに対応する。データテーブルはJSONかリソースのファイルに対応する。数値は正確に保つ。移動速度、加速、ダメージ値、クールダウン、カーブの形だ。作り直しがおかしく感じられるのは、コードの構造が違うときではなく数値を近似したときだ。

## ビルドの大きさとロード時間は大きく下がる

Unrealのプロジェクトは30ギガバイト以上で出荷されることが多く、その多くは高解像度の元テクスチャとシェーダーの組み合わせによるものだ。作り直しはそれを直す機会になる。テクスチャを実際に画面で見える解像度に合わせ、圧縮形式を使い、重複したコンテンツを削る。ビルドが小さいほどSteamのダウンロードは速く、導入の段階で離脱したプレイヤーからの返金は減り、パッチも安くなる。Steamは差分をチャンク単位で配るからだ。

## Steamworksの手順とSteam Deckの場合

Steamworksのパートナーアカウントを作り、一タイトルあたり100米ドルの一回限りのアプリ料を払い、税と銀行の情報を埋める。デポを用意し、SteamPipeでアップロードし、OSごとに起動オプションを設定する。コントローラ向けにSteam Input、セーブ向けにSteam Auto Cloud、実績があればそれも足す。その上でSteam Deckの場合を確認する。元のUnrealのビルドでは無理でも、軽い作り直しならDeckでうまく動くことが多い。

## FAQ

### ブループリントは自動で変換できるか

できない。ブループリントはUnrealのクラスに結び付いたUnreal固有の視覚的なコードだ。仕様として読み、新しいプロジェクトでGDScriptかC++として作り直す。

### Unrealのアセットは移るか

メッシュ、テクスチャ、アニメーション、音声は、FBX、glTF、PNG、WAVのような開かれた形式へ書き出せば移る。マテリアル、レベルのシリアライズ、.uassetのファイルは直接は移らない。ストアのコンテンツはUnrealの外で再利用する前にライセンスを確認する。

### そもそもなぜUnrealから移るのか

よくある理由は、ビルドの大きさ、反復の速さ、プラットフォームの届く範囲、そして一定額を超える売上にかかるUnrealのロイヤリティだ。Summer Engineはロイヤリティを課さず、プロジェクトは自分のものだ。

### C++の経験はここで役に立つか

直接役に立つ。Summer EngineのゲームはC++とGDScriptで書く。エンジンのAPIは違っても、UnrealのC++で身につけたゲームプレイの組み立て方はそのまま活きる。

### Steamでの公開にはいくらかかるか

一タイトルあたり100米ドルの一回限りのアプリ申請料で、売上1000米ドルの後に回収でき、加えてValveの売上分配がある。その上にエンジンのロイヤリティはない。

[作り直しを始める](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