シーンファイルを書いてみよう!
シーンファイルの構成
さぁ、チュートリアル入門編もこれで最後。
この章を理解した頃には、簡単なシーンを自分で作ることができるようになっているはずです。
前の章でそれぞれのアセットに対して名前を決めましたね。
それらのアセットを子ノードとしてsceneクラスに定義していくことでシーン定義を行ないます。
それでは見ていきましょう。 シーンファイルの定義は非常に簡単で
scene:
sensor: sensor
nodes:
- id: sensor
sensor: sensor_1
- light: light_1
mesh: mesh_Plane
bsdf: bsdf_black
- mesh: mesh_bunny
bsdf: oyouhuku
nodes
以下に記述していきます。
カメラの役割を果たすsensor
だけid
を登録しなくてはいけません。
なのでまずnodes
に入る前に任意の名前でsensor:
にid名をつけましょう。-light:
では今面光源(area)を用いているので、その形状(trianglemesh)を表すmesh_Plane
と材質(bsdf)を表すbsdf_black
を関連づけしています 。前章で
oyouhuku
にはtextureであるtex_oyouhuku
を関連づけしていましたね。
そのためmesh_bunny
とoyouhuku
を関連づけすることでtextureが貼り付けられたウサギちゃんを作ることができます。
他のライトやオブジェクトも同じように作成していきます。
アセットを移動・回転・拡大させる
最後にアセットを移動させてみましょう。
上のシーンファイルの定義で作成したシーンのレンダリング結果を見てみましょう。
このウサギの位置を動かしてみましよう。
scene:
sensor: sensor
nodes:
- id: sensor
sensor: sensor_1
- light: light_1
mesh: mesh_Plane
bsdf: bsdf_black
- mesh: mesh_bunny
bsdf: oyouhuku
transform:
translate: -2 -1 0
赤字で示したところが新しく記述されました。ウサギの位置が変わっているのがわかりますね。
translate:
にそれぞれx,y,z方向どれだけ動かしたいかを記述します。
次に回転と拡大させてみましょう。
scene:
sensor: sensor
nodes:
- id: sensor
sensor: sensor_1
- light: light_1
mesh: mesh_Plane
bsdf: bsdf_black
- mesh: mesh_bunny
bsdf: oyouhuku
transform:
rotate:
axis: 1 0 0
angle: -90
scale: 2 2 2
赤字で示した部分が回転を表します。また、青字で示した部分が拡大を表します。
かなり成長したウサギちゃんが睡眠してますね。
回転させるには、rotate
と記述してaxis
に回転軸を
angle
に回転角度を記載するだけです。拡大させるには、
scale
で(x,y,z)それぞれどの方向にどれだけ拡大させたいのかを記述します。ここでは
Trianglemesh
であるうさぎちゃんだけを大きくしたり動かしたり回転させたりしましたが、
light
やsensor
等も同様の方法で動かすことができます。
シーンファイルを書く上でひとつ注意点として、インデントに気をつけてください。 それぞれのアセットがノード構造を持っているため、インデントの位置でツリー構造のレベルが決定します。
これでチュートリアル入門編はおしまいです。 発展編ではさらに複雑なシーンの作成や、Lightmetricaの拡張を行い方を説明していきます。