【Roblox】ViewportFrameについて
はじめに
今回はViewportFrameを紹介しようと思います。
Robloxバージョン:0.638.1.6380615
ViewportFrameとは
ViewportFrameとは3Dオブジェクトを2DオブジェクトとしてレンダリングすることができるGuiObjectです。
使用上の注意点として、影やポストプロセスはレンダリングされません。
またマテリアルのEnum.Material.NeonおよびEnum.Material.Glassは最低品質でレンダリングされます。
上記注意点もありますが、3Dオブジェクトを2Dで表現したい場合は多いので非常に役に立ちます。
主に設定するプロパティの値
- Ambient:ViewportFrame内の照明の色を設定できる。
- LightColor:放射される光の色を設定できる。
- CurrentCamera:子オブジェクトをレンダリングするために使用するカメラ。
使用例
下記のようにViewportFrameの子に2Dオブジェクトとして表示したい3Dオブジェクトを
設定します。
エクスプローラーの配置
ViewportFrameのプロパティのCurrentCameraを設定します。
プロパティ CurrentCameraを設定
一応これで2Dオブジェクトとしてレンダリングすることができます。
ViewportFrameなし | ViewportFrameあり |
---|---|
物理演算、Humanoidを設定する場合
実はこのままでは、キャラクターモデルをViewportFrameの子に設定した場合、アニメーションは再生されません。
一緒にアニメーションをしてほしいが...
ViewportFrameの子にするとアニメーションが止まる...
上記問題を解決するにはWorldModelインスタンスを使用します。
WorldModel
WorldModelとはViewportFrameの子に設定することで、WorldModelを介してRaycastを使用できるようになるインスタンスです。
また、WorldModelの子にHumanoidキャラクターを設定することで、ジョイントが正しく設定されてHumanoidキャラクターのアニメーションの再生が可能になります。
エクスプローラー内の配置
Humanoidキャラクターのアニメーションが動いた!
ジョイントが正しく設定されるので、ViewportFrame下でもアクセサリーの設定が正しく動作するようになります。
キャラクターの見た目をUIで確認しながら変更するような機能を作成する場合は、
ぜひ使用しましょう!
まとめ
- 3Dオブジェクトを2Dオブジェクトとして表現したい場合はViewportFrameを使用する。
- ViewportFrame内でHumanoidキャラクター、またはRaycastを使用したい場合はViewportFrameの子にWorldModelを配置して、その子に3Dオブジェクトを配置する。
3DモデルをUIとして表示したい場合は、ぜひViewportFrameを活用してみてください!!
参考
当社ではRobloxを活用したゲームの開発、 また企業の商品やサービスの認知度拡大に寄与する3Dワールドの制作など、 Robloxにおける様々な活用支援を行っております。 Robloxのコンテンツ開発をご検討されている企業様は、お気軽にご相談ください。 landho.co.jp/
Discussion