Virt-A-Mate(VaM)の CustomUnityAsset は、Unityで用意した小物・家具・背景などをVaMへ読み込む仕組みです。

この記事では、3Dモデルを1個読み込む最小構成から始めて、サイズ調整、質感、当たり判定、AssetBundle化、VaM側での確認までを一本につなげます。

先に3行で

  1. Unity 2018.1.9f1 の専用プロジェクトを用意する。
  2. モデルをSceneへ配置し、サイズ・原点・マテリアル・コライダーを整える。
  3. Standalone Windows 64向けAssetBundleを作り、VaMのCustom\Assetsから読み込む。

新しいUnityへ置き換えないこと、配布権のない素材を同梱しないことが重要です。

Custom Unity Assetとは

AssetBundleは、モデル、テクスチャ、マテリアル、Prefab、Sceneなどを、Unityが実行時に読み込める形へまとめたファイルです。

VaMではCustomUnityAssetというAtomを追加し、そのAtomから.assetbundleまたは.sceneを選んで利用します。衣服や髪としてPersonへ直接装着する形式とは別物です。

必要なもの

  • Unity 2018.1.9f1
  • Unity Asset Bundle Browser
  • 利用条件を確認済みの3Dモデル
  • モデルに必要なテクスチャ
  • Virt-A-Mate 1.xの動作環境

3DモデルはOBJやFBXなどを利用できます。OBJは静的な小物に向き、FBXは階層、ボーン、アニメーションなどを保持したい場合に向きます。

なぜUnityのバージョンを合わせるのか

AssetBundleは単なるZIPファイルではなく、Unityの実行環境に依存する形式です。制作側と読み込み側のUnity世代が合わないと、ファイルを選べても中身が表示されない、Invalidになる、マテリアルが崩れるといった問題が起こります。

VaM 1.x用の制作環境では 2018.1.9f1 を使い、ほかのUnity制作物とはプロジェクトを分けます。普段使っている新しいUnityプロジェクトを流用しない方が、誤ビルドを防ぎやすくなります。

最初に一度だけ行うプロジェクト設定

Unityで3Dプロジェクトを新規作成し、Asset Bundle Browserを追加します。その後、Edit → Project Settings → Playerで次を確認します。

設定目的
Color SpaceLinearVaM側の照明と質感を合わせやすくする
Virtual Reality SupportedONVR向け表示に対応させる
Stereo Rendering MethodSingle PassVaMのVR描画方式に合わせる

この状態を空の制作テンプレートとして保存しておけば、次回から初期設定を繰り返さずに済みます。

3Dモデルを読み込む前の確認

1. ライセンス

「無料でダウンロードできる」と「AssetBundleへ入れて再配布できる」は同じではありません。

最低限、次を別々に確認します。

  • 個人利用の可否
  • データ改変の可否
  • 加工後データの再配布可否
  • 商用利用の可否
  • 作者名やライセンス表記の要否
  • 成人向け作品での利用可否

条件が分からない素材は、個人テストだけに留めます。

2. 単位・原点・向き

異なる3Dソフトでは、1単位の大きさや上方向が一致しないことがあります。Unityへ入れた直後に、次を確認します。

  • 上方向がY軸になっているか
  • 正面方向が意図どおりか
  • 小物や家具の大きさが人物に対して自然か
  • 回転とScaleに極端な値が入っていないか
  • 配置基準にしたい場所へPivotがあるか

家具なら脚の接地点を高さ0へ、小物なら握る位置や中心を基準にすると、VaMで置きやすくなります。

Unityでの制作手順

1. モデルとテクスチャを取り込む

モデル専用フォルダをAssets内に作り、モデル・テクスチャ・マテリアルをまとめて読み込みます。素材ごとにフォルダを分けると、別のAssetBundleへ不要なファイルが混ざりにくくなります。

2. Sceneへ配置する

モデルをHierarchyまたはSceneへ配置し、いったんPositionを0, 0, 0にします。

サイズが合わない場合は、Model Import SettingsのScale Factorで調整する方法と、Scene上のTransform Scaleで調整する方法があります。再利用するモデルはImport Settings側で基準サイズを整え、Scene固有の微調整だけをTransformで行うと管理しやすくなります。

3. マテリアルを整える

基本的なPBR素材では、次の対応を確認します。

テクスチャ主な役割
Albedo / Base Color表面の色
Metallic金属らしさ
Normal細かな凹凸
Occlusion隙間や接触部の陰影
Emission自発光

Normal Mapは、テクスチャのImport Settingsで種類をNormal mapとして認識させます。画像をそのまま色テクスチャとして入れると、凹凸が正しく計算されません。

最初はUnity標準のShaderで表示を固め、特殊Shaderは必要になってから追加した方が問題を切り分けやすくなります。

4. コライダーを決める

コライダーは見た目ではなく、物理判定用の形です。すべてのモデルに必要なわけではありません。

  • 飾るだけ:コライダーなし
  • 箱や家具:Box Colliderを組み合わせる
  • 円柱状:Capsule Colliderなどを検討する
  • 複雑な静的地形:必要な範囲だけMesh Colliderを使う

高密度モデルへそのままMesh Colliderを付けると、物理処理が重くなります。見た目より単純な形で近似するのが基本です。

5. CameraとLightを整理する

VaM側の視点を使うため、Unity Scene内のCameraは通常不要です。

Lightも、VaM側で動的に配置するなら削除または無効化します。ベイク済み照明を使う環境では残す場合がありますが、「Unityで焼いた明るさ」と「VaM側の照明」を重ねると不自然になりやすいため、どちらが担当するかを決めます。

6. Sceneを保存する

分かりやすい英数字名でSceneを保存します。ファイル名、Bundle名、出力名は、空白や記号を減らして統一しておくと安全です。

AssetBundleを作る

  1. Window → AssetBundle Browserを開く。
  2. Configureタブへ保存したSceneを登録する。
  3. Buildタブを開く。
  4. Build TargetをStandalone Windows 64にする。
  5. 出力先を確認してBuildする。

ビルドすると、Bundle本体のほかにManifest関連ファイルも生成されます。VaMへ読み込ませるのは、対象Bundle名と同じ拡張子のない本体ファイルです。

本体のコピーへ.assetbundleを付け、次へ配置します。

VaMのフォルダ\Custom\Assets\任意のサブフォルダ\my_asset.assetbundle

Asset Bundle Browserでvariantをassetbundleにして、出力先をCustom\Assetsへ設定する運用もできます。ただし最初は別フォルダへ出力し、正しいファイルだけをコピーする方が事故を防ぎやすくなります。

VaMで読み込む

  1. SceneへMisc → CustomUnityAsset Atomを追加する。
  2. Atomを選択してCustom Unity Assetの画面を開く。
  3. Select File...から.assetbundleを選ぶ。
  4. 読み込み完了まで待つ。
  5. Bundle内のSceneまたはPrefabを一覧から選ぶ。

ファイルを選んだだけでは、表示対象がまだNoneのことがあります。Bundle内の項目を選ぶところまで確認します。また、モデルが真っ黒または見えない場合は、VaM SceneへLightを追加して確認します。

複数のオブジェクトを1つへまとめる場合

小物ごとにSceneまたはPrefabを分け、同じBundleへ登録できます。VaM側ではBundleを読み込んだあと、収録項目を選択します。

ただし、巨大な環境と小物をすべて1ファイルへ詰め込むと、更新・再配布・読み込みの単位が大きくなります。用途や更新頻度が違うものはBundleを分ける方が扱いやすくなります。

症状別チェック表

症状最初に確認すること
ファイルを選べない拡張子が.assetbundleか、配置先がCustom\Assets
InvalidになるUnity 2018.1.9f1で作ったか、Windows 64向けか
一覧が空SceneまたはPrefabをBundleへ登録したか
読み込んだのに見えないBundle内の項目を選んだか、Lightがあるか
大きさがおかしいImport時のScale Factor、単位、親Transformを確認
ピンク色になるShaderの互換性、Material、Texture参照を確認
表面が平らに見えるNormal MapのImport Typeを確認
物理処理が重いMesh Colliderの数とポリゴン密度を減らす
床へ埋まるPivot、原点、モデル下端のY位置を確認

一度に全部を直さず、Bundleが読める → 形が見える → サイズ → 質感 → 物理の順で確認すると原因を見つけやすくなります。

配布前チェックリスト

  • Unity 2018.1.9f1で最終ビルドした
  • Build TargetがStandalone Windows 64になっている
  • VaMを再起動した状態でも読み込める
  • Bundle内の全Scene・Prefabを開ける
  • 不要なCamera、Light、素材を除いた
  • サイズ、原点、向きが自然
  • コライダーが必要以上に複雑でない
  • 使用素材すべての再配布条件を確認した
  • 配布物へ元モデルの不要なソースデータを混ぜていない
  • 別環境で配置先と読み込み手順を再確認した

まとめ

VaM用Custom Unity Asset制作で重要なのは、豪華なUnity知識よりも、互換バージョンと確認順序を固定することです。

2018.1.9f1の専用環境
→ モデルの尺度と原点
→ 標準的なマテリアル
→ 必要最小限のコライダー
→ Windows 64向けBuild
→ VaMで実読込

この最小ルートが通ってから、ベイク照明、アニメーション、特殊Shader、複数Sceneなどを一つずつ追加すると、壊れた場所を見失いにくくなります。