Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[9897] PMDシェーダの輪郭線表示がおかしい / msg
対応済み [不具合報告] 返信
Ver4.8.6bでPMDシェーダの輪郭線表示がおかしいです。
法線弄ると更に悪化(全部真っ黒になったり位置がズレたり)。

Ver4.8.5dでは正常に表示されます。
ご確認をお願い致します。

-----
Windows11 Pro 22H2 
i5-12400 /32GB /GeForce RTX3060
2024-02-13 12:13
[9898] Re: PMDシェーダの輪郭線表示がおかしい / 管理者
4.8.6aからは新しい表示方式が採用され、境界付近を疑似的に黒くするのではなく、元の形状よりも外側に輪郭を表示するようになりました。これにより、正しい輪郭線の幅が維持され、外部ビューアでの表示イメージにより近いものになっています。

ただし、閉じた形状になっていることが前提で、板ポリゴンなど開いた形状では背面が黒くなります。また鋭角な箇所で若干不正確な表示にもなります。
上記をご確認ください。
2024-02-13 12:59
[9899] Re: PMDシェーダの輪郭線表示がおかしい / msg
お忙しい中、迅速なご回答を有難うございます。

>>板ポリゴンなど開いた形状では背面が黒くなります

閉じていると否とに関わらず、奥のオブジェクトの輪郭線が手前のポリゴン
を透過して表示されたり(半スケルトン状態)、時々ポリゴン面の『辺』が
チラチラ黒い線として薄く表示されたり、全般的に不要な黒線が発生します。

ちなみに、試しに基本図形を作ってみたら普通に表示されたので、法線が
絶えず変化するような有機的で複雑な形状の時にエッジがおかしくなるの
では…と思い、makehumanという人物モデル作成ソフトで作ったおじさんの
モデルをメタセコに読み込んでみたところ、やっぱり自分のモデルと同じ
ような異常表示になりました(開いている場所は閉じ、法線もリセット)。

他にもMMD付属の初音ミクや配布されているPMDモデルなど、色々読み込んで
テストしてみましたが、結果は同様でした。

それと再現条件が不明ですが、画面をアップ(拡大)すると何故か画面全体
が真っ黒になってしまう事もよくあって、細かい作業ができません。
(材質設定の輪郭線チェックを外すと直る)

続きを表示...
2024-02-14 23:08
[9902] Re: PMDシェーダの輪郭線表示がおかしい / 管理者
線が太すぎて邪魔になっているようなので、Ver4.8.6eでひとまず半分程度に細くしました。
実用上これで問題ないと思うのですが、いかがでしょうか。

全体が真っ黒になるのはよくわかりませんが、近くに寄りすぎてカメラが面を突き抜けてしまい、その奥の輪郭線が見えている状態ではないでしょうか?
2024-02-16 18:01
[9903] Re: PMDシェーダの輪郭線表示がおかしい / msg
いつもながら素早い対応、有難うございます。
この価格帯でここまで手厚いサポートが受けられるソフトはなかなかありません。

>>Ver4.8.6eでひとまず半分程度に細くしました。

線の太さはかなり良い感じになりましたが、やはり隠れた場所の輪郭が透けて表
に出ます(他の方が作られたモデルも同様)。

見た感じ、画面正面から見てある程度裏返った(平行的な)面では大丈夫ですが、
正面から垂直に近い面の辺に作られる境界線が、手前のポリコンを透過している
ようです(問題の透けている境界線付近の法線の向きを変えると消えたりする)

あと、MMDに比べて全般的に境界線が「出すぎ」な気がします。
MMDでは出ない角度の境界線も出てしまっている印象です。

また

>>板ポリゴンなど開いた形状では背面が黒くなります

これについてですが、閉じたポリゴンでも背面は全部黒くなっているようです。

続きを表示...
2024-02-17 00:27
[9904] Re: PMDシェーダの輪郭線表示がおかしい / まじかる☆しげぽん
背面法の原理は、アウトラインを反転して押し出しているので中の部分から見えるのは押し出された反転したポリゴンのため、中に見えるほどカメラ、「ドリー(移動)」で近づければカメラはポリゴンを貫通するので仲が黒く見えるのが正常です。
モデルのスケールを、Metasequoiaの1の単位を1cmとして作ったデータ。1mmとして作ったデータで確認しましたが、平行にしても移動にしても変わらないのを確認しました。

一度、「表示」>「視点パネル」の視点パネルをShiftを押しながらカメラをクリックすると視点がリセットされます。
その上で、ドリーでカメラが寄っていればポリゴンにめり込む距離でなければポリゴンにギリギリまで寄っても問題無いですし、ポリゴンにカメラがめり込めば前述通り中が黒く見えるのは「背面法というアウトラインはそういうものです。

Metasequoiaのポリゴンは通常、片面のみが描画されているので内側から見た時は面が描画されず透過されて表示されます。
背面法のアウトラインは、その透過されてる状態の内側から押し出されたアウトラインとしてシェーダーで作り出されたポリゴンが見える為黒く見えるのです。
仕組みを理解していれば、それが正常だと理解できます。
2024-02-20 14:42
[9905] Re: PMDシェーダの輪郭線表示がおかしい / まじかる☆しげぽん
>平行にしても移動
平行にしても透過
の誤字でした。
ちなみに、背面法のアウトラインは法線方向に押し出されて生成されるため法線の向きを変えたら消えるのは、法線方向に押し出される方向が逆になるためです。

MMDのアウトラインも背面法のように思います。
https://site.nicovideo.jp/ch/userblomaga_thanks/archive/ar1361050
2024-02-20 15:00
[9906] Re: PMDシェーダの輪郭線表示がおかしい / まじかる☆しげぽん
片面設定で、中から外側に押し出されてるアウトラインが見える為黒く見えるのは正常なため、両面表示をすれば回避できます。
と、書こうとしたのですがPMDシェーダーではどうやら両面表示のチェックが正しく動作していない為、片面表示でしか表示できないようです。

to:管理者様
PMDシェーダーで、両面のチェックボックスの挙動が正しく動作していないのを確認いただければと思います。
2024-02-20 15:10
[9907] Re: PMDシェーダの輪郭線表示がおかしい / 管理者
>PMDシェーダーで、両面のチェックボックスの挙動が正しく動作していないのを確認いただければと思います。

他のシェーダと共通の設計になっているため両面表示の設定項目自体は残っているのですが、PMDには片面・両面指定がないため(PMXにはあるが)、表示には反映されないのが仕様通りです。

MMD上でも(再生中は)片面ポリゴンの裏側は黒く表示されるため、現状の仕様で間違いありません。
そのため、後でPMXに変える前提だから背面が黒いのは困るというのは筋違いで、PMD用である以上は背面が黒くないほうがおかしいのです。

背面押し出しのアルゴリズムもおおむね同じと思うのですが、線幅(押し出し幅)に違いが依然としてあって、見た目も多少違いが出てしまうのかもしれません。
違いをもう少し埋めれないか現状試行中です。
2024-02-20 19:04
[9908] Re: PMDシェーダの輪郭線表示がおかしい / msg
■まじかる☆しげぽん様

はじめまして。
技術解説に加えて検証までして頂いて、有難うございます。

>>その上で、ドリーでカメラが寄っていればポリゴンにめり込む距離でなければ
>>ポリゴンにギリギリまで寄っても問題無いですし

それがリセットしても選択部に視点をフィットしても、なる時はなります。

何となく、カメラが接近した時に、表面に比べて裏の黒面だけが極端に増幅
されてカメラを突き抜けてしまったかのような…。
モデルの近くでなる事もあるし、遠くでなる事もあります。


■管理者様

引き続き、お世話になります。

>>後でPMXに変える前提だから背面が黒いのは困るというのは筋違い

続きを表示...
2024-02-21 23:08
[9909] Re: PMDシェーダの輪郭線表示がおかしい / まじかる☆しげぽん
>例えばモデルをMMDのテンプレートサイズの10倍に拡大すると、唇裏の問題
以外は気にならないレベルに改善し、更に10倍にしたところ全て正常に表示
されるようになりました(逆に縮小だと悪化)

この問題の原因を把握しました。この問題は単位の扱いの違いによるものです。
https://nanonaishonen.asukablog.net/mmd/mmd%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E5%8D%98%E4%BD%8D%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%80%82
こちらのサイトの情報を引用すると
>公式設定によると初音ミクの身長は160cm、つまり「1マス40cm、1ミクセル8cm」というのは「あにまさ式初音ミク」と公式設定に基づいた数値なのです。
これをもとに計算すると、MMDにおける1cm=0.125(ミクセル)、1m=12.5になります。
Metasequoia上でもこの数値は同じです。

とのことで、MMDテンプレートがこの仕様に沿っている場合作成される単にはメタセコの1=1cmでもなく独自の単位でMMDはサイズを持ちそれをそのままメタセコに読み込んで編集する想定のようです。

そして、メタセコは過去に1の単位を明示しておらずサイズ計測機能と表示機能が実装されたときに1の扱いはmmとなりました。
このため、例えばUnity向けのテンプレートはmmとしてテンプレートが作られているのでとても大きく、MMD向けは上記仕様に沿って作られているとしたら確認してみたところメタセコ上では、約20mmぐらいのサイズでした。そのためメタセコの空間の単位と比べかなり小さいサイズとなります。
その為、mmのサイズで作られたモデルでアウトラインの調整をもし作者さんがされているとしたらテンプレートとのサイズ差により質問者さんが指摘してる問題との差異が起きてるのではないかと思います。
この問題は、MMD独自単位だけでなくメタセコは過去に1の単位をmmと明示していたわけではないので1を1cmと扱いモデルを作成してる人もいて(私は1を1cmと思っていたMayaでも同じため)メタセコが空間に対しての単位にシェーダーの太さが調整されていると起こる問題となります。

この問題を解決するとしたら、インポート時にMMD独自単位をメタセコ内のサイズに適切に変更し、アウトラインのサイズもメタセコ内の基準値で扱う。そしてエクスポート時に、またMMDの独自単位にサイズを値を変換する。
MMDテンプレートもメタセコのサイズを基準にしたものに上記の拡大率を元に修正する。

続きを表示...
2024-02-22 04:25
[9910] Re: PMDシェーダの輪郭線表示がおかしい / まじかる☆しげぽん
尚、ミクセルという単位は上記サイトの方の独自単位かというと共通認識として扱われている単位のようです。
そのため、MMD向けモデルはミクセル単位をベースに作成されており、メタセコでもミクセルの単位を基準に作成を行っているようです。1=1mmとして扱ってない。
2024-02-22 04:41
[9918] Re: PMDシェーダの輪郭線表示がおかしい / 管理者
テスト用に改善したものを用意してみました。
https://metaseq2.sakura.ne.jp/metaseq/vrm_shader_test.zip

C:\Program Files\tetraface\Metasequoia4フォルダをデスクトップなど適当なところへフォルダごとコピーしてから、zipファイル内のファイルで上書きし、Metaseq.exeを起動してみてください。

MMDとほぼ同じ輪郭線幅で、部分的に歪んだりすることもなくなったと思います。問題なければこのまま次のリリースに採用とするつもりです。
2024-02-25 14:12
[9919] Re: PMDシェーダの輪郭線表示がおかしい / msg
問題点が全て解消している事を確認しました。
素早い対応、有難うございました。
2024-02-25 22:34
[9936] Re: PMDシェーダの輪郭線表示がおかしい / 管理者
Ver4.8.7でテスト用に出していたものに差し替え、大丈夫だと思います。
あと、ビュー上部の表示ボタンからシェーダの「輪郭線のみ無効化」モードを設定できるようになったので、編集中に邪魔な場合はトゥーン階調表示のまま輪郭線のみ表示しないようにすることもできるようになりました。
2024-03-22 16:01