GUIDE / BEGINNER

使い方ガイド(初心者向け)

Unityの操作にまだ慣れていない方向けに、画面の基礎用語から説明します。細かいパラメータの意味はパラメータ辞典にまとめてあるので、ここでは「何をどの順番で操作するか」だけに絞ります。

Unity画面の基礎用語

この後の説明では「Inspector」「Prefab」「Hierarchy」といったUnity用語が当たり前のように出てきます。初めて触る方向けに、まずエディタ画面の見方だけ押さえておきましょう。

┌─────────────┬───────────────────────┬─────────────┐ │ Hierarchy │ │ Inspector │ │(シーン内の │ Scene View │(選択中の │ │ 一覧・木構造)│ (3D空間を編集する所)│ 詳細設定欄)│ │ │ │ │ ├─────────────┴───────────────────────┴─────────────┤ │ Project(ファイル一覧) │ └─────────────────────────────────────────────────────┘
用語説明
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からオブジェクトをマウスでつまんで持っていき、離すと接続される操作。本ツールで頻出する「〇〇をドラッグ&ドロップして指定」はこの操作を指します

よく使う基本操作

1
オブジェクトを選択する:Hierarchyの名前をクリック、またはScene View上のオブジェクトを直接クリックします。選択するとInspectorに詳細が表示されます
2
Prefabをシーンに配置する:Projectウィンドウ内のPrefab(青いアイコン)を、Hierarchyの余白 or Scene Viewへドラッグ&ドロップします
3
パラメータの値を変える:オブジェクトを選択した状態でInspectorの該当欄をクリックし、チェックボックスなら切り替え、数値欄なら入力、テキスト欄なら書き換えます
4
オブジェクト参照を設定する:Inspector上の四角い欄に、Hierarchy(またはProject)から目的のオブジェクトをドラッグ&ドロップします(例:Triggerのdestination欄にDestinationオブジェクトをドラッグ)
5
変更を保存する:作業内容はメニュー File > Save(または Ctrl+S)でシーンを保存するまでファイルに残りません。こまめに保存しましょう
NOTE操作を間違えても、多くの場合 Ctrl+Z(元に戻す)で取り消せます。まずは触ってみて、おかしくなったら元に戻す、で問題ありません。

導入手順(UnityPackageからインポートする場合)

1
VRChat SDK3 - Worlds(3.7.1以降、UdonSharp同梱)が導入済みのプロジェクトを用意する
2
本パッケージ(.unitypackage)をインポートする(Assets/PortalSystem/Assets/PortalGimmick/ が展開されます)
3
インポート直後はUdonSharpの自動コンパイルが終わるまで数秒〜十数秒待つ
4
「Import TMP Essentials」ダイアログが出たら必ずボタンを押す(TextMeshProの必須リソース。未導入だと行き先ラベルがピンク表示になります。ダイアログが出ない場合はメニュー Window > TextMeshPro > Import TMP Essential Resources

設置手順(これだけで動きます)

NOTEいちばん簡単な始め方: メニュー Tools > PortalSystem > セットアップウィザード を開き、ボタンを押すだけでポータル一式が配置されます。
1
Prefabs/PortalSystemRoot をシーンに 1つだけ 配置(ワールドに1回)
2
入口を配置:Portal_Trigger_Box(矩形)/ Portal_Trigger_Round(円形)/ Portal_Trigger_Button(押しボタン式)のどれか
3
出口に Portal_Destination を配置(rootの位置と向き=着地位置・着地の向き)
4
Triggerの destination 欄にDestinationをドラッグ&ドロップ(Scene Viewに接続線Gizmoが出ます。赤い球は未設定の警告)
5
Destinationの子 ShotPoint を動かして撮影アングルを調整(Camera Previewで確認。Game Viewは16:9にすること=実際のプレビューと同じ縦横比になります)。必要なら Trigger の destinationLabel に行き先名を入力
6
VRChat SDKの Build & Test / アップロード → ビルド時に全自動配線されます

ビルド前チェック

Build & Test の前に Tools > PortalSystem > シーン検証 を開き、「検証を実行」を押してシーン内のポータル構成に問題がないか確認できます。

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秒後に自動で閉まります。

NOTE手前開きの理由: 奥側へ開くと開いた扉板がプレビュー(向こう側の景色)の裏に回り込み「あちらの世界に扉が消える」ように見えるため。

Portal_Trigger_Door_Open(Box型ベース)

開きっぱなしの木製扉。開口部に行き先の景色が縦長ではまっており、くぐるとテレポート。開口部のプレビューは専用メッシュAnimations/DoorwayPreviewQuad.asset(16:9映像の中央を歪みなしで縦長クロップ)。PreviewBillboardは有効にしないこと(パネルが扉枠の中で回転して破綻します)。

アングル調整(Destinationのインスペクタ)

Portal_Destination を選択すると、Inspector上でアングル調整と試し撮りができます(PortalDestinationMarker のカスタムインスペクタ):

プレビューパネルの構造とカスタマイズ

各Triggerのプレビュー表示は PreviewPanel(親)にまとまっています:

Portal_Trigger_* └─ PreviewPanel … PreviewBillboard(無効で同梱) ├─ PreviewQuad … 映像表示(16:9) ├─ Frame … 標準フレーム(薄板)。不要なら非アクティブ化、差し替えも自由 └─ DestinationLabel … 行き先ラベル

生成物について

重要な注意・既知の制限

Criticalポータルを追加・移動・削除したら再ビルドが必要です(ビルドごとに全ポータルを走査して配線し直すため)
Caution着席中(椅子・VRCStation使用中)はBox/Round型ポータルが反応しません(VRChat既知バグ:着席中はプレイヤーのトリガー判定が無効化される)。Button型(Interact式)は着席中も動作します

トラブルシューティング

Q. 行き先ラベルがピンク色(マゼンタ)で表示される

A. TMP Essentialsが未導入です。Window > TextMeshPro > Import TMP Essential Resources を実行してください。

Q. 日本語のラベルが「□」になる

A. デフォルトのTMPフォントは日本語グリフを含みません。DestinationLabel のフォントアセットを同梱の日本語対応フォント(NotoSansJP SDF)に差し替えてください。

Q. プレビューが更新されない/映像がずれている

A. ポータルの追加・移動・削除後は必ず再ビルドしてください。ビルド時に全ポータルを再走査して配線し直す仕組みのため、シーンを保存しただけでは反映されません。

Q. 着席中にBox/Round型ポータルに触れても反応しない

A. VRChat側の既知の仕様(着席中はトリガー判定が無効)です。Button型(Interact式)に変更するか、その場所ではポータルを使わない設計にしてください。

NOTE各パラメータの詳しい意味はパラメータ辞典で解説しています。