2011年1月11日火曜日

構造体が無いんっすよねぇ

自分のモノも作れる時間が取れるようになったっす。
本格的には2月に入ってからになると思うんっすけどね。
どうもぺんぎんっす( ◎v◎ )


LSLにはlist型っていうのがあるっすけど、構造体は無いっす。
単にデータ型の組が必要な場合(構造体の定義が欲しいわけっす)、
いろいろと細工が必要になるっす。
しっくり来ないんっすけどね。


// 構造体っぽいものの初期化
list SetNewStruct(integer a, string b, vector c)
{
  return [a, b, c];
}

// 構造体っぽいものの参照
integer GetStruct2Integer(list x)
{
  return llList2Integer(x, 0);
}
string GetStruct2String(list x)
{
  return llList2String(x, 1);
}
vector GetStruct2Vector(list x)
{
  return llList2Vector(x, 2);
}
    ・
    ・
    ・

あとコピーは=演算子でイケるとしても、代入とかも書かないといけないっす。
メンバに" . "でアクセス出来ないのでこうなるわけなんっすけど、
そうだとしても冗長に思えるっす。

他には構造体の識別子(名前なので文字列になるっすよね)を
list型に全部ぶち込んで、llListFindListでindexを取る方法っす。
でもこれだと構造体っぽいlistの、一体何番目の要素がどの型なのか
はっきりしなくなるっす。
上の方法だと何番目がどの型なのかはっきりするんっすけどね。


作ろうとしてるのは多倍長演算の部分っす。
数値をどう扱おうか迷ってる段階なので、全然進まないっす…

2011年1月10日月曜日

10cmの隙間っす

オフィスアワーから情報を仕入れてきたっす。
かなり影響が大きいっすね。
どうもぺんぎんっす( ◎v◎ )


Beta Server Office Hourからっす。
Havok 2k10っていう単語が見えるっす。
Havok7のときにも出てきたFalconさんが頑張ってるみたいっすね。
いつになるかはまだ分からないっす。

Havok 2k10については個別ページがあるっす。
まだBetaなので最終的な仕様とは異なる場合があるっすけど、
とりあえず目を通しておくと良いと思うっす。

「ほとんどのオブジェクトから『10cmの隙間』を失くす」(ぺんぎん意訳)
(原文はChangesの
we have removed the "10cm gap" from most objects.)
というのが大きな点っす。
10cmの隙間っていうのは、物理オブジェクトを何でも良いっすから
何かの上に乗せてみると分かりやすいっす。
物理オブジェクトの下に隙間が出来ると思うっすけど、
この隙間の幅が10cmになるっす。
スクリプトではcollisionイベントが上がるっすけど、
見た目ではくっついて見えないわけっす。
今度のHavok 2k10では、この隙間は無くなるっす。

に書いてあること以外で思いつくのはアバターについてっす。
10cm沈んじゃうんじゃないっすかね?
足回りのモノは使い物にならなくなる可能性は否定できないっすね。
装着位置をズラせば良いだけのことなんっすけどね。


これは調べがいがありそうっすね。

2011年1月8日土曜日

rotationへの持って行き方っす

いつの間にか2011年っすね。
今年もちょこちょこ書くっすよ。
どうもぺんぎんっす( ◎v◎ )


直接記述するのは面倒なので、別のカタチから持って行くっすよね。
とは言ってもllEuler2Rotでやってるのがほぼ全部っす。
他にもrotationへの持って行き方があるんっすけどねぇ。

自分はllAxisAngle2Rotも使ってるっす。
回転軸を明確にできるのが良いっすよね。
でもllAxis2Rotはイマイチ分かりにくい感じがするっす。
乗り物(飛行機系)で使われてるんっすかね?


単純なZ軸周りだけの回転はrotationを直接書いてるんっすけど、
皆さんはどうやってるっすかね?
Free Avatar