もきもき3D

アクセスカウンタ

zoom RSS LScript上のComringの変更点と注意点

<<   作成日時 : 2009/12/12 15:43   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Lightwave 8〜9.3.1迄のcomringencode/comringdecodeで使えるdatalistのdetatypeは
 "i" == int;
 "f" == float;
 "d" == double;
 "s:Num" == char[Num]
 これらに#Numを付けると配列になる。 "i#3" == i[3];、"s:10#4" == char[4][10];

で、Lightwave 9.6からは上記に加え、ポインタ型として "p" が増えた。

 8〜9.3.1では"p"を受け付けずスクリプトエラーになる。

 "i"でエンコードしたポインタ相当のデータ(item.id等)は、SDKプラグイン上では(LWItemID)にキャストしてから扱う必要がある。
 "p"でエンコードされたポインタはvoid*になるだろうから(LWItemID)でキャストしても問題なさげ。

注意点:
 LScriptがdatalistに沿って作る構造体はアライメントされていない。
 SDKプラグイン側ではアライメント/最適化で変化している可能性がある為、データのやり取りに失敗する事がある。
 その場合はSDKプラグイン側で定義を#pragma pack(1)〜#pragma pack()するなどして構造を保証する事で解決出来る、はず(;・з・)


 ComringのSDKサンプルはごちゃごちゃしてる上にバグってるし、完遂出来る唯一のサンプルたるmakeJointChain.lsは9.6で拡張された機能を使ってるし、SDK側のItemShapeはヘッダが欠落してるし・・・もうね、なんつうか(・x・)

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
LScript上のComringの変更点と注意点 もきもき3D/BIGLOBEウェブリブログ
文字サイズ:       閉じる