トップページ > 記事閲覧
読み込んだMMDモデルの位置姿勢を直接指定
名前:14 日時: 2017/12/29 22:13

DxLibにて読み込んだMMDモデルの、ボーン単位での位置回転の数値による指定はできるでしょうか? アニメーションファイルからは読み込めるのですがボーンごとの指定となると見つけられなくて… よろしくお願いいたします。
メンテ

Page: 1 |

Re: 読み込んだMMDモデルの位置姿勢を直接指定 ( No.1 )
名前:管理人 日時:2017/12/30 00:39

位置と回転の数値による指定ではなく行列での指定になりますが、一応ボーン単位で指定することが可能です // 指定のフレームの座標変換行列( ローカル行列 )を設定する int MV1SetFrameUserLocalMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ; // 指定のフレームの座標変換行列( ローカル行列 )をデフォルトに戻す int MV1ResetFrameUserLocalMatrix( int MHandle, int FrameIndex ) ; // 指定のフレームの座標変換行列( ローカル座標からワールド座標に変換する行列 )を設定する int MV1SetFrameUserLocalWorldMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ; // 指定のフレームの座標変換行列( ローカル座標からワールド座標に変換する行列 )をデフォルトに戻す int MV1ResetFrameUserLocalWorldMatrix( int MHandle, int FrameIndex ) ; ( 『フレーム』と書かれていますが、DXライブラリではボーンのことを『フレーム』と呼称しています ) MV1SetFrameUserLocalMatrix がローカル行列を設定する関数で、MV1ResetFrameUserLocalMatrix が MV1SetFrameUserLocalMatrix で行った設定を無効化するための関数です MV1SetFrameUserLocalWorldMatrix がローカル→ワールド行列を設定する関数で、MV1ResetFrameUserLocalWorldMatrix が MV1SetFrameUserLocalWorldMatrix で行った設定を無効化するための関数です FrameIndex でボーンを指定しますが、何番が何のボーンなのかは DxLibModelViewer.exe で確認していただくか、 MV1SearchFrame で名前からボーン番号を検索してください // フレームの名前からモデル中のフレームのフレームインデックスを取得する( 無かった場合は戻り値が-1 ) int MV1SearchFrame( int MHandle, const TCHAR *FrameName ) ; MATRIX の値は MGetRotY や MGetTranslate で取得して MMult で掛け合わせたりすることができます リファレンスに MGetRotY などの関数の解説がありますのでご覧ください m(_ _)m < DXライブラリ 関数リファレンスページ 3D関係関数リファレンス > https://dxlib.xsrv.jp/function/dxfunc_3d.html
メンテ
Re: 読み込んだMMDモデルの位置姿勢を直接指定 ( No.2 )
名前:14(解決) 日時:2017/12/30 14:22

ありがとうございます! 解決いたしました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存