Unity (ゲームエンジン)
C# でゲームを開発するためのエンジン。個人のゲーム制作で主力として使われ、3Dモデル制作・VR・モバイルビルドまで一通りのワークフローが残されている。
Blender → Unity アセットパイプライン
blender でモデリング → UV展開 → テクスチャ → リギング → FBXエクスポート → Unityで取り込む、という流れ。
- モデリング: 立方体ではなくカプセルから作る、SDS(サブディビジョンサーフェス)で板ポリを尖らせる、クリース(Shift+E)。
- UV展開: シームをCtrl+Eで設定し展開、IslandをLで選択。
- リギング: メッシュを統合(Ctrl+J)し、メッシュ→アーマチュアをCtrl+Pで自動ウェイト。
xxx.L/xxx.R命名で左右対称化。後々の互換性のためhumanoidボーンが楽。 - エクスポート: FBXで出力し、Unity側で
AnimationType = Humanoidに設定しリグを修正。テクスチャが反映されないときはMaterials > LocationをUse External Materials (Legacy)にしてAlbedoへ画像をD&D。 - シェーダー: メッシュ裏面を出すにはStandardシェーダーのカリングを切る自作シェーダーが必要。
主要ライブラリ・機能
- DOTween: イージング(Tween)を簡潔に書くライブラリ。
DOLocalPathでCatmullRom軌道追従、OnKill/CancellationTokenを組み合わせてasync/await化するDOTweenAwaiter拡張も実装。 - PostProcessingStack v2: ルックデヴ(画作り)用ポストエフェクト。
- ECS (Entity-Component-System): データ指向のアーキテクチャパターン。
- UniRx: リアクティブ拡張。google-cardboard-sdk のGazeableButton実装などで使用。
モバイルビルド
build Android SDK API Level 29 のように、Unity 2020でAndroid SDKを手動更新してビルド。APKはGoogle Drive経由で実機インストールが楽。
レベルデザイン
CPUの挙動はビヘイビアツリーで決める(UE4が便利)。シミュレーションゲームのバランスはExcelでストーリーを作り、資源が丁度尽きる量でテーブルを組む。
制作プロジェクト
- automatik: 自作ソシャゲ。
- satellite / stella: ターン制ローグライクの試作 → roguelike のダンジョン自動生成。
- 軽量な制作論は small-game-development を参照。Unity以外にbevy/Siv3D/Godotも候補。