手順のまとめはこっち
nsan.hatenablog.com
以下は試行錯誤の履歴
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
blenderで作ったモデルをDXライブラリで表示させれたらいいなって
目標
Blenderで作った3DモデルをDXライブラリで読み込んで正しく表示させる
環境
Windows10
blender v2.79
DXLib 2017.3.18c
Metasequoia4 v4.6.5
やったこと
下記を参考に超低くおりてぃな木を作成
ch.nicovideo.jp
下記を参考にファイル出力
catlanguage2.blogspot.com
作ったの
で、これをDxLibModelViewerで表示させると次のような問題が発生
- blender上では裏面は透明にならないがViewer上では裏面が透明になる
- 葉っぱが表示されない(.x拡張子時)
- やけに黒い
1つ目の問題に関しては、裏面のテクスチャの設定かと思われる
が、設定 is どこ
ノードエディターでなんか表裏設定できそうだけど、透過の設定方法が不明
あと裏面も表面と同様に見たいなのもわからん
2つ目の問題は、ここに書いてある
togetter.com
パーティクルの変換ボタンを押すことで解決
が、表面も透明なんですがこれは一体
(DxLibModelViewer上での様子)
3はわからん、なんでや
Metasequoiaを経由する
xファイルでの出力を諦めて3dsファイルでメタセコに表示させてみる
相変わらず裏面は透明のご様子
あと、木と地面のテクスチャも貼れてないな?
blender上で何かできるんかねこれ
追記1:
以下を参考にメタセコ上でCtrl+Aしてから
上のメニューにある選択部処理の面を両面化したら透明はなくなった
howto.clip-studio.com
追記2:
メタセコを経由しない方法で行く
ファイル出力はfbxで、DxLibModelViewerでmv1形式に変換する
まず、木と地面のテクスチャが貼れていない問題は
各オブジェクト、というかメッシュをUV展開していなかったことが原因である模様
UV展開はまぁggって、自分が参照したのは以下の最初の方
Blender操作忘備録 : 透過画像の透過部分は透明にしたい!のメモ - livedoor Blog(ブログ)
これを行うことでテクスチャが無事に貼られた
次に、木がやけに暗い問題は、照明との関係の模様
blender内のマテリアルのシェーディングの放射の値を少し増やせば
一応可視可能となる
次に、裏面が透明となる問題は、次の通り(Unityだけど)のようにblenderの設定では機能しない
uuupa.hatenablog.com
そのため、裏面も使いたいオブジェクトを全て複製し、面を反転させることで対応する
複製の方法はここを参照
ch.nicovideo.jp
反転はこっち
blenderfaq.blender.jp
日本語でも似たような項目があるのでその辺を選択していく
ここまでやると次のような感じで表示される
残る問題は、
- 透過がうまく反映されていない
- レイヤー数が滅茶苦茶ある
の2点となった
前者はなんとなく描画順の関係な気がしなくもないが
それを回避する3D描画方法も確立されているはずなので
Viewerの問題なのかやっぱりこっちが間違ってるのか不明
追記3:
レイヤー数が滅茶苦茶ある問題は、オブジェクトを統合することで回避可能
オブジェクトモードで左メニューのツールの中の統合で可能
なお、この時、木と葉を同時にくっつけないと
何故か葉が大量発生するので要注意
透過についてはやはり描画順の可能性が高い
ktstg.blog.shinobi.jp
上記の記事のように、dxlibでは描画順を考慮しなければならない
そのため、今回やった手法で生成した木のモデルは
dxlibでは表示できるが思った通りにならない可能性が高い
論文とか漁ってたら、zバッファ法とかBSP法とかでてきた
もうちょい人類頑張って
要するに、木の中心部、葉同士の重なり合いにα値を使わないように作る
あるいは一切α値を使わない他あるまい
さて、一通りできたので整理して別記事にまとめるとする