This repository was archived by the owner on Dec 26, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
[prior to 3.0] シーンとシーンオブジェクト
Yuya Matsuo edited this page Sep 12, 2016
·
1 revision
<!-- これがシーン -->
<scene>
<!-- シーンオブジェクト -->
<object
texture="@layout/hello_world"
z="-5.0" >
<!-- 子シーンオブジェクト -->
<object
x="2.0"
width="1.0"
height="1.0"
texture="@drawable/image" />
</object>
</scene>
シーンはレンダリングされるVRの3D空間を表します。シーンの中には複数のシーンオブジェクトが内包されています。
Scene
のインスタンスはMeganekkoApp.getScene()
で取得できます。
<scene>
に設定できる属性値です。
属性 | 説明 |
---|---|
class |
setSceneFromXML でシーンを設定する際にインスタンス化されるScene のサブクラス名を指定します。指定しない場合はcom.eje_c.meganekko.Scene のインスタンスが作成されます。 |
シーン内の描画される全てのオブジェクトはシーンオブジェクトとして表されます。描画されるシーンオブジェクトはMesh
とMaterial
を持っています。どちらか(もしくは両方)が設定されていないオブジェクトは描画されません。また、Material
はTexture
を持っています。
SceneObject -> Material -> Texture
-> Mesh
※歴史的な経緯により、内部的にはSceneObjectとMesh,Materialの間にRenderDataというものが入ります。ネイティブの低レベルな描画コードではRenderDataの情報を使って描画を行っています。
XMLの読み込みやSceneObject.from()
のメソッドを使っているとMeshの作成は自動的に行われるので、明示的に作ることはあまりありません。
シーンオブジェクトは階層構造を持つことができます。子のシーンオブジェクトは、親の座標変換後の相対座標で配置されます。
<object>
に設定できる属性値です。
属性 | 説明 |
---|---|
id | オブジェクトのIDです。Scene.findObjectById でオブジェクトを取得するのに使用します。 |
visible | 可視設定です。false を指定すると画面に表示されなくなります。 |
opacity | 透明度です。0.0 ~1.0 の範囲で指定します。 |
position | オブジェクトの位置です。スペース区切りの小数3つで指定します。例:1.0 0.0 -3.0
|
scale | オブジェクトの拡大率です。スペース区切りの小数3つで指定します。例:1.1 2.0 1.5
|
rotation | オブジェクトの姿勢を回転軸と角度で指定します。例えばX軸を中心に45度回転させたい場合は45 1.0 0.0 0.0 と指定します。 |
width | オブジェクトの幅です。小数で指定してください。height と一緒に指定しないと無視されます。 |
height | オブジェクトの高さです。小数で指定してください。width と一緒に指定しないと無視されます。 |
renderingOrder | レンダリング順序を整数で指定します。小さい数字のオブジェクトから描画されます。背景オブジェクトには小さい値、手前にあるオブジェクトには大きい値を指定すると良いです。 |
texture | テクスチャーとして使用するリソース名を指定します。例:@drawable/mytexture ,@layout/mylayout
|
x | X座標です。小数で指定してください。 |
y | Y座標です。小数で指定してください。 |
z | Z座標です。小数で指定してください。 |
scaleX | X方向の拡大率です。小数で指定してください。 |
scaleY | Y方向の拡大率です。小数で指定してください。 |
scaleZ | Z方向の拡大率です。小数で指定してください。 |