2017-04

スポンサーサイト

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

なんとかXNA上でキャラが動くようになりました

テストに必要なモーションも揃ったので、早速XNAに乗せてみましたが問題多発…。まず、最初に問題になったのが、AnimationClipのDuration(アニメーションの持続時間)。1秒未満のデータはすべて1秒として認識しているようです。SkinnedModelProcessorのProcessAnimationを変更して対応しました。要は、各キーフレームの時間を見て一番デカイ数値をアニメーションの長さとしました。
そして次の問題は…、Matrix.Lerpってそんなに信頼しちゃダメ?的な問題。キーフレーム間の補間や、モーションブレンドに多用していましたが、どうもダメなニオイがします。キーフレーム間の場合はキーが多ければキー同士の情報はほとんど同じなので、それほど気にならなかったのですが、モーションブレンドではかなり無理のある補間をするため、問題が浮き彫りになりました。かなり歪みます。キャラの頭部が歪むのはさすがに厳しく、とりあえずクォータニオン補間にしておきました。キーフレームはすべて行列なので、いちいちスケーリング、位置の要素を抜き出す必要があり、非常に煩わしいものがあります。ていうか、コンテンツパイプライン上で全部のキーフレームをクォータニオン化しておいたほうがいいでしょうね、この方法でいくなら…。さすがにここまでくると、このサンプル(SkinnedSample)ってかなりダメなニオイを発しているような気がするのですが、気づくのが遅かったでしょうか…? やっぱAnimationComponentLibraryの方がいいのかな…?

そして次はMatrixのLookAtなんですが、なんか変? キャラは位置と向きのベクトルで持っていて、LookAtで回転行列を作ったのですが、どうしてもZの向きが逆になる。意味がわかりません。しょうがないので、これも自作して対応…。

これでなんとかキャラが動くようになりました。早速動画に保存してみようと思い、画面キャプチャーのソフトをチェックしてみる。国産もいろいろあるようですが、やっぱりFrapsが一番キレイに撮れました。最新版は日本語化パッチがないっぽいですが、簡単な英語なのでなんとかなりました。シェアウェアなので未登録だと30秒までしか撮れません。かなり強力なソフトなので、これは買ってもいいかなぁと思いました。圧縮はWindowsMediaエンコーダを使いました。タダだし。

最終的なゲームではここまでキャラはデカくないし、キャラの向きは左右限定にするつもりです(上下移動中は若干傾かせるかも)。基本は古いゲームのようなわかりやすさと、奥の深さを追求していきます。

● COMMENT FORM ●

マイクロソフト、統合3Dソフト「trueSpace 7.6」無償提供へ
http://news4xbox.blogspot.com/2008/07/3dtruespace-76.html


管理者にだけ表示を許可する

トラックバック

http://karuduck.blog50.fc2.com/tb.php/25-5b15c04b
この記事にトラックバックする(FC2ブログユーザー)

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

プロフィール

Karu_gamo

Author:Karu_gamo
<メールアドレス>
karu_gamo#hotmail.co.jp
#を@に置き換えてえてください。

<自分リンク>
かるがも研究所【新】
YouTubeチャンネル
公開素材置き場
仕様書
旧ブログ(見るとこないです)
管理者ページ

リンク

YouTube動画

FC2カウンター

カテゴリー

Twitter

 

月別アーカイブ

RSSフィード

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