トップページ > 記事閲覧
MV1DrawFrameでMMDモデルの一部分のみの描画がで
名前:sarrus3x3 日時: 2016/05/26 00:04

はじめまして。 DXライブラリには大変お世話になっております。 表題の質問ですが、 MMDモデルの一部を非表示にしたく、 MV1SetFrameVisible 関数で非表示にしたフレームインデックス を設定して MV1DrawModel したところ、 非表示になりませんでした。(モデルが全て描画されました) そこで切り分けのため、以下のように: MV1DrawFrame( ModelHandle, framenum ); MV1DrawFrame で、framenum をインクリメントさせて 全てのフレームについて描画を確認したところ ・framenum == 0 のときに全てのフレームが描画。 ・framenum > 0 以降はなにも描画されない。 という結果になりました。 また、DXライブラリモデルビューア(DxLibModelViewer_64bit) にて、添付の写真のようにフレームの表示・非表示を試してみたところ、 ttp://livedoor.blogimg.jp/sarrus3x3/imgs/3/f/3f0f9012.png ・0:Meshを非表示設定にしたところモデル全てが非表示になった。 ・0:Mesh以外を非表示設定にしてもモデルの表示に変化はなかった。 という結果になりました。 以上の結果から、 フレームとメッシュの対応付けが上手くできていないように見えますが、 これはモデル自体の問題なのでしょうか? 今回試したモデルは、MikuMikuDance に同包されていた、"初音ミク.pmd"です。 また、それ以外の手持ちのモデルを2,3個、ビューアの方法で試してみましたが、 同じような症状になっております。 DXライブラリ版数は、Ver3.16 です。 以上、よろしくお願いします。
メンテ

Page: 1 |

Re: MV1DrawFrameでMMDモデルの一部分のみの描画がで ( No.1 )
名前:管理人 日時:2016/05/26 02:09

モデルにもプログラムにも問題は無く、仕様通りの動作となります MikuMikuDance のファイル形式である PMD や PMX のモデルは所謂「ワンスキンメッシュ」なので メッシュは「体全体」の一つしかありません なので、剛体モデルのように腕フレーム( ボーン )に腕のメッシュが、足フレーム( ボーン )に 足のメッシュがあるわけではないので、腕フレームを非表示にすることで腕を見えない状態にする といったことはできません
メンテ
Re: MV1DrawFrameでMMDモデルの一部分のみの描画がで ( No.2 )
名前:sarrus3x3(解決) 日時:2016/06/05 03:25

早速の回答ありがとうございます。 MMDのモデルデータに対しては、 DXライブラリの機能ではフレーム単位で表示・非表示を 制御することはできないということで、了解いたしました。 MV1SetFrameUserLocalMatrix を使って、 フレーム単位でメッシュの変形はできていたので、 てっきり、 変形した部分を非表示にできるのかと思っておりました。 (確かに、フレームのつなぎ目付近がどう判断されるのかは  気になってはいましたが…) もともとの課題(モデルの一部を非表示にする)については、 非表示にしたい部分をモデルデータ自体から 削除する方法で対応しました。
メンテ

Page: 1 |

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

   クッキー保存