EasyFAQ/63

Last-modified: 2009-04-09 (木) 23:39:53

ボーンの回転について

投稿者yamamoto
重要度
状態
カテゴリ
HSPバージョン3.1
E3Dバージョン5.0.3.6
回答

ここから下を自由に編集してください。
上の投稿情報は安易に編集するとFAQリストのリストアップに支障が出るものもあります。
よく分からない方は分かる人に聞いてみてください。

  • 3D空間を自由に移動できるキャラクタの髪の毛をE3DIKRotateBetaを利用してモーションとは別の動きをさせています。ぐるぐると回転したり、急な方向転換を行った後ボーンがひねられた状態になります。この状態を回転前の基の状態に直したいのですが何か良い方法は無いでしょうか? -- yamamoto? 2009-04-02 (木) 14:05:31
  • 回転前にE3DGetBoneQ 、 3D描画命令の後ろでE3DSetBoneQ 。いや、これじゃダメかも。。 -- 26℃? 2009-04-07 (火) 11:38:14
  • リセットであればボーンのクォータニオンからE3DGetQAxisAndDegで軸と角度を取得して一つ前の姿勢を引いたものをE3DSetQAxisAndDegでセットの方法で出来そうです。ただ、この方法だとリセットした瞬間にズレが発生するので、目立たないモーションのときにリセットをかけるなどの工夫が必要になることと、現在再生中のモーションにのみリセットがかかるので別のリセットがかかる前のモーションに移ると再び形が崩れてしまうんですよね。モーションファイルを再度読み直してリセットとか考えましたが、処理的にはあまり良くなさそうな気がするんですよね…。 -- yamamoto? 2009-04-07 (火) 13:15:39
  • モーションファイルを再度読み直しは自分もしたことがありますよ、最終手段ですね。
    E3DGetBoneQ E3DSetBoneQの処理の順番は
    モーション設定(E3DSetMotionKind・E3DGetMotionKindなど)
    E3DGetBoneQ
    IKボーン操作
    レンダリング
    E3DSetBoneQ
    これでモーションの形はずれないと思いますが、どうでしょ -- 26℃? 2009-04-07 (火) 14:01:42
  • 26℃さんありがとうございます。マルチレイヤモーション等を利用して髪と本体のモーションを分けE3DSetBoneQでリセットする方法で上手く出来ました。モーションアクセラレータだけの場合は上手く行かないようでした。 -- yamamoto? 2009-04-08 (水) 22:43:35