bf-blender Windows(8/27): SoCのIKプロジェクトが公式ツリーに

投稿日時 2005年08月28日 | カテゴリ: テストビルド

元記事:BF-Blender : SoC IK inside / windows (2005/08/27)

遅くなってすみません。lguillaume氏による、8/27付 bf-blender Windows版のビルドが公開されています。
どうやら、先日お伝えしました SoC のIKプロジェクトが公式ツリーに組み込まれた模様です。
Blendix氏
Log:
IK lib の変更点:

以下のコンポーネントにより、完全に再構築されています:
- IK_Solver: C ⇔ C++ のインタフェイス。

- IK_QSegment: Bone/Segment 用のベースクラス。0 から3 のDOF(Degrees Of Freedom)を持ちます。

- IK_QTask: タスク用のベースクラス(現在、位置と回転のタスクがあります)。

- IK_QJacobian: SVD(特異値分解)、減衰などを備えたヤコビアン行列。

- IK_QJacobianSolver: その反復ソルバー

指数写像のパラメータ化はもはや使用されておらず、代わりに以下を使用しています:
- 3DOF と 2DOF の XZ Segment:ロドリーグの式により、直接行列を更新します。

- その他:オイラー角(冗長性に関してはここでは心配いりません)

逆ヤコビアンの計算も変更されました:
- SVD アルゴリズムは丸め誤差によるいくつかの問題を防ぐため、NR の代わりに LAPACK のコードを元にしたものになりました。

- この問題が余儀なくされた時(ほとんどの場合)、ヤコビアン行列の転置に SVD が計算されます(高速)。

- 新しい減衰アルゴリズムは、選択的減衰最小自乗法(Selectively Damped Least Squares)と呼ばれるものが使用されており、その結果、より高速に、そしてより安定した収束が得られます。

- Stiffness(堅さ)は重み付き擬似逆行列(weighted pseudo-inverse)が使用されていた時のように実装されています。

ツリー構造をサポート。

回転制限:
- 3DOF と 2DOF XZ segment の制限は、スイング(XZ平面上の軸の角度)成分と、ツイスト/ロール(Y軸回転)成分を元にしています。スイング領域は、球上の楕円です。

- 回転の制限は、内部の clamp ループを使用して実装されています:違反がある限り、違反する DOF が clamp されてヤコビアン行列から取り除かれ、そして解が再計算されます。
収束のチェックは、角度の変更の最大の平均、もしくは、繰り返しの最大数を元に行うようになりました。

今回の訳は自信が全くありません。間違いあればご指摘お願いします。

SoCのIKプロジェクトに関しては、前述の、以前のビルドの記事をご覧下さい。
個人的にはもう叫びまわりたいぐらいの嬉しさです。これでサクサクと作業が進められます。IKのスピードを実感して下さい。もちろん、軸回転制限も。



Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=1389