リアルタイム系の3DCG制作に関するノウハウや実践的なTipsを共有するWiki形式のWEBサイトです。

クォータニオンで回転のブレンド

元となるノードの半分だけ回転させたい


IK、FKの切り替えなどで回転値をブレンドすることがありますが、どうしてもフリップしてしまうことがあります。
この問題は通常オイラー角で表現されている回転値を一度クォータニオンに変換してあげれば解決できます。たぶん。
eulerToQuatノードとquatAddノードを使用してブレンドすればフリップすることは無いはずです。たぶん。
プラグインマネージャでquatNodes.mllをロード



左が回転元のノード(main)、右がターゲット(out)


ノードエディターで下図のように構成します。

  • eulerToQuatノードを作成(2つ)
  • quatAddノードを作成
  • main.rotate >> eulerToQuat1.inputRotate
  • eulerToQuat1.outputQuat >> quatAdd1.input1Quat
  • quatAdd1.outputQuat >> quatToEuler1.inputQuat
  • quatToEuler1.outputRotate >> out.rotate
  • quatAdd1.input2QuatW を 1.0に変更。



するとこのように(わかりづらいですが)元ノードの半分だけ回転する効果が得られました。


2つのノードで回転値をブレンド


quatAdd1のinput2を数値入力ではなくもう一つのノードから回転値を与えて、2つのノードの回転値をブレンドすることもできます。
タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

※現在 ユーザーID保持者 のみがコメント投稿可能な設定になっています。

Wiki内検索

メニュー

Maya

管理人


管理者:kmj
Twitter:@kmj3dcg
ゲームグラフィックに携わり十数年、現在フリーランスのモデラーとして活動しています。
専門分野:モデリング、テクスチャ、ウェイト(キャラモデルがメインのゲームグラフィッカーです)
お問い合わせはこちらまでお願いいたします。

Amazonアソシエイト

皆様のご協力感謝しておりますm(_ _)m























管理人/副管理人のみ編集できます