トップページ > 記事閲覧
複数モーションファイルの読み込みについて
名前:yellow 日時: 2019/05/19 15:35

関連スレッド dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=past&no=1946 この質問の要点は読み込みなのかモーション切り替えになるのか わかっていない状態なのですが、 上記の関連スレッドを参考にして1つのモデルに 別のモーションを複数読み込みするという内容をためしています。 ここでは公式「3Dアクションサンプル」に以下のコードを追加し 試す事にするとします。 //初期設定に追加 int ANIM[20]; // void Player_Initialize( void )内に追加 ANIM[0]=MV1LoadModel( "DxChara.x" ) ; ANIM[1]=MV1LoadModel( "DxChara.x" ) ; ANIM[2]=MV1LoadModel( "DxChara.x" ) ; ANIM[3]=MV1LoadModel( "DxChara.x" ) ; ANIM[4]=MV1LoadModel( "DxChara.x" ) ; //void Player_PlayAnim( int PlayAnim )内を修正 pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, ANIM[PlayAnim] ,TRUE) ; このように 「各モーションファイルにはひとつのモーションのみ使用する」 という事を前提にして別々の動作を読み込む事を想定しています。 ですがモデルを用意できなかったため、 ここでは複数モーションが入っているサンプルファイルDxChara.xを そのまま流用させていただきました。 添付のサンプルコードを追加してビルドしていただくと モデルがTポーズのまま動かないという状況が確認していただけます。 これをまともに動作させるにはどのような修正が必要になりますか。
メンテ

Page: 1 |

Re: 複数モーションファイルの読み込みについて ( No.1 )
名前:管理人 日時:2019/05/19 15:47

> //void Player_PlayAnim( int PlayAnim )内を修正 > pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, ANIM[PlayAnim] ,TRUE) ; 第二引数はモデルハンドルではなくアニメーション番号ですが、こちらは実際のプログラムでは正しく 記述されていると考えて良いでしょうか? あと、 dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=past&no=1946 でも書いていますが、 現在モーションの他モデルハンドルへの流用は xファイルのみ可能になっています pmd や pmx のモーションでは他モデルハンドルに流用することはできません
メンテ
Re: 複数モーションファイルの読み込みについて ( No.2 )
名前:yellow 日時:2019/05/19 16:36

>管理人さん すいません、「実際のプログラム」というのは 3Dアクションサンプルに //初期設定に追加 int ANIM[20]; // void Player_Initialize( void )内に追加 ANIM[0]=MV1LoadModel( "DxChara.x" ) ; ANIM[1]=MV1LoadModel( "DxChara.x" ) ; ANIM[2]=MV1LoadModel( "DxChara.x" ) ; ANIM[3]=MV1LoadModel( "DxChara.x" ) ; ANIM[4]=MV1LoadModel( "DxChara.x" ) ; //void Player_PlayAnim( int PlayAnim )内を修正 pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, ANIM[PlayAnim] ,TRUE) ; のみ追加したもので他に実際のプログラムはありません。 今回用意できなかったのはxモデルのことで、このDxChara.xは マルチアニメーションを含んだモデルなので 質問の意図のモーションの複数読み込みには適さないものと思ったため書かせていただきました。 >現在モーションの他モデルハンドルへの流用は xファイルのみ可能になっています こちらは了承しています。 >第二引数はモデルハンドルではなくアニメーション番号ですが こちらも了承しています。
メンテ
Re: 複数モーションファイルの読み込みについて ( No.3 )
名前:管理人 日時:2019/05/19 19:35

> >第二引数はモデルハンドルではなくアニメーション番号ですが >  > こちらも了承しています。 了解です DxChara.x は複数のモーションを持っているファイルなので、3Dアクションサンプルを 正しく動作させるのでしたら pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, PlayAnim, ANIM[PlayAnim] ) ; となります
メンテ
Re: 複数モーションファイルの読み込みについて ( No.4 )
名前:yellow 日時:2019/05/19 20:32

ご教示いただきありがとうございますm(_ _)m。 3Dアクションサンプルを正常に動作させることができました!。 ちなみにこれは後々のためにご教示ください。 推測だけでかまわないのですが例えば今回ご教示いただいた、 3Dアクションサンプルを雛形として これが複数のモーションを持っていないモーションファイルを 読み込んだ場合の指定方法は pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, 0, ANIM[PlayAnim] ) ; となりますか?
メンテ
Re: 複数モーションファイルの読み込みについて ( No.5 )
名前:管理人 日時:2019/05/20 01:49

> これが複数のモーションを持っていないモーションファイルを > 読み込んだ場合の指定方法は >  > pl.PlayAnim1 = MV1AttachAnim( pl.ModelHandle, 0, ANIM[PlayAnim] ) ; >  > となりますか? はい、その通りです ( 『第三引数で渡すモデルハンドル内のモーションの何番目をアタッチするか』の値が第二引数なので )
メンテ
Re: 複数モーションファイルの読み込みについて ( No.6 )
名前:yellow(解決) 日時:2019/05/20 08:23

ご回答ありがとうございます。 今回ご教示いただいた内容でdxlibのモーションに ついての仕組みがかなり理解できたと思います。 理解度も含めて解決とさせていただきますm(_ _)m
メンテ

Page: 1 |

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

   クッキー保存