とりあえず、Lscriptを使ってモーションリターゲットのスクリプトを
組めないかなと思ったので、オイラー角について色々調べてみました。
色々調べたり、試したりしているうちにアルゴリズムらしきものが
みえてきたので少しメモしておきます。
①リターゲット元とリターゲット先の任意のボーンに対し、
そのボーンからルートのボーンまでのH,P,Bを取得し、
それらを元に任意のボーンの、ワールド座標系からみた
各回転軸の基底ベクトルを取得
②リターゲット先の各回転軸の基底ベクトルとリターゲット元の
各回転軸の基底ベクトルの差を取得し、リターゲット先の
H,P,B回転方向に差分を分解
③リターゲット先の回転キーには"リターゲット元の回転角度+差分"を代入
これでいい…のかな。
最近になってようやく3D数学を基礎から勉強してるのですが、
ようやく行列の入門に入ったばかりで、オイラー角もクォータニオンも
ほとんどまだ詳しくないので、実際には何ともいえない状況です。。
それと個人的にはLWでDivideやConnectをする際、アイランドが異なる
UVは自動的にヒールされてしまうというよく分からない現象が起こるので、
ヒールせずにポリゴン分割するスクリプトも出来れば作ってみたい。
といってもまだLscriptについてほとんど何も分からない現状なので、
まずはLscriptの基礎から覚えていこうかなと思います。