実はキャラクターが反転しているどころかアニメーションの動きも反転していたのですw
しかし今回、Blenderの右手座標系(Zup)のアニメーションモデルを
Away3D 4.0の左手座標系(Yup)で回転などさせずにそのままの状態で描画させることに成功しました。
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/11/pick-shacho/dc/c6/p/o0529025611890291371.png?caw=800)
■ 操作方法:上キーで手を振り、左、右、下キーで走ります。
マウスドラッグでキャラクターが回転します。
◆【できあがりはこちらをクリック(要:FlashPlayer11 ビデオカード等GPU搭載PC)】
キャラクターはBTAさんのサイトからお借りしたものです。
■ 素材提供サイト
BTAさんのサイト:http://funsethp.web.fc2.com/
下記のサイトの方もおっしゃていますがBlenderは右手系でAway3Dは左手系なので
そのまま読み込むと変な向きになっていたり反転したりといろいろめんどうなことが起こりますので
工夫しなければなりません。
■ 参考サイト
96necoさんのサイト:http://www.96neco.com/blog/log/171
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/11/pick-shacho/47/9d/p/o0328041211890306254.png?caw=800)
まずはBlenderのモデルをAway3D 4.0で描画させる方法ですが、
Blenderは右手系なので左手系のAway3D 4.0で描画させようとすると
下図のように描画がおかしくなりますので、Away3D側では頂点のyとzを入れかえます。
そうするとBlenderと同じ状態で描画されました。
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/12/pick-shacho/8a/5a/p/o0409028811890373802.png?caw=800)
次にボーンアニメーションですが、やはり右手系のBlenderのデータを
そのままAway3D側で読み込むとうまくアニメーションされません。
そこでBlenderのY軸回転をAway3D側ではZ軸回転にし、
BlenderのZ軸回転をAway3D側ではY軸回転にし、Blender側のボーンの回転角度にAway3D側でマイナスを掛けるとうまく描画されました。
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/11/pick-shacho/87/b7/p/o0410023111890306252.png?caw=800)
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/12/pick-shacho/c3/fb/p/o0517021211890331873.png?caw=800)
そしてこれで終わりではなく最後に最大の難関が待ち受けていました。
それは下図はBlender側のボーンの行列ですがこれは右手系なので
左手系で行列計算させるために変形し、またY軸とZ軸を入れかえたりと
いろいろめんどうなことをさせられました。
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/12/pick-shacho/b8/53/p/o0517042811890331875.png?caw=800)
そして答えは下図のようになりました。これをていねいに解説しろといわれれば
一冊の本になりそうなので今回は結果だけとしておきます。(;^_^ A
![$ピック社長のブログ](https://stat.ameba.jp/user_images/20120402/12/pick-shacho/08/cb/p/o0399029611890331874.png?caw=800)
プログラムにすると下記のようになります。
|
以上ですが、今回開発した「Away3D 4.0用Colladaインポーター」がようやく本格的に使用できるレベルに達してきたので
もう少し整理してから公開しようと考えています。