← ヘルプ一覧に戻る

Unityで3D背景を作る:SDKの導入と書き出し

NICE CAMERA 3D Background Build Kitを使うと、Unityで作った部屋やステージを、NICE CAMERAで追加できる3D背景として書き出せます。

制作した3D背景をNICE CAMERAへローカル追加して利用するには、プレミアムプランが必要です。配布先での取り込み・利用にもプレミアムプランが必要になります。SDKでの制作・書き出し自体をプランで制限するものではありません。

このガイドは、3D背景ベータ機能用のBuild Kit 0.9.3のWindows/Mac向け制作手順です。SDK同梱対応版のNICE CAMERAには、制作に使うSDKのZIPが含まれています。

画像をクリックすると、スクリーンショットを原寸で開けます。画面は撮影時の例です。バージョンや設定によって表示が異なる場合があります。

制作と再生の環境

項目使用するもの
背景制作のUnity Editor2022.3.22f1(推奨)、または2022.3.62f3
描画方式Universal Render Pipeline(URP)14.0.10
SDK同梱のNiceCamera-3D-Background-BuildKit-0.9.3.zip
書き出し対象Windows 64-bit(StandaloneWindows64)、またはmacOS(StandaloneOSX)
再生するNICE CAMERA利用先OSのUnity 2022.3.62f3・3D背景対応版

制作Editorとアプリを作るEditorのバージョンは異なっていてもかまいません。2022.3.22f1と2022.3.62f3の両方で制作できます。両方のEditorで書き出したWindows背景を、62f3のWindowsアプリにローカル追加し、再起動後も読み込める組み合わせを検証しています。Mac向けは別途macOSを選んで書き出し、Mac版で確認してください。Windowsでの検証はMacでの動作確認の代わりにはなりません。任意のShaderやすべての購入アセットの動作を保証するものではありません。62f3で書き出した背景を旧22f1アプリで読み込む逆方向の互換性は保証しません。

旧Unity 2021版SDKの背景とは混用しないでください。旧背景を移行する場合は制作元を保存・バックアップしたうえで、対応SDKを使って再ビルドします。設定ファイルのバージョン文字列を書き換えるだけでは移行できません。

インストール済みのNICE CAMERAからSDKを取り出す

SDK同梱対応版をインストールした後、次の場所を開きます。アプリ名・インストール先はエディションや選択したフォルダによって変わります。

OSSDKの場所
WindowsNiceCamera.exeがあるインストール先 → NiceCamera_Data → StreamingAssets → SDK
Macアプリケーション内のNICE CAMERAを右クリック →「パッケージの内容を表示」→ Contents → Resources → Data → StreamingAssets → SDK

この中の NiceCamera-3D-Background-BuildKit-0.9.3.zip を、デスクトップなど書き込み可能な制作フォルダへコピーしてから解凍します。アプリのインストール先や .app の中で制作・編集しないでください。アプリ更新やアンインストールで同梱SDKは更新・削除されますが、別の制作フォルダへコピーした内容は影響を受けません。

ZIP配布版でも同じ場所にSDKがあります。SDK フォルダがない旧版は、SDK同梱対応版へ更新するか、配布元からSDKを入手してください。

SDKをUnityへ導入する

  1. Unity Hubで2022.3.22f1(推奨)または2022.3.62f3を用意します。以下の画像は22f1で撮影しています。
  2. 通常の「3D」テンプレートで、背景制作専用の新規プロジェクトを作ります。
  3. Unityを閉じ、SDKのZIPを解凍します。
  4. com.nicecamera.threed-background-build-kit フォルダを、制作プロジェクトの Packages にコピーします。
  5. Packages/com.nicecamera.threed-background-build-kit/package.json があることを確認します。
  6. Unityを開き直し、パッケージの読み込みが完了するまで待ちます。

上部に NICE CAMERA > 3D Background メニューが出れば導入を確認できます。Consoleの赤いエラーがないことも確認してください。

Unity Package ManagerでNICE CAMERA 3D Background Build Kit 0.9.3を選択。Universal RP 14.0.10も一覧に表示されている

導入確認:Window > Package Manager を開き、SDKを選びます。右側の名前・バージョンが「NICE CAMERA 3D Background Build Kit」「0.9.3」、左側のUniversal RPが「14.0.10」であることを確認します。この画像はUnity 2022.3.22f1で撮影しました。

別の方法として、Package Managerの「Add package from disk…」でSDKの package.json を指定できます。コピー方式と重複して導入しないでください。SDKは .unitypackage ではありません。

まずは空の制作プロジェクトで始めてください。NICE CAMERA本体のソースコードやVRCSDKは不要です。VRChatのUdonなどに依存するギミックを、そのまま使えるSDKではありません。

Base Roomを作る

  1. Playを停止し、編集中のシーンを保存します。
  2. NICE CAMERA > 3D Background > Create Base Room を選びます。
  3. 作成された部屋とPackage Builderを確認します。
  4. Assets/NICE CAMERA Base Room/Scenes/BaseRoom.unity を編集します。同名の出力がある場合は別名のフォルダになります。

青いカプセルはアバターの位置の目安で、出力には含まれません。Preview Cameraも制作時の確認用です。購入アセットはSDKには含まれません。

UnityのSceneビューに表示したBase Room。床と3面の壁、中央の青いアバター位置の目安が見える

制作画面:SDKから新しく生成したBase Roomの初期状態です。床・壁・ライトと青いカプセルだけで、追加の家具やギミックは置いていません。中央の目安を基準に、家具や壁を配置します。この部屋は編集を始めるためのサンプルです。

立ち位置・材質・照明を決める

シーン原点 (0,0,0) をアバターの足元、正面を -Z 方向とします。1 Unity unitを1mとして、床・家具・壁を配置してください。

URPに対応した材質を使用し、正面・左右・近距離から確認します。窓の景色やSkybox、ベイク済みLightmapを含む部屋全体には、Sceneでのビルドを推奨します。

アバターへ実行時に直接光を当てる場合は、Realtimeのライトを用意します。ベイクだけでは、後から表示されるアバターが同じように照らされるとは限りません。

Global Volumeのポストエフェクトは、Profileをシーンから参照させます。独自のRenderer Featureなど、本体にない描画処理をVolumeだけで追加できるわけではありません。

Package Builderで書き出す

NICE CAMERA > 3D Background > Package Builder を開き、次を設定します。

項目設定例・注意
Package IDmy-office-room。別背景は別ID、同じ背景の更新は同じID
Display Name一覧に表示する名前
Thumbnail背景のサムネイル。例:512×288、16:9
Background Scene制作した部屋のシーン。部屋全体はこちらを推奨
Background PrefabPrefabを出力するときに使用。Sceneと同時には指定しない
Anchor通常はAvatar Position
Position Offset / Rotation / Scale最初は位置・回転0、Scale1を基準に確認
Override Initial Distance / FOV必要な場合に初期カメラ距離・画角を指定
Platform利用先のアプリに合わせてWindows 64-bitまたはmacOSを選択

Package Builder上部。Package ID、Display Name、Thumbnail、Background SceneにBaseRoomを指定した画面

設定箇所①:Package で識別子・表示名・サムネイルを設定します。Content の Background Scene に制作シーンを指定します。この例では Background Prefab はNoneです。

Package Builder下部。Avatar Position、Position Offset、Rotation、Scale、初期カメラ設定、Windows64出力とBuild .nicebg Packageボタンが見える

設定箇所②:Initial Placement は背景の位置・向き・大きさ、Initial Camera はカメラ距離・画角です。最後の Output の Platform で利用先のOSを選び、最下部の Build .nicebg Package を押します。

SDKのOutput欄。PlatformにmacOSを選択している

Mac向けの出力設定例です。これはWindows上のUnityでmacOS出力を選択した画面であり、Macでの再生確認の画面ではありません。必要なBuild SupportをUnity Hubから追加してください。同じ制作シーンから両OSへ配布する場合は、OSごとに別の出力フォルダを選んで2回ビルドします。Windows用とMac用の同名ファイルを同じフォルダへ混ぜないでください。

シーンを保存し、「Build .nicebg Package」を押して出力先を選びます。既存の同じIDの出力は更新されるため、残したい旧版は先にコピーしてください。

背景の出力フォルダ/
  my-office-room.nicebg
  my-office-room.bundle
  my-office-room-thumbnail.png  ← サムネイルを指定した場合
  README.txt

出力フォルダ全体を配布します。ZIPで渡す場合も、受け取った人は解凍してからNICE CAMERAの「背景」→「3D背景 β」→「追加」で .nicebg を選びます。

背景を更新するときは、制作シーンを保存し、必要なら再ベイクして同じIDで再ビルドします。読み込み中のファイルを置き換えないよう、NICE CAMERAを終了してから更新・再起動してください。

配布前にNICE CAMERAで確認する

  • 背景の読み込みとサムネイル表示。
  • 正面・左右・近距離での見え方と、顔を隠す家具や壁がないこと。
  • 背景光のON/OFFと、アバターの見え方。
  • ポストエフェクトと、必要な場合は背景由来の設定への初期化。
  • Animatorや手の接触ギミックを使う場合、その実動作。

任意のC#・DLL・Udonコードを背景のAssetBundleから新機能として実行する方式ではありません。SDKの対応コンポーネントを使い、警告を確認してから配布してください。Windows向けBundleとMac向けBundleは別物です。MacへはmacOSで書き出したフォルダ一式を渡し、対応するMac版NICE CAMERAで追加・再起動・描画を確認してください。

Animatorで背景を動かす

動かすオブジェクトのAnimatorへAnimatorControllerを設定します。Controllerから参照されるAnimationClipも背景の依存データとして書き出されます。NICE CAMERAで読み込むと既定のStateから再生し、背景パネルのAnimationボタンで一時停止・再開できます。

Fallback Clip (No Animator) はAnimatorControllerを持たない背景用です。AnimatorControllerを設定した場合は、この欄で同じClipを指定する必要はありません。

アバターの手で触れるギミック

初めて試す場合は NICE CAMERA > 3D Background > Create Hand Touch Sample を選び、生成された HandTouchDoor.prefab を制作中の背景シーンへ置きます。UnityのPlay中に SDK Preview Palm (EditorOnly) を Touch Button に近づけると、接触している間ドアが開き、離すと閉じます。プレビューの手は書き出されません。

自分のギミックを作るときは、次のように設定します。

  1. 動かすオブジェクトにAnimatorとAnimatorControllerを設定します。
  2. 触れる場所にBoxColliderまたはSphereColliderを置き、Is Trigger をONにします。
  3. Add Component > NICE CAMERA > 3D Background > Hand Touch を追加します。
  4. 触れる範囲、動かすAnimator、反応する手を指定します。
  5. AnimatorControllerのパラメーター名を、対応する欄に入力します。
イベントパラメーターの型用途
触れた瞬間Trigger待機から演出へ一度だけ遷移
触れている間Bool接触中はtrue、離れたらfalse
離れた瞬間Trigger離れたときの演出へ遷移

対応版NICE CAMERAでは現在のVRMアバターの手が自動的に使われます。判定は手のひら付近の球で行い、指一本ずつのメッシュ接触ではありません。手ボーンのないモデルは対象外です。SDKの Documentation~/HandTouch.md に詳しい設定と注意点があります。

Allow Click をONにすると、手で触れる代わりに対象を左クリックしても反応します。必要なら Click Volumes にクリックできる範囲を指定してください。クリックは押した瞬間ではなく、同じ対象上でボタンを離したときに判定します。ドラッグへ移行した操作、ほかのドラッグ操作中、UI上の操作では発動しません。クリック時は指定した時間だけ接触中の状態になり、その後に離れた状態へ戻ります。プリセット背景には、このサンプルのギミックは置いていません。

背景内のTVにスライドを表示する

TVなどの画面部分にQuadとURP/Unlit材質を用意し、NiceCameraWindowShareSurface を追加します。Target Renderer、Material Index、Texture Property を指定してください。URP/Unlitの標準のTexture Propertyは _BaseMap です。

NICE CAMERAのスライドで選んだ画像・動画・PDFの現在ページ・ウィンドウ共有を、その画面に表示できます。共有していないときは材質の元の表示に戻ります。縦横比を保つ場合は Fit Texture Inside Surface をONにします。ウィンドウ共有はWindows向けです。

関連するガイド

← ヘルプ一覧に戻る