スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

またまた

2009年02月17日 00:26

一ヶ月ぶりぐらいの日記です('A`)
うーん。。なかなか記事となるネタがないんですよね~。。

とりあえず、exp マップを紹介します。


膝を思いっきり曲げて歩くモーションと普通に歩くモーション、それと走るモーションの3つを組み合わせて中腰で小走りに走るモーションを作りたい!なんて時があるかもしれません(なかなかないけど)

そんな時、モーションをいい感じにブレンドして処理できれば素敵ですよね。
モーフィングみたいに複数のモーションからひとつのモーションを作り出すような感じで。
そんなときに使うのがこの exp マップです。

なぜこの技術が必要なのか?
その原因がクォータニオンです。
最近のゲームでは姿勢の制御や回転アニメーションはもっぱらクォータニオンで行っています。

クォータニオンを使ってる場合、ただ単にそれぞれの要素を線形補完してしまうと、長さが変化してしまいます。
長さがあるうちは単位化してしまえば何とかなりそうですが、長さが 0 になることもありうるわけです。
そうなると、単位化時に 0 除算エラーを招いてしまいます。
長さを保つ球面線形補完を使えばいいじゃんって思うかもしれませんが、球面線形補完は2つの間を補完するためだけにしか使えません。


そもそもなぜクォータニオンを使うのか?
クォータニオン以外の方法で回転を表す方法にオイラー角というのがあります。
ロール、ピッチ、ヨーの3この角度で制御するやつですね。
クォータニオンなんかより直感的に解り易いですし、データの数も少ないです。
しかし、このオイラー角、実は特異点があるという問題があります。
ロール→ピッチと処理した後ヨーの回転を行うとき、ヨーの回転軸がロールかピッチの軸とかぶってしまった場合、ジンバルロックというヨーの回転が意味を成さない(何も回転しない)現象がおきてしまうからです。
一自由度減ってしまうわけですね。

他にオイラー角から行列を作成するのは積算の回数が多いので、あまり効率的じゃないというのもあります。


さて、そんな問題を一気に解決する exp マップの方法なんですが、、、、
これは折角のネタなので次の回にまわしたい思います。
スポンサーサイト


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://angra.blog31.fc2.com/tb.php/132-9bfdb64e
    この記事へのトラックバック


    最近の記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。