# Unityゲームは、C#を仕様書にして作り直して移植する

> Unityプロジェクトを取り込むエンジンはない。Unityゲームの移植とは、既存のC#とアセットを素材にして、権利のあるプロジェクトを作り直すことだ。

- URL: https://www.summerengine.com/ja/port-a-unity-game
- Keyword: Unityゲームを移植する
- Related: https://www.summerengine.com/ja/porting

Unityゲームの移植とは、権利のあるプロジェクトを別のエンジンで作り直すことだ。Unityプロジェクトを読んで同等に動くものを出力するインポーターは存在しない。そうだと主張するものは、移植ではなくアセットのコピーを説明している。シーン、プレハブ、コンポーネント、物理設定、アニメーターグラフはUnity固有の形式だ。

残るものは大きい。アートと音声の元ファイルは標準形式なのでそのまま読み込める。C#のゲームコードはシステムの正確な仕様であり、Summer EngineのデスクトップエディタではC#を使える。デザイン、調整値、レベルのレイアウトはすべてデータとして移る。

アセットには一つ注意がある。Unity Asset Storeのライセンスは一般にUnityプロジェクト内での利用を認めるものなので、サードパーティのパッケージはたいてい一緒には移せない。持っていけるのは自分のアート、自分のコード、エンジンの制限なくライセンスされたアセットだ。Summer EngineはGodot 4のワークフローと互換があり、100万行を超える独自コードを持つ完全なカスタムエンジンで、ロイヤリティを取らない。

## Unityの概念はシーンツリーにどう対応するか

コンポーネントを持つGameObjectは、子とスクリプトを持つノードになる。プレハブはインスタンス化して使える再利用シーンになる。MonoBehaviourのUpdateは毎フレームのprocessコールバック、FixedUpdateは物理processのコールバック、AwakeとStartはreadyと初期化になる。RigidbodyとColliderは物理ボディと衝突シェイプになる。コルーチンは非同期関数かタイマーになる。ScriptableObjectはリソースファイルになる。考え方が十分近いので、多くの開発者は一日で手が動くようになる。

## C#は移る。ただしプラットフォームの制限が一つある

Summer EngineはC++、GDScript、C#を動かし、C#はデスクトップエディタで使える。これは作り直しの言語を選ぶときに効いてくる。ゲームコードをC#のまま保つのがUnityからの最短経路で、GDScriptはGodot 4の例やチュートリアルの多くが使う言語だ。元のC#はどちらにせよ、各システムの挙動を示す正式な記述として役に立ち続ける。

## みんなが飛ばすのがアセットのライセンス確認

作り直しの前にサードパーティのアセットをすべて確認する。Unity Asset Storeの条件は一般に、購入したアセットの利用をUnityプロジェクト内に結び付けている。つまりストアのモデル、シェーダー、プラグインはたいてい他のエンジンへ持ち出せない。自分で作った、発注した、あるいはエンジンの制限なく一般の商用ライセンスで買ったアセットは動かせる。この棚卸しを先にやれば、出荷が許されないアートを中心にゲームを作り直す事故を防げる。

## 本物の移植の手順

この順で作り直す。プレイヤーコントローラ、代表的なレベル一つ、中核のループ、UI、そしてコンテンツ量。数百のアセットを取り込む前に遊べる断片を作る。物理の調整と入力の手触りを、変更がまだ安いうちに検証できるからだ。Summer Engineは既存システムの説明から最初のシーンとスクリプトを生成できるので、空のプロジェクト問題が消え、書くのではなく直す対象が手に入る。

## プロジェクトを完全に所有して得られるもの

作り直したプロジェクトは自分のものだ。ロイヤリティも収益分配もインストール単位の計上もない。同じプロジェクトからSteamやitch.io向けのデスクトップビルドを書き出す。エンジンはGodot 4のワークフローと互換があり、Godotのupstreamに追従するので、エコシステムの知識は移る。一方でエンジン自体は100万行を超える独自コードを持つ完全なカスタムだ。

## FAQ

### Unityプロジェクトを自動変換するツールはあるか

ない。Unityプロジェクトを読んで別のエンジンで動くプロジェクトを出力するツールは存在しない。シーン、プレハブ、アニメーターグラフ、物理設定はUnity固有だ。Unityの移植は、アート、音声、データ、C#のロジックを仕様として再利用する作り直しだ。

### 自分のC#コードはSummer Engineで動くか

C#はデスクトップエディタで使える。API呼び出しが違うので、UnityのC#はそのままではコンパイルできない。それでも既存のC#はシステムの最も正確な記述であり、多くのゲームコードの翻訳は素直に進む。

### Unity Asset Storeで買ったものを持っていけるか

たいていは持っていけない。Unity Asset Storeのライセンスは一般に、購入したアセットの利用をUnityプロジェクト内に限っている。自分で作った、発注した、あるいはエンジンの制限なく一般の商用ライセンスで買ったアセットは動かせる。作り直しの前に確認する。

### UnityのプレハブとGameObjectはどう対応するか

コンポーネントを持つGameObjectは、子とスクリプトを持つノードになる。プレハブはインスタンス化して使える再利用シーンになる。Updateはprocessコールバック、FixedUpdateは物理processのコールバック、ScriptableObjectはリソースファイルになる。

### ロイヤリティやインストール単位の費用はあるか

ない。Summer Engineで作ったプロジェクトは自分のもので、ロイヤリティも収益分配もない。Steamやitch.io向けのデスクトップビルドを書き出せ、Summerにロイヤリティを払う必要はない。

### Unityの移植にはどれくらいかかるか

ゲームのうち独自コードとストアのパッケージがどれくらいの比率かによる。自分のコントローラとレベル一つの遊べる断片は普通は数日。発売済みゲームの完全な作り直しは数週間から数か月で、ゲームのシステムよりUIとコンテンツ量のほうが時間を食う。

[Unityゲームを作り直す](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