メインコンテンツまでスキップ

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.001179.999度へ正規化されます。回転順序はThree.jsが扱う6種類を使用します。

Objectsと3Dシーン

現行の3D描画経路は次のとおりです。

  1. Cameraカテゴリでカメラを操作する
  2. Objectsのdrawmodel資産を選ぶ
  3. 位置、回転、スケール、FRAMEを指定する
  4. 必要ならObjectsのsceneで複数のObjectsをまとめる

objects_scene内の子描画は、同じThree.jsシーンと深度バッファで評価されます。Scene外の通常DrawはScratch/Penの2D経路です。

モデル形式はglbpmxfbxobj、モーション形式はvmdvpdです。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はステージ幅を基準に計算されます。