
UnrealゲームをSteamへ移植する
Unreal EngineのゲームをSteamへ移植する
UnrealからSteamへは、作り直しとストアへの申請だ。ブループリントのグラフと.uassetのファイルは変換されないが、コンテンツと設計は移る。
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でうまく動くことが多い。
よくある質問
ブループリントは自動で変換できるか
できない。ブループリントは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の売上分配がある。その上にエンジンのロイヤリティはない。
さらに見る
Summer Engine で創るその他の方法
AI ゲームメーカー
説明するだけで完全な 2D・3D ゲームを作れるハブ。
開くPort a 3DS game to Steam
Rebuild a 3DS game you own in Summer Engine, then export a Windows, macOS, or Linux build and publish it on Steam.
開くPort a 3DS game to Steam Deck
Rebuild a 3DS game you own in Summer Engine, then ship a Steam build that plays well on a 1280x800 handheld with gamepad only input.
開くPort a Nintendo DS game to Steam
Rebuild a DS game you own in Summer Engine, then export a desktop build for Steam. Mouse covers the stylus, monitors cover both screens.
開くPort a Wii game to Steam
Rebuild a Wii game you own in Summer Engine, then export a desktop build for Steam. Pointer becomes mouse. Motion becomes a design decision.
開くPort a PSP game to Steam
Rebuild a PSP game you own in Summer Engine and export a desktop build for Steam. One screen already fits. One analog nub does not.
開くPort a PS Vita game to Steam
Rebuild a Vita game you own in Summer Engine and export a desktop build for Steam. Dual sticks transfer. Front and rear touch do not.
開くPort a GameCube game to Steam
Rebuild a GameCube game you own in Summer Engine and export a desktop build for Steam. Analog triggers, 4:3 framing, and memory card saves.
開くPort a Switch game to Steam
Rebuild a Switch game you own in Summer Engine and export a desktop build. The gameplay is ready. The platform layer is the job.
開くプラットフォーマーのテンプレート
既成のプロジェクトから始めて、変更を説明するだけ。
見るすべてのゲームテンプレートを見る
既成のプロジェクトから始めて、変更を説明するだけ。
見る