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 > LocationUse 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でストーリーを作り、資源が丁度尽きる量でテーブルを組む。

制作プロジェクト

関連