リアルと使い勝手の共存

02/08/2008

前腕骨(手首)の捻れ回転による座標位置の変動

一般的に腕は直線に配置されていますが、実際には真っ直ぐではありません。

簡単な例では右上の図のように腕を下げ、両脇を閉め、腕を真っ直ぐにしてみて下さい。

標準体型であれば手首は腰に付かないはずです。さらにそのまま手のひらを正面に向けると手は体からより遠くに離れてしまいます。

また、右下の図のようにテーブルなどに腋の下をくっつけて腕を伸ばしてみても実際には腕が直線でないことがよく分かると思います。(腕が細いほど明確)

いわゆる手首を捻るとは肘より先にある前腕骨を捻ることをいいます。
前腕骨は2本の骨で構成させていますが、これを捻ると2本の骨が相互的に回転するのではなく、小指側の骨を基準に回転を行うため、結果として手の位置は上下に移動することになるのです。

これを厳密に考えると下の3つの図のようになります。

手の座標位置は手首(前腕骨)を捻ると上下に移動します。これが現実の世界です。
しかし、3Dの場合はかならずしもそれにこだわってばかりもいられません。なぜなら多くの企業では直線で構成されているからです。またモーションキャプチャーデータではそのデータの品質に左右されます。

結論としてBaji's Boneでは、肘関節に関しては上下角10度以内であれば問題が発生しないようギミックを設計致しました。

肘位置を固定

手の位置が上下する
肘位置と手首位置を固定

前腕骨が上下に回転する
(通常ありえない)
手首位置を固定

肘位置が上下する

Baji's Boneではいずれの場合も問題なく作動する。

上腕骨と前腕骨(手首)の逆捻れ回転

腕には人体で唯一特定の条件下でしか発生しない関節形態があります。

それは肩と手首を固定し、その中間にある肘関節のみを回転させるという行為ですが、これは腕を伸ばした時のみできる行為です。

右の図のように手の平は共に下を向いていますが、肘の内側は斜め上と斜め下になっています。

これは上腕骨と前腕骨とが違う捻じりを行っているからですが、これを別の視点で考えると、腕を伸ばした時は肘の回転平面はどこを向いているのかを指定しないといけないことを意味します。

この整合性を保ったままMotionBuilderのデフォルトに対応することができました。