Cameraと3D
Cameraカテゴリの実装上のIDはmotionです。表示名だけがCameraへ変更され、カメラの位置、回転、回転順序、FOV、注視点を操作できます。
カメラのコマンド
motion_setcamerato
motion_setcamerax motion_setcameray motion_setcameraz
motion_changecameraxby motion_changecamerayby motion_changecamerazby
motion_setcamerarotation
motion_changecamerarotationby
motion_setcamerarotationorder
motion_setfov
motion_lookat
カメラのレポーター
motion_camerax motion_cameray motion_cameraz
motion_camerarotationx motion_camerarotationy motion_camerarotationz
motion_camerarotationorder
motion_fov
motion_focallength
位置と回転の既定値は0、回転順序はXYZ、FOVは約53.13度です。FOVと焦点距離は相互変換され、FOVは0.001〜179.999度へ正規化されます。回転順序はThree.jsが扱う6種類を使用します。
Objectsと3Dシーン
現行の3D描画経路は次のとおりです。
- Cameraカテゴリでカメラを操作する
- Objectsの
drawでmodel資産を選ぶ - 位置、回転、スケール、
FRAMEを指定する - 必要ならObjectsの
sceneで複数のObjectsをまとめる
objects_scene内の子描画は、同じThree.jsシーンと深度バッファで評価されます。Scene外の通常DrawはScratch/Penの2D経路です。
モデル形式はglb、pmx、fbx、obj、モーション形式はvmd、vpdです。OBJでは対応するMTLとテクスチャを同時に扱い、PMXではモデルフォルダのテクスチャを解決します。読み込み後は内部で統一されたGLB資産として保持します。
VMDはリグ/ボーンを持つモデルに対して30 fpsで再サンプリングし、VPDは1フレームのポーズとして扱います。モデルのFRAMEはモデルアニメーションのフレーム番号です。
ライト
Objectsカテゴリに表示される現行ライトブロックは、looks_という旧IDを使います。
| Opcode | 種類・操作 |
|---|---|
looks_clearlight | ユーザー定義ライトを全消去 |
looks_addpointlight | 点光源を追加 |
looks_addlight | スポット光源を追加 |
lights === nullでは後方互換のstudio lightを使用します。ユーザーがライトを1つ追 加するとauthored light sceneへ切り替わり、その後はライトを累積します。looks_clearlightはauthored light sceneを空にします。
点光源のshadow mapは256、スポット光源は512、遠方距離は10000を基本値とします。
ステージの既定サイズは480×360です。既定のfocal lengthはステージ幅を基準に計算されます。