イントロダクション:SubViewportでゲーム表現を次のレベルへ
Godot Engineで開発を進める中で、こんな課題にぶつかったことはありませんか?
- 広大なマップをプレイヤーに分かりやすく提示するため、画面の隅にミニマップを置きたい。
- インベントリ画面で、キャラクターが装備しているアイテムを3Dモデルでプレビューさせたい。
- ポータルや監視カメラのように、別の場所の風景をリアルタイムで映し出す演出がしたい。
これらの課題は、単一のゲーム画面だけでは解決が困難です。しかし、Godotの強力なノードSubViewportを使いこなせば、すべて実現可能です。
SubViewportは、メイン画面とは独立した「仮想スクリーン」を生成し、その描画結果をテクスチャとして自由に再利用できる機能です。これにより、UI、ゲームロジック、グラフィック表現が劇的に向上します。
目次
SubViewportのコア概念:独立したレンダリング世界
SubViewportを理解する鍵は、「メインの描画パイプラインから独立している」という点です。このノード配下に置かれたシーンは、独自のワールド、カメラ、レンダリング設定を持ち、完全に別の場所で描画されます。
そして、その描画結果をメインシーンに持ち込むための橋渡し役がViewportTextureです。SubViewportの出力をこのテクスチャに設定することで、TextureRect(UI用)やSprite2D、さらには3Dモデルのマテリアルに貼り付けることが可能になります。
基本的なセットアップ
- ノード追加: シーンに
SubViewportContainerを追加し、その子としてSubViewportを追加します。(SubViewportContainerを使うと、サイズ管理が容易になります) - コンテンツ作成:
SubViewport