使い方ガイド(初心者向け)
Unityの操作にまだ慣れていない方向けに、画面の基礎用語から説明します。細かいパラメータの意味はパラメータ辞典にまとめてあるので、ここでは「何をどの順番で操作するか」だけに絞ります。
Unity画面の基礎用語
この後の説明では「Inspector」「Prefab」「Hierarchy」といったUnity用語が当たり前のように出てきます。初めて触る方向けに、まずエディタ画面の見方だけ押さえておきましょう。
| 用語 | 説明 |
|---|---|
| Hierarchy(ヒエラルキー) | 今開いているシーンに置かれているオブジェクトが、親子関係の木構造で一覧表示される場所(画面左)。オブジェクトをクリックして選択します |
| Scene View(シーンビュー) | 3D空間そのものを見ながらオブジェクトを配置・移動できる編集画面(画面中央) |
| Inspector(インスペクタ) | Hierarchyや Scene View でオブジェクトを1つ選んだ時に、そのオブジェクトの詳細設定(コンポーネントとパラメータ)が表示される場所(画面右)。このサイトで説明しているパラメータは、すべてここに表示される項目です |
| Project(プロジェクトウィンドウ) | プロジェクト内の全ファイル(スクリプト・Prefab・画像など)が一覧表示される場所(画面下)。フォルダ構造はパソコンのエクスプローラーと同じ感覚です |
| GameObject(ゲームオブジェクト) | シーンに配置できる「モノ」の最小単位。位置・回転・大きさ(Transform)を必ず持ち、そこに機能(Component)を追加していく箱のようなもの |
| Component(コンポーネント) | GameObjectに追加する「機能の部品」。例えばCameraコンポーネントを付ければそのGameObjectはカメラになり、PortalTriggerのようなスクリプトも一種のコンポーネントです |
| Transform(トランスフォーム) | GameObjectの位置(Position)・回転(Rotation)・大きさ(Scale)を表すコンポーネント。すべてのGameObjectに必ず付いています |
| Prefab(プレハブ) | あらかじめ組み立てられたGameObject一式を「部品」として保存したもの。Projectウィンドウからシーンにドラッグするだけで、同じ構成のオブジェクトを何個でも複製配置できます。本ツールの入口・出口はすべてPrefabとして配布されています |
| ドラッグ&ドロップで設定 | Inspector上の四角い入力欄(オブジェクト参照欄)に、HierarchyやProjectからオブジェクトをマウスでつまんで持っていき、離すと接続される操作。本ツールで頻出する「〇〇をドラッグ&ドロップして指定」はこの操作を指します |
よく使う基本操作
destination欄にDestinationオブジェクトをドラッグ)File > Save(または Ctrl+S)でシーンを保存するまでファイルに残りません。こまめに保存しましょうCtrl+Z(元に戻す)で取り消せます。まずは触ってみて、おかしくなったら元に戻す、で問題ありません。導入手順(UnityPackageからインポートする場合)
Assets/PortalSystem/ と Assets/PortalGimmick/ が展開されます)Window > TextMeshPro > Import TMP Essential Resources)設置手順(これだけで動きます)
Tools > PortalSystem > セットアップウィザード を開き、ボタンを押すだけでポータル一式が配置されます。Prefabs/PortalSystemRoot をシーンに 1つだけ 配置(ワールドに1回)Portal_Trigger_Box(矩形)/ Portal_Trigger_Round(円形)/ Portal_Trigger_Button(押しボタン式)のどれかPortal_Destination を配置(rootの位置と向き=着地位置・着地の向き)ビルド前チェック
Build & Test の前に Tools > PortalSystem > シーン検証 を開き、「検証を実行」を押してシーン内のポータル構成に問題がないか確認できます。
- 各行に重要度(Error/Warning/Info)・日本語メッセージ・「選択」ボタン(該当オブジェクトへジャンプ)が表示され、自動修正可能な項目には「自動修正」ボタンも出ます
- Errorが1件でも残っていると正しく動作しない可能性が高いため、まずErrorを解消してください
- 「問題は見つかりませんでした」と緑のHelpBoxが出たら Build & Test に進めます
- 判定基準はビルド時のチェック(PortalBuildProcessor)と一致させてあるため、ここで問題なしならビルド時の警告も基本的に出ません
Prefabの種類
入口として使う5種のPrefabは、いずれもPortalTriggerスクリプトを共通で持ちますが、起動方式と見た目が異なります。
Portal_Trigger_Box / Portal_Trigger_Round
矩形/円形の範囲に「触れる(近づく)」だけで起動するタイプ。isButtonMode=OFF。Box/Round範囲の可視化にAreaIndicator(脈動するリング/矩形枠)が同梱されています。
Portal_Trigger_Button
Interact(決定ボタン/右クリック)で起動するタイプ。isButtonMode=ON。標準の押しボタンビジュアル(ButtonVisual=ダーク台座+シアンの円形キャップ)が同梱。判定はroot側のコライダーが担うため、ButtonVisualを消して独自メッシュに差し替えても動作に影響しません。色はTextures/PortalButton.matで変更できます。
Portal_Trigger_Door_Button(Button型ベース)
閉じた木製扉。Interactすると扉が手前(プレイヤー側)へ開き(0.9秒)、開口部に行き先の景色が見えてからフェード&テレポート。約4秒後に自動で閉まります。
Portal_Trigger_Door_Open(Box型ベース)
開きっぱなしの木製扉。開口部に行き先の景色が縦長ではまっており、くぐるとテレポート。開口部のプレビューは専用メッシュAnimations/DoorwayPreviewQuad.asset(16:9映像の中央を歪みなしで縦長クロップ)。PreviewBillboardは有効にしないこと(パネルが扉枠の中で回転して破綻します)。
アングル調整(Destinationのインスペクタ)
Portal_Destination を選択すると、Inspector上でアングル調整と試し撮りができます(PortalDestinationMarker のカスタムインスペクタ):
- 16:9チェック:
Texture Width/Texture Heightが16:9でない場合は警告と「16:9に補正」ボタンが出ます - 「Scene View の今の視点を ShotPoint に反映」: 今Scene Viewで見ている位置・向きをそのまま ShotPoint にコピーします(Undo対応)
- 「ShotPoint の視点を Scene View で見る」: 逆に、ShotPointの位置・向きへScene Viewの視点を移動します
- 試し撮りプレビュー: ShotPoint上のCameraで実際に撮影した映像をInspector内に16:9で表示します。「プレビュー更新」ボタンで再撮影、またはShotPointのTransformを動かすと自動で撮り直されます。ここで見えている映像・FOV・Near/Farの設定がそのままビルドに反映されます(見たまま=本番)
- ShotPointが未設定、またはShotPointにCameraが無い場合はプレビューできない旨の警告が表示されます
プレビューパネルの構造とカスタマイズ
各Triggerのプレビュー表示は PreviewPanel(親)にまとまっています:
- 視線追従(オプション):
PreviewPanelの PreviewBillboard にチェックを入れると、パネル全体(映像・フレーム・ラベル)がプレイヤーの方向へ水平回転で追従します。無効のままなら実行コストはゼロ(詳細はパラメータ辞典のPreviewBillboard参照) - フレームの差し替え:
Frameを消して独自の額縁メッシュをPreviewPanelの子に置けば、ビルボード有効時も自動で一緒に回転します(PreviewQuadの子には置かないこと=スケール1.6×0.9が乗って歪みます)
生成物について
- ビルド時に
Assets/PortalGenerated/<シーン名_GUID>/にRenderTextureとMaterialが自動生成されます(ポータルごとに個別。削除しても再ビルドで再生成) - プレースホルダー画像の差し替え:
Textures/PortalPlaceholder.pngを任意のデザインに置き換え可能(1024×576推奨)。Tools > PortalSystem > プレースホルダー画像を再生成で初期状態を再生成できます
重要な注意・既知の制限
- プレビュー映像は各プレイヤーが参加時に自分のクライアントで撮影するローカル映像です(他人と同期しません)
- 行き先名ラベルに日本語を使う場合、日本語対応のTMPフォントアセットを
DestinationLabelに設定してください(デフォルトのLiberationSansは日本語グリフ非搭載で「□」になります) - RT解像度はPC 1024×576 / Quest(Android)ビルド時は自動で512×288
トラブルシューティング
A. TMP Essentialsが未導入です。Window > TextMeshPro > Import TMP Essential Resources を実行してください。
A. デフォルトのTMPフォントは日本語グリフを含みません。DestinationLabel のフォントアセットを同梱の日本語対応フォント(NotoSansJP SDF)に差し替えてください。
A. ポータルの追加・移動・削除後は必ず再ビルドしてください。ビルド時に全ポータルを再走査して配線し直す仕組みのため、シーンを保存しただけでは反映されません。
A. VRChat側の既知の仕様(着席中はトリガー判定が無効)です。Button型(Interact式)に変更するか、その場所ではポータルを使わない設計にしてください。