XISMO(キスモ) と Blender のムフフな関係
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

XISMO(キスモ) と Blender のムフフな関係

2019-06-11 20:58
    タイトルがアホですみませんw

    今回はフリーの3Dモデリングソフトウェア「XISMO(キスモ)」で作成したモデルデータを「Blender」でレンダリングしてみた際の諸々を備忘録としてまとめてみました。

    一応、最終的なアウトプットとしては、以下のような動画作品であったり




    以下のようなレンダリング画像となります

    【ファミコンとドラクエ II】


    【88のある風景】


    基本的に実際に作業した内容のメモ的な側面が強いため以下の点に留意してください。
    • 問題や要件に対する最適解となっていない箇所があるかもしれない
    • 一部の設定値については うp主自身もまだまだ勉強不足で把握しきれていない
    • ↑のため最終的な設定値は記載するがそこに至るまでの詳細な解説は割愛する
    それでも何かしらの参考になればと思います。
    (特に「忘れっぽい自分のため」という目的が大きいw)


    今回の記事では大まかに、
    1. Blender について
    2. XISMO、Blender 間のデータ連携
    3. 材質の設定(その1)
    といった内容を記述したいと思います。
    材質設定については長くなってしまったので今回と次回の2回に分けて投稿します。



    ■Blender について
    現状、「XISMO(キスモ)」にはレンダリング関連の機能が実装されていないため、モデリングしたデータをもとに高品質なレンダリング画像やアニメーション作品を作成するには他のソフトウェアを利用しなければなりません。

    最も身近な例としては「pmx形式」としてエクスポートを行い MMDを利用してアニメーション作品を作成するケースが考えられます。

    実際これまで自分が「XISMO(キスモ)」で作成してきたデータは、全て MMDでの利用を念頭に置いたものでした。

    一方で MMD以外でのアウトプット、具体的にはフォトリアルなCG画像を出力してみたくもなり、今回「Blender」を用いたレンダリングを試してみた次第です。

    なぜ「Blender」なのか?というと、
    『とりあえずフリーで試せる統合ソフトとして最初に思いついたから』
    という程度のノリですw

    「Blender」というソフトに関する詳細等々は端折りますが(そもそも、うp主自身あまり理解していないためw)、個人的には、
    • フリーで使用できる
    • 昔からある
    • ちょっとクセが強くて取っつきづらい
    といったイメージを(勝手に)抱いています。

    これを書いている現在(2019年06月時点)、「Blender」は「2.7系」とベータ版となる「2.8」が主に使用されている(?)ようです。

    一応、どちらのバージョンも試してみましたが、「Blender」初心者のうp主的には
    • UIの見直しにともない一般的な操作に変更されている
    • レンダラー「Eevee」が実装されている
    という点を考慮して「2.8」を使用しています。

    ただしネットの情報については、やはり「2.7系」の操作方法・設定方法に関するページの方が圧倒的に充実しているように感じました。
    (このあたりは今後改善されていくと思いますが・・・)

    また、当方の環境的な問題もありそうですが、現状「2.8」は若干不安定な部分もあるようです。
    (特に材質設定、高負荷なレンダリングなどで落ちるケースがたまにある)

    なお、本記事における「Blender」の操作方法・キャプチャ画像はすべて「2.8」(日本語化しています)に関しての記述となります。



    ■XISMO、Blender 間のデータ連携
    「XISMO(キスモ)」で作成したモデルデータは「Blender」で読み込みできる形式で出力する必要があります。

    「XISMO(キスモ)」および「Blender」は、他のソフトウェアとデータをやり取りするために「エクスポート」「インポート」の機能を備えています。

    したがって「XISMO(キスモ)」から出力(「エクスポート」)でき、「Blender」側で読み込み(「インポート」)できるデータ形式を用いることで、2つのソフト間でデータのやり取りが行えるようになります。

    ここでは、今回の作業で使用したデータ形式と、「エクスポート」「インポート」時の注意点について記述します。


    1.データ形式
    今回の作業では「obj形式」を用いてソフト間でデータのやり取りを行いました。

    前述したとおり「XISMO(キスモ)」から出力でき「Blender」で読み込みできる形式は他にもある(FBX形式など)ため、もしかしたら「obj形式」よりも適切な連携形式があるかもしれませんが、とりあえず「obj形式」を利用する方向で進めます。


    2.「XISMO(キスモ)」からの「エクスポート」
    「XISMO(キスモ)」から「obj形式」でデータを出力する場合は、
    [メニュー]-[ファイル]-[エクスポート]▶[.obj]
    を実行します。

    「obj形式」出力時のパラメタ設定用ダイアログがオープンしますので、以下のような設定を行います。
    【エクスポート設定】

    「倍率」については「XISMO(キスモ)」でモデリングを行った際のサイズ系および、「Blender」でシーンを作成する場合のサイズ系それぞれを勘案したうえで変換の倍率を入力します。

    参考として、うp主がファミコンのモデルデータを作成した場合は、「XISMO(キスモ)」における「1」を「1cm」とみなして作成し、「obj形式」出力時は上図のように「0.100倍」として出力しています。

    その他、「Z軸を反転」「UVのV座標を反転」「面を表裏反転」をチェックし、「モディファイアをフリーズ」「表示ノードのみ」のチェックについては必要があれば適宜チェックします。


    3.「エクスポート」に関する注意点
    後述の通り、「Blender」側のインポート設定によっては「XISMO(キスモ)」側のノード情報を(ほぼ)維持したまま取り込む事も可能なようです。

    ただしノード名称に日本語(マルチバイト文字?)を使用している場合「Blender」側で文字化けするため、ノード情報を保持したまま連携したい場合は「XISMO(キスモ)」側でモデリングする際のノード名も英数字のみに限定した方がよいかと思われます。

    また、テクスチャとして使用している画像ファイルのファイル名に日本語を用いている場合「Blender」側でインポートが行えませんでした。(エラーとなる)

    ファイル名についても英数字のみの利用に留めた方が良さそうです。


    4.「Blender」でのインポート
    「Blender」にて「obj形式」のデータを取り込む際は、
    [メニュー]-[ファイル]-[インポート]▶[Wavefront(.obj)]
    を実行します。

    インポートするファイルの選択画面が表示されるので、画面左下のオプションから以下のような設定を行います。
    【インポート時のオプション】

    「グループ」にチェックした場合は、「XISMO(キスモ)」側でのノード情報を保持した状態でインポートされます。


    5.スムーズシェード
    「XISMO(キスモ)」側で曲面化モディファイア等を適用し、なめらかな曲面として作成したモデルであっても「Blender」側では なめらかな状態でレンダリングされません。

    これはメッシュの初期設定が「フラットシェード」になっているため(?)ですので、適宜オブジェクトを選択後、右クリックで表示されるメニューから「スムーズシェード」を適用します。(下図参照)

    なお、一律に「スムーズシェード」を適用した場合、エッジ部分までなめらかな形状に変更されてしまいます。
    【エッジまで なめらかに変更される】

    この場合は、「オブジェクトデータ」のプロパティより「自動スムーズ」をチェックし適宜角度の設定を行うことで回避できます。

    【「自動スムーズ」と「角度」でエッジの調整が可能】


    ■材質の設定(その1)
    「Blender」におけるレンダリングエンジン「Eevee」(または「Cycles」)は物理ベースのレンダラーとなっています。

    これは、物理現象(光の反射・散乱・屈折・吸収など)をモデル化したレンダリング手法だそうで、出力される結果がより現実に近いものになるようです。(実際リアルに見えるw)

    従来の方式と材質(マテリアル)の設定方法が大きく異なり、馴染み深い「拡散色」「環境色」「反射色」といったパラメタから新たに物理現象をシミュレートするための各種パラメタへ変更されています。
    したがって「XISMO(キスモ)」側で行った材質設定はすべて「Blender」側で再度変更しなければなりません。

    ただしUVの展開についてはそのまま利用できますのでテクスチャの割り当てに関しては「XISMO(キスモ)」側ですべて行いました。

    ここではモデルデータを「Blender」にインポート後、今回の作業の中で再現した各種材質の設定値をメモ的にご紹介します。


    1.そもそもどうやって材質を再現するのか?
    とはいえ、いきなり各種材質の物理特性を正しく再現するのはハードルが高いように思われます。
    そこで今回は「PBR Materials」というアドオンを使用してサクッと材質設定を済ましてみました。

    https://3d-wolf.com/products/materials.html

    アドインの追加手順は以下の通りです。

    ①上記サイトから「PBR Materials」をダウンロードします。(「3.2」以降は「Blender2.7系」では使用できないようです)


    ②「Blender設定」をオープンする
    [メニュー]-[Blender(※)]-[設定]
    ※メニューの一番左端

    ③「アドオン」を選択し「インストール」ボタンを押下


    ④「①」でダウンロードしたファイルを「.zip形式」のまま選択し、「ファイルからアドオンをインストール...」を実行


    その後「Blender」を再起動して、プロパティの「マテリアル」を選択し、設定の一番下に「PBR Materials」が追加されていればOKです。

    【PBR Materials】


    実際に材質へ割り当てを行う場合は「PBR Materials」をチェックしたのち、材質のプレビューをクリックすることで表示される一覧から割り当てたい素材を選択します。

    【素材を選択】

    以下のイメージは実際に材質の割り当てをする前(左)と、「プラスチック」の材質を割り当てた後(右)の比較になります。
    プラスチックらしい光沢が表現されているのがわかると思います。

    2.アルファ付きテクスチャ
    アルファチャンネル付きの「png画像」をテスクチャとしてマッピングした場合、通常はアルファ部分が透明化されますが「Blender」においては(※)、ひと手間加えないと透明化されないようです。
    ※ちょっとニュアンスが違う表現かもしれませんが・・・

    「Blender」では、「シェーダーエディター」を用いることでノードを利用した材質の設定が行えます。

    うp主自身がまだ完全に把握できていないのと、説明にあたっては相当なボリュームが必要となるためシェーダーノードに関する解説はまるっと割愛(笑)しますが、以下のような接続を行うことでアルファチャンネルによる透明が適用されます。

    【アルファチャンネルによる透明化ノード】

    ポイントは「シェーダーミックス」を使用し、アルファチャンネルとベースカラーの出力とミックスする点になります。

    この時「画像テクスチャ」ノードからのアルファチャンネル出力を「シェーダーミックス」の「係数」へ流すとともに、2つあるインプットの上の方に「透過BSDFノード」を接続する必要があります。

    仮にインプットの下に「透過BSDFノード」を接続した場合は正しい結果になりません。
    (おそらく「係数」の影響は2つあるインプットの上の方とリンクしている思われる)

    また、レンダラーが「Eevee」の場合は「マテリアル」のプロパティから「ブレンドモード」を設定する必要があります。
    今回は「アルファブレンド」を使用しました。

    【「Eevee」の場合はブレンドモードも設定する】


    なお、テクスチャの反映は3Dビューのシェーディングを「ルック開発」か「レンダー」に設定しないと正しく表示されません。
    【3Dビューのシェーディング設定】



    材質の設定については他にもいくつかメモを残しておきたいものがある(アルファチャンネル設定時の影、シボ加工など)のですが、なんか疲れてきたのと異様に長くなってしまったのでいったんここまでで区切りとさせていただきます。

    続きは近いうちに(忘れないうちにw)投稿するつもりです。

    それではまた次回。

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。