ここ1年ほどComicStudioの3DをLWSで活用する方法を試していたけれど
いろいろ使い勝手に制限を感じていたので
コミスタの3D設定を保存するファイル(.csd)を調べてみた
とはいえ 簡単なテキストファイルとかなわけでもないので
色々設定をかえて バイナリエディッタをにらめっこ

MK3Dで始まる8バイトのヘッダの後
01 00 00 00 A5 02 00 00 01 00 00 00 .....
といった感じのデータ
4バイトのIDデータの後 4バイトでデータの入ってる部分の長さ その後実データ
データの部分には入れ子に 同じ形式のデータ列が入っていることもあるようです
(図だとID 01のデータが0x2A5バイト その中にID 01のデータが4バイト ID 02のデータが4バイト...)
また 数値設定データの多くは64ビットリトルエンディアンで保存されているようでした
つまらないデータ構造の話はこのへんにして
実際に保存されているデータの話
■カメラ設定
通常の3Dソフトのカメラ設定は
視点(カメラの位置)注視点(視界の中心)画角(見える範囲)
のデータを持つことが多いけれど
コミスタの内部データでは
注視点(3次元座標)と注視点からみたカメラの回転移動(角度),画角で保存しているようです

ちなみに『パース』の設定項目は左右の画面の見える範囲の角度(画角,単位は度)
のようで コミスタの標準状態で
注視点座標の左右に20.7の範囲が見えるようになっているようです
(コミスタの内部単位で 視点からの距離50*tan22.5度)
通常ならば 角度の設定をかえれば 画面内に写っている内容がかわるのですが
カメラの位置も移動させることで 遠近感のみを制御しているようです

■形状データ
形状については読み込むファイルのファイルパスと移動情報と 選択状態等のようです
(相対パスでファイルパスの区切りは¥ DOS形式というかことかな)
移動情報は コミスタの画面に表示されている値と
3Dソフトでよく使われる変換マトリクスが個別に保存されているようです
また LWSで形状を読み込んだ時にできる親子関係も
CSDファイル内に格納されているのを確認 必ずしもLWSファイルを使わなくても
親子関係を設定可能なのを確認しました
(読み込む3DファイルがOBJとかでも可能)
他 陰影 階調化の有無や階調化の位置 光源位置 輪郭線の幅やレイヤーの色
なんかの設定項目を確認してあります
色々調べている間に コミスタ問題点を色々見つけたのですが
それは別の機会に
とりあえず 調べた結果を元にShadeとGoogleSketchUPの
カメラ設定をコミスタ用設定ファイルに書き出すソフトを作成中です
|