トップページ > 記事閲覧
visual studioでpmxモデルが正しく描写されませ
名前:みちお 日時: 2018/10/06 00:09

開発環境 windows10 visual studio 2017 C# C#版DXライブラリ ※リンク全て「h」を省略させていただいております。お手数おかけして申し訳ありません。 目的: MMDデスクトップマスコットの開発 使用モデル: ttps://3d.nicovideo.jp/works/td28891 使用コード: ttps://qiita.com/massoumen/items/2985a0fb30472b97a590 (このサイトからほぼ全てコピペしています) 症状: PmxEditor では問題なく表示されるモデルが、visual studioでの実行結果では髪・靴・胸部に意図しないラインが入ってしまう。 PmxEditor: ttps://imgur.com/hkRp5GU visual studio実行結果: ttps://imgur.com/JXGtuDl 分かっていること: PmxEditor 上で、「髪裏」のエッジの値をいじる→エクスポート→ visual studio でpmxモデルを再認識すると変化がありました。 以下の画像は左側がPmxEditorの編集画面、右側がvisual studioでの実行結果です。 エッジ1(デフォルト) ttps://imgur.com/DYmMcP8 エッジ0 症状がおさまった代わりに、前髪ふちのエッジもなくなりつるつるとした印象になり、ここまでは自身の操作と実行結果が一致しており理解できます ttps://imgur.com/LaX21od エッジ0.1 ここでなぜ エッジ1 の時より症状が悪化しているのか理解できません ttps://imgur.com/DKRuUVu エッジ7  ttps://imgur.com/bjxXvlJ 以上の症状が、pmdモデルでないせいで起きている不具合なのか、モデル側の問題なのか、ライブラリの問題なのか、全く分かりません もし対処法があるのであれば教えていただけないでしょうか。 ※私はまだプログラムを始めて半年もたっていない未熟者ですので、なるべく初心者でも理解できる言い回しでお返事いただけるとありがたいです。
メンテ

Page: 1 |

Re: visual studioでpmxモデルが正しく描写されませ ( No.1 )
名前:PPM 日時:2018/10/06 18:36

DX.DxLib_Init() の前に DX.SetZBufferBitDepth(24); DX.SetCreateDrawValidGraphZBufferBitDepth(24); // 現時点では不要ですが、いつか要る日が来るのでつけておきましょう の2行を追加しましょう。(モデルはダウンロードしたものでOK。改造不要です) 症状としてはDxLibはデフォルトでZバッファ深度を1ドットあたり16bitで作成しますが、最近のモデルは24bitくらい ないと精度が足りない、といったところです。(Zバッファについては割愛します) ■補足 @DX.DxLib_Init() の前に  DX.SetFullSceneAntiAliasingMode(4, 2);  DX.SetDrawValidMultiSample(4, 2);  のように指定すると、ギザギザ感が減ります。 A上記解説サイトにしたがってモーションを追加すると、  サーバル.pmx  サーバル000.vmd  サーバル001.vmd  サーバル002.vmd  のようにファイルを用意することになります。やってみるとわかりますがロードが非常に遅いです。  DxLibには DxLib Model Viewerが付いており、サーバル.pmxを読み込ませると同じフォルダにあるVMDも  いっしょに読み込み、専用ファイル形式で保存することができます(サーバル.mv1)。  DX.MV1LoadModel()を サーバル.pmx から サーバル.mv1 に変更してください。  MV1が完成したら .pmxと.vmdは不要ですが、どっちみち改造が必要になるのでそのまま置いておきましょう。 BMiku Miku Dance本体のデータフォルダに toon01.bmp〜toon10.bmpがありますが、  モデルによってはこれらをPMX(MV1)のフォルダに一緒に置かないと色が変になるものも多いので  ご注意ください。(逆に、置くと色が変になるのもあるので注意)  ※色、というか陰影 Cとはいえ、Pmx Editorで改造・修正が必要になるケースが多いです。  ・まばたきしない⇒該当モーフがG(グループ)モーフになっている。DxLibではV(頂点)モーフしか対応していない   ようなので、Vモーフに修正する必要あり。(Pmx Editorの現バージョンでは、これが異様にやりにくくなった)   ※もともとモーフが無いものもあります。  ・ウィンクしない⇒モーフ名が ウインク / ウィンク / ウインク / ウィンク などバラバラ。モーションにあった   モーフ名に変更する必要あり  ・ウィンクが逆⇒左と右が統一されていない。キャラ自体の左右か向かって左右か、が作者によってバラバラ。  ・背の低いキャラにモーションを適用すると手足の振りが大きくなってかわいくない⇒Pmx Editorで   読み込ませるときに1.2倍とか1.5倍とか適当に拡大して読み込んでそのまま保存し、プログラム上でちょっと   縮小表示するというやり方を私はしています。  ・リボンとかがビヨーンと伸びたままになる、スカートや胸が異様にバタつく、足首が変に回転する、足の動きが   気持ち悪い、艦これモデルで艦装(パーツ)が体についてこない、など。   艦装については簡単に直せることが多いですが、あとは試行錯誤が必要です。今回も、サーバルが下りてくる   ときにビヨーンとなります(降りてきたら直る)。 DMMDモデルには『Miku Miku Dance以外の使用は一切禁止。自作アプリも禁止』というのが結構ありますので  ReadMeは最新版を常に確認しましょう。
メンテ
Re: visual studioでpmxモデルが正しく描写されませ ( No.2 )
名前:みちお 日時:2018/10/07 14:59

丁寧な解答をしていただき本当に助かります。 しかし補足Aについて私の知識不足により理解できませんでした。文章最後に分からなかったところを書かせていただいております。 お時間がないようでしたら最後の 質問内容 のところだけ確認していただきたいです。 Zバッファを追加した所、症状は治りました。ありがとうございます。 Zバッファ深度というものがデフォルトだと足りないため起きていた問題、と理解しました 補足の @について  ギザギザ感減りました。ありがとうございます。 Aについて  すみません。調べてみたのですが、理解できませんでした。  最後に改めて質問内容を書きます。 Bについて  ご忠告ありがとうございます。覚えておきます Cについて  現在の私の知識では理解できない内容が多いため、進めていくうちに問題が発生したときに  改めて参考にさせていただきます。 Dについて  ご忠告ありがとうございます。今回使用させていただいているモデルについてはReadMeがついておらず、  ダウンロード元を確認したところ、再配布にのみ「禁止」の表示がありましたので、おそらく大丈夫ではないかと思われます 質問内容:  まず↓でモデルを読み込み、  modelHandle = DX.MV1LoadModel("Data/サーバル.pmx");//3Dモデルの読み込み    ↓関数を使って .pmx があるフォルダに .mv1 を作成  MV1SaveModelToMV1File  それ以降のコードで、表示するモデルを .mv1 に全て変更  という流れでよいのでしょうか  もし合っているのだとしてもコードの書き方が分かりません ( 現在 modelHandle 変数では .pmx のモデルが指定されているから、  新しく .mv1 を入れるための変数を作るのか...?  となると private int modelHandle2; みたいなものも作っておかないといけないのか!?  そもそも保存をするための 変数 ってどう書くんだ... ) という感じで分からない事だらけです 重ねての質問になってしまい申し訳ありません どうかよろしくお願いいたします
メンテ
Re: visual studioでpmxモデルが正しく描写されませ ( No.3 )
名前:PPM 日時:2018/10/07 17:15

C#版というのを見落としていました。 プログラム上でMV1を作るということではなく、DxLib Model Viewerというツールを使って事前に作って おくという意味です。 ただしC#版にはDxLib Model Viewer(や他のツール)が付いていませんので、150MB以上ありますがVisual C++版を ダウンロードして展開します。Tool ⇒ DxLibModelViewer フォルダの中に32bit版/64bit版があるので、 どちらかをお使いください。 ・サーバル.pmx、サーバル000.vmd、サーバル001.vmd、サーバル002.vmdというファイルはすでに準備済であるとします。 ・DxLib Model Viewerを起動します。 ・DxLib Model Viewerにサーバル.pmxをドラッグ&ドロップします ・しばらく待ちます(モデルやモ−ションによってはかなり) ・画面の左上に アニメーション という小さいボタンがあるのでクリックします ・3つのアニメーションが読み込まれているのを確認します ・再生速度を 30.0 にして、任意のアニメーション番号をクリックし、再生ボタンをクリックします ・アニメーションをチェックします(マウスでグリグリ) ・停止ボタンを押します。 ・メニューからファイル ⇒ 上書き保存 をクリックし、サーバル.mv1として保存します 準備はここまでです。C#の方に戻って modelHandle = DX.MV1LoadModel("Data/サーバル.pmx"); を modelHandle = DX.MV1LoadModel("Data/サーバル.mv1"); に変更して終わりです。
メンテ
Re: visual studioでpmxモデルが正しく描写されませ ( No.4 )
名前:みちお 日時:2018/10/12 01:42

C++版より DxLib Model Viewer を使わせていただきました。 指示通りにしたところ、今までの比にならないくらいロードが早くなりました。 発生していたた問題全て解決いたしました。 PPM 様のおかげで、原因がわかり、解決することができ、その結果が見れて、プログラムがすごく楽しいです。 本当にありがとうございました。 教えていただいたことに関してましては、少しでも重複質問が減るように、やり取りの中で出てきた 参考サイト様 ttps://qiita.com/massoumen/items/2985a0fb30472b97a590 にも、「Zバッファーの件、ギザギザ感を減らす方法、ロードを早くする方法」について、コメント致しました。 (ここへのリンクはつけてあります。) もしご迷惑でしたら削除致します。
メンテ

Page: 1 |

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

   クッキー保存