ポータル演出仕様
演出コンセプト
ポータル演出は「次元の裂け目(Rift)が空間を引き裂いて開く」イメージで統一する。ラチェット&クランクの次元ポータルのような、空間が歪みながら穴が開く表現を Three.js で実現する。
演出タイプ一覧
| 演出 | 使用場面 | 所要時間 |
|---|---|---|
| リフトオープン | ポータル出現・アクティベート時 | 0.5秒 |
| ワープトンネル | ポータル通過時のトランジション | 0.8秒 |
| アイドルループ | ポータル待機中の常時演出 | ループ |
| 脱出ポータル出現 | ダンジョンクリア時 | 2.0秒 |
| カットイン | ポータル経由入場時 | 2.5秒 |
リフトオープン演出
概要
ポータルがアクティベートされた瞬間の演出。空間に亀裂が走り、裂け目が広がるエフェクト。
演出フェーズ
実装要素
| 要素 | 技術 | パラメータ |
|---|---|---|
| 空間歪み | カスタムシェーダー(ポストプロセス) | 歪み強度: 0 → 0.3 → 0 |
| 亀裂ライン | THREE.Line + カスタムジオメトリ | 幅: 0.02、色: ポータルカラー |
| 裂け目 | THREE.PlaneGeometry + カスタムシェーダー | UV スクロール、ノイズテクスチャ |
| グロウ | UnrealBloomPass | 強度: 0.5 → 2.0 → 1.0 |
| 効果音 | 空間が裂ける音(SE) | フェードイン 0.1秒 |
ワープトンネル演出
概要
ポータル通過時のフルスクリーントランジション。プレイヤーがトンネル状の空間を高速移動するエフェクト。
演出フェーズ
実装要素
| 要素 | 技術 | パラメータ |
|---|---|---|
| トンネル空間 | THREE.TubeGeometry + カスタムシェーダー | 半径: 5.0、長さ: 50.0 |
| パーティクルストリーム | THREE.Points + BufferGeometry | パーティクル数: 2000、速度: 50.0/秒 |
| カメラモーション | THREE.PerspectiveCamera 前進アニメーション | FOV: 75 → 120(スピード感演出) |
| クロマティックアベレーション | ポストプロセス | 強度: 0 → 0.01 → 0 |
| ホワイトアウト | フェードオーバーレイ | opacity: 0 → 1(0.2秒) |
トンネル内の視覚表現
╔══════════════════════════╗
║ ★ · · ★ · ★ · ║
║ · ★ · · ★ · ★ ║
║ ╔═══════════════╗ ║
║ ║ · ★ · ★ ║ ║
║ ║ ╔══════╗ ║ ║
║ ║ ║ ★· ★ ║ ║ ║ ← 同心円状のトンネル壁
║ ║ ╚══════╝ ║ ║ パーティクル(★)が手前に高速移動
║ ╚═══════════════╝ ║
║ ★ · ★ · · ★ · ★ ║
╚══════════════════════════╝アイドルループ演出
概要
ポータルが待機中に常時表示する演出。プレイヤーをポータルへ誘導する視覚的な目印となる。
実装要素
| 要素 | 技術 | パラメータ |
|---|---|---|
| パーティクル渦巻き | THREE.Points + 回転アニメーション | パーティクル数: 500、回転速度: 0.5rad/秒 |
| エネルギーリング | THREE.RingGeometry + グロウシェーダー | 半径: 1.5、グロウ強度: 0.8 |
| 明滅 | emissiveIntensity のサイン波アニメーション | 周期: 2秒、振幅: 0.3 |
| ポータルコア | THREE.SphereGeometry + ノイズシェーダー | 半径: 0.5、ノイズスケール: 3.0 |
| 環境ライト | THREE.PointLight | 色: ポータルカラー、強度: 2.0、範囲: 10.0 |
パフォーマンス考慮
- アイドルループは常時描画されるため、負荷を最小限に抑える
- 画面外のポータルは
frustumCulled: trueで自動カリング - パーティクル数は設定で調整可能(Low: 200、Medium: 500、High: 1000)
脱出ポータル出現演出
概要
ダンジョンのボスを撃破した後に出現する脱出ポータルの演出。ボスエリアの中央で地面が割れ、光が噴出する。
演出フェーズ
実装要素
| 要素 | 技術 | パラメータ |
|---|---|---|
| 地割れ | THREE.Line + アニメーション | 幅: 0.05、色: #00ff00 |
| 光漏れ | THREE.SpotLight + ヒビ位置 | 強度: 0 → 5.0 |
| カメラシェイク | カメラ位置のランダムオフセット | 振幅: 0.1、減衰: 1秒 |
| 光柱 | THREE.CylinderGeometry + グロウシェーダー | 半径: 1.0、高さ: 0 → 20.0 |
| データ破片 | THREE.Points + 上昇アニメーション | パーティクル数: 300、上昇速度: 3.0/秒 |
カットイン演出(ポータル経由入場)
ポータル経由でゲームにアクセスした際のペルソナ風カットイン演出。詳細は カットイン演出仕様(/ui/cutin)を参照。
ポータル演出との連携
カットインで表示する情報
| 表示要素 | データソース | デフォルト値 |
|---|---|---|
| キャラクター名 | username パラメータ | Drifter |
| カラーテーマ | color パラメータ | #00ffff |
| キャッチコピー | 固定テキスト | 「次元の漂流者、参上。」 |
パフォーマンスガイドライン
描画負荷目標
| 項目 | 目標値 |
|---|---|
| 常時FPS | 60fps(デスクトップ)/ 30fps(モバイル) |
| アイドルループ描画コスト | < 0.5ms/フレーム |
| トランジション演出中 | < 2ms/フレーム |
| パーティクル総数(画面内) | < 3000 |
品質設定
| 設定 | パーティクル数 | ブルーム | シェーダー歪み |
|---|---|---|---|
| Low | 200 | Off | Off |
| Medium | 500 | On(強度: 0.5) | On(強度: 0.15) |
| High | 1000 | On(強度: 1.0) | On(強度: 0.3) |
モバイル対応
THREE.Pointsのサイズをデバイスピクセル比で調整- モバイルでは自動的に Low 設定を適用
- ワープトンネル演出のパーティクル数を半減
- ポストプロセスエフェクト(ブルーム、クロマティックアベレーション)を無効化