アバターの座り位置を調整する関数(llSitTarget関数)
ソファを作りました。しかし自分で作成したソファに座る(SitDown)と、このように変な位置に座ってしまいます。
これはいくつかのオブジェクトを結合して作ったことで中心位置がずれることによって生じる現象です。
下記のスクリプトで、アバターがSitDownした時の位置を指定します。
default
{ state_entry() { llSitTarget(<-0.8, 0.2, -0.6>, llEuler2Rot(<220, 260, 0> * DEG_TO_RAD)); } } |
llSitTarget関数() 一番目のパラメータ : 座る位置。単位はメートル。<X軸,Y軸,Z軸> 二番目のパラメータ : 座る角度<X軸,Y軸,Z軸>(ラジアン値で指定しますが、ラジアンはわかりにくいので、 下のllEuler2Rot関数を使って角度で指定したいと思います。) |
llEuler2Rot関数(角度からラジアンに変換) 一番目のパラメータ : 角度<X軸,Y軸,Z軸>度*DEG_TO_RAD |
注意!!!
位置と角度は座る椅子やソファのオブジェクトによって違いますから、値は調整してご利用ください。
このソファの場合は、座る位置をX軸に-0.8m、Y軸に0.2m、Z軸に-0.6m。
座る角度をX軸に220度、Y軸に260度、Z軸に0度で調整しました。
このスクリプトによって、無事に正しい位置に座ることができました。
今後は、足や手を組むポーズアニメーションを入手して設定したいと思います!