2009年 05月 13日

疲れが とれた。

やっと運動会の疲れが取れました orz
 ふだんから5km位は海岸を走って、
  体力を作っているのですが、それでもツカレタ。

 まあ、とりあえず無事に終わってよかったです。

 で、更新をしてない間何もしてなかったといえば、まあ、何もすすんではないんですが(汗

 スクリプトが完成しないのです orz

 いや、先日、xsiでガンダムを作っておられるサイトで、カーブにポイントをスナップさせるのを手作業でやっておられました。たしかに、カーブにスナップをかけ、一つ一つ行えば可能ですが、
 非常にめんどくさい。スクリプトでポチットできないかと、思った訳です。

 すでにそんなスクリプト存在するかもしれませんが、勉強をかねて、作ってみようかと思いました。

 これが、まだ解決してないのですヨ

 例えば移動はxでそろえると仮定し
 xz平面で zにおけるポイントの位置と、
 カーブのxの座標を取得しなければならないと考えましたが、そんな、プロパティなどありませんでした。

かわりに、カーブの%における座標は取得できましたので、
 力技で1%づつ、取得して一番近いポイントを照らし合わせる事にしました。

本来なら取得した位置の間をリニア補完した数値等入れると、正確な値がでるかもしれませんが、
 難しそうなのでパス(w

ということで、さほど難しい事は無く、
 カーブと、Nullの実験ではうまくいきました。

しかし、メッシュのタグ付けしたポイントのみ移動させるのが
 うまくいきません。

理由1
 コンストラクションモードとの兼ね合い。
  PositionArrayでは、フリーズしたものが前提。
   スクリプトオペレーターでは可能らしいがやり方がわからん。
  とりあえず、フリーズした事を前提として進めてます。

理由2
 VBArrayをtoArray()でJS化しないとダメ。いまいち解ってない。

理由3
タグ付したポイントはSubComponent.ComponentCollectionで取得するが、
 取得したデーターを変更後の適用のさせ方がわかんにゃい。
  ---.PositionArray = oPos(変更済みの値)
を適用すると、タグ付けしたポイントでなく、
   Indexの最初のポイントに適用するみたい。
 
 ・Index[5-8]のポイントをタグ付けして、データを変更し適用すると
 ・Index[0-3]のポイントが変更されてしまう。
  なんでだろうね。
  
理由4
 多分ポイント移動はローカルで行ってると思われる。
  コレをグローバルに変更しないとダメ。上が出来てから解決しよう。

そんな感じで悩んでマス。
[PR]

by tera_planet | 2009-05-13 14:22 | 日常


<< SnapCurve_0.1      IkaRig 腕のIKが2種類... >>