トップページ > 過去ログ > 記事閲覧
VMDに保存したカメラアニメーションを反映
名前:smr_c 日時: 2012/02/27 08:57

DXライブラリを使用して3Dアクションゲームを作らせていただいている smr_cと申します。 C言語何でも質問掲示板にて同じ質問をさせていただいたのですが、 こちらで質問させていただくことにしました。 質問:「VMDに保存したカメラアニメーションを反映」 ttp://dixq.net/forum/viewtopic.php?f=3&t=10245 以下の質問掲示板にて VMDに保存したカメラアニメーションをDXライブラリで反映させることができると 聞いたので、一緒に載せてあったプログラムを試しに動かしてみたのですが、 どうにも自分で作成したCamera.vmdに関しては カメラの視点がななめ上からの俯瞰で終始止まってしまいます。 「カメラのvmdについて」 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2084 コードは手を加えておらず、上記のページのものと同一です。 また、モデルはMMD付属の”初音ミク.pmd”、 モーションは”恋愛サーキュレーション short Lat式.vmd”や、 ”MikuMikuDance_星間飛行【ソース】.pmm”から抽出し ”初音ミク000.vmd”にリネームしたものを使用しています。 カメラアニメーションは ”MikuMikuDance_星間飛行【ソース】.pmm”から抽出し ”Camera.vmd”にリネームしたものを使用したときはちゃんと動いてくれたのですが、 自分で作った”Camera.vmd”は上手く機能せず、終始ななめ上からの俯瞰でした。 どうやら自作の”Camera.vmd”が原因らしいことはわかったのですが、 MMDで読み直してもきちんと保存はできているようです。 なにが原因なのでしょうか。 ご助言をお願いします。 また、いろいろと調べてみたところ、以下のようなことがわかりました。 動く場合 ・フレームが最初の1フレームしかないとき。 ・最初と最後のフレームが同じ視点であるとき。ただしあいだに異なる視点のフレームがあったらダメ。  つまりフレームが2つしかなくそれらが同じ場合。 それ以外は視点がななめ上からの俯瞰で終始止まった状態になります。 フレームの数やフレームごとの間隔の差は関係なく、 どれだけフレームの数を増やしても減らしても(上記の通りフレームが1つだけなら動く)、 どれだけフレームごとの間隔を開いてもなくしても変わりませんでした。 ただ、抽出したカメラアニメーションを使用した際は問題なく動いたので、 自分でフレームを打ち込んだものとの差が他にあるのかもしれません。 最後に、C言語何でも質問掲示板にてソフト屋さんが バイナリエディタでcamera.vmdを解析表示してみてくださったのですが、 見解によると"FlameNo 00000EC4かのカメラ位置からスタートしてるようですね。" ということでDXライブラリに問題があるかも知れない。 とのことでした。

Page: 1 |

Re: VMDに保存したカメラアニメーションを反映 ( No.1 )
名前:管理人 日時:2012/03/04 20:37

smr_cさんがアップされたデータを拝見させていただきました 調べたところ、DXライブラリのプログラムが原因でした スレッド「カメラのvmdについて」で用意した方法ではアニメーションデータに直接アクセスする方法を使用しているのですが、 このデータが vmd ファイルを読み込んだ際のDXライブラリのデータ最適化処理によってはサンプルプログラムでは 意図していない形態になってしまっていたことが原因でした vmdファイルを単体で読み込んだ場合は形態変化を伴う最適化処理を行わないようにすることで サンプルプログラムで正常に処理できるようになりました よろしければこちらのバージョンをお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: VMDに保存したカメラアニメーションを反映 ( No.2 )
名前:smr_c 日時:2012/03/07 21:32

改善してくださりありがとうございます。 アップしていただいたBorlandC++用のDxLibBCCTest.exeでファイルを上書き、 リビルドしたところ、どのCamera.vmdでも 正しく動きました。 しかし3回に2回くらいの割合で 「動作を停止しました」と出て終了してしまいます。 Camera.vmdを変えてみても、変わらないようです。 (・・;)
Re: VMDに保存したカメラアニメーションを反映 ( No.3 )
名前:管理人 日時:2012/03/09 04:09

ご報告ありがとうございます お手数で申し訳ありませんが、よろしければ異常終了した際の実行フォルダに 作成される Log.txt の内容をこちらに載せていただけないでしょうか? m(_ _;m
Re: VMDに保存したカメラアニメーションを反映 ( No.4 )
名前:管理人 日時:2012/03/11 02:57

別件で DxLib_Init を実行した際に一定の可能性でアクセスエラーが発生するバグを修正しました 手元では BCC版を使用してのエラーの再現はできませんでしたが、このバグが原因である可能性が高いと思います 修正版をこちらにあっぷしましたので、よろしければお試しになってみてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: VMDに保存したカメラアニメーションを反映 ( No.5 )
名前:smr_c(解決) 日時:2012/03/12 19:04

修正版のアップの方ありがとうございます。 何度か試してみたところ、やはり異常終了はしなくなりました! 改善してくださりありがとうございました。

Page: 1 |