スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

続・頂点AOベイク

たくさんメッシュがあるのに一つ一つベイクの設定するの手間だよ~という話をしていたところ
親切にもまとめてベイク設定をできるスクリプトを提供していただけた方が!
ymt3Dさんどうもありがとうございます!おかげさまでとっかかりがつかめました!

・というわけでブロック街に適用したら効果てきめん!
150113BG_a.jpg
・比較対象としてベイクなしの頃のもの
1401012c_SSAO.jpg

比べると一目瞭然で、接地感が出て、なじみの良い絵面になりました!
これでさらにUNITY上でリアルタイムシャドウを落とせればひとまず目指した絵作りの目標は達成できそうです。

しかし、これはスクリプトが無ければとてもやる気にならない処理だったのでそういう意味でもymt3Dさんに感謝。
なんとか自力でICEの適用なども追加できたので自分のスキルアップにもつながりました。ありがとうございます!
便利ですね!スクリプト!(いまさら)

これでさらにいろいろな可能性が広がってきた感じ。ますます面白くなってきた!

頂点AOベイクの威力

昨日一日背景のビジュアル向上のためにいろいろ試した結果、
自分の背景フォーマット的には頂点カラーによるAOの焼きこみが一番効果的という結論。

頂点ではなくテクスチャにベイクしたほうが上等ではあるのだけど、
タイリングテクスチャ用とは別にUVを編集しなくてはならなかったり、
管理するテクスチャの枚数が増えたりするのは作業コスト的に嬉しくない。
反面、頂点カラーならUVもテクスチャも触らずに好きなだけいじれるし修正も容易。
なにより3Dツールの中で完結してくれるのでありがたい。

今まで問題だったのは頂点カラーによるテクスチャブレンディングとどう両立させるかというところで、
それが今回解決したので良かったという話。

・いつもの背景with頂点カラーAOベイク
150111BG_a2.jpg
・岩肌のテクスチャを変えてみた
150111BG_a.jpg
・もちょいアップで
150111BG_b.jpg
全体に絵にぐっとしまりが出た印象。やっぱ暗くなるべきところが暗く描写されてると単純に説得力が上がっていいね。

今作ってる背景シェーダーは頂点カラーRGBAのうち、RGBを使って3枚のテクスチャのブレンドを調整していて、
残ったAチャンネルで陰影の調整を行う仕様にしている。
問題は、SIの頂点ベイクはRGBAの全部に対してベイクをしてしまうため、せっかく塗り分けたRGBが失われてしまうこと。
で、これを回避するために今回思いついたのが別の頂点カラーセットにベイクして、
そのベイク結果をICEをつかって最初の頂点カラーのAチャンネルに転送してあげるということ。
これが意外と簡単に実現できたのでちょっと感激。もっとはやくやればよかった。

というわけでちょっといい感じの結果が得られそうな頂点AOベイクだけど、唯一の問題点は
ステージ上にある全てのメッシュに対して一個一個rendermapとICEツリーを設定するのが地味に手間だということ。
一個に付きベイク時間込みで1分かからないんだけど、メッシュが大量かつ繰り返し作業なので地味にめんどくさい。
全部まとめてガーッとやれたらいいんだけどな…。
そんなときにスクリプトの出番だと思うんだけど…。難しい。
スクリプトのログのコピペだと、そのログのメッシュに対してしか有効ではないので、
他のメッシュに対しても同じ処理を繰り返したいときにどう書けばいいのかが分からず詰まってしまう。
「selection」とかを使えば良さそうなのだけど…。保留!

ひとまず今日はここまで!

法線ブレンドによる「いいとこ取り」シェーダー

前々から課題として心に引っかかっていたローコストかつ見栄えのするなゲーム背景用ブロック、
昨日参加したJUNKIさんのXSI男忘年会での会話で良さそうな方法を思いついたのを試してみたらできたんでメモ。

まずは結果:
1401230a_block.jpg
わりといい感じのブロックになったとおもう。エッジ部分の光の回り込み具合とか。
ノーマルマップなし、超シンプルなメッシュでこの結果ならひとまずは成功じゃないか。

●素材
・ワイヤーフレームは↓な感じで、ごくシンプルなトポロジ。面の中心に頂点があるのがポイント。
1401230a_block_wire.jpg
・UVはこんな感じでシンプル。UVの切れ目でタイリングテクスチャがずれてしまうのは目をつぶる。
1401230a_block_UV.jpg

●前提
ゲームの背景で無造作かつ大量に配置できる汎用性の高いブロックが欲しかった。
量産が容易で、かつ見た目はそこそこ見れるレベルが望ましい。
今の時代のZブラシとかでハイメッシュを作ってノーマルマップ作ってローポリモデルに貼るっていう
ワークフローが「常識」だと思うんだけど、自分基準ではこれは作業コストがかかりすぎなので、
もっと簡単な方法がないかと模索していた。

・ハードエッジ:明暗のエッジがさすがにちょっと直線的すぎてうそ臭い。
1401230a_block_hard.jpg
・スムースエッジ:立体がヌルく見えてしまうのはNG
1401230a_block_soft.jpg

・この二つを「いいとこ取り」できないか
1401230a_block_blend_final_20141231145339c35.jpg
エッジ付近の自然なつながりと面の立体感を両立するために、この二つの結果をシェーダー上でブレンドしてやればいいのではないか、というのは実は前からちょっと考えていたのだけれど、そのためにはハードエッジ状態の法線と、スムースエッジ状態の法線の両方を保持しなくてはならないのがネックになっていた。法線情報は基本的に一つしか持てないので。
なのだけど、実は先日公開されたSoftimage用の法線編集ツール「UserNormalTranslator」を使えばできることに、飲み会の会話中にふと気づいたのです。
UserNormalTranslatorには法線情報を頂点カラーに変換する機能があるので、それをつかってスムースエッジ状態の法線を一旦頂点カラーに格納してその数値をシェーダー内では法線として扱うようにすればいい。
1401230a_block_blendmap_20141231145337f40.jpg

そしてシェーダー内でエッジ付近はスムースエッジの結果を、面の部分はハードエッジの結果を使えば、理想的な結果が得られるのではないか。

・エッジ部分の指定
とはいえシェーダー内ではどこがエッジでどこが面なのかなんてのは判定できないので、なんらかの方法でエッジ付近をマスクする必要がある。テクスチャでやってもいいのだが、そうするとUV展開などにも頭を捻らなくてはならないし手数も増えてしまうので、ここはやはり頂点カラーを使って指定する。
エッジ部分の頂点カラーを1に、それ以外を0に。別にRGBA全部を使う必要は無いので今回はAチャンネルを使用。
1401230a_block_vcol.jpg
ただコレだとグラデーションが広すぎてエッジ付近のマスクとして扱うには不適切なので、ピクセルシェーダー内で頂点カラーを累乗する。だいたい20乗くらいするとこんな感じの分布になってくれる。
1401230a_block_vcol_pow.jpg
で、このマスクをつかってハードエッジ法線とスムースエッジ法線のライティング結果をシェーダー内でブレンドしてやればめでたく以下の結果が得られた。
1401230a_block.jpg

我ながら回りくどいことをしていると思うw
でも結果にはわりと満足。実戦投入するにはまだもう少し不安があるけれども。
すなおにノーマルマップを使えばいいじゃない、という考えも分かるが
みんなと同じ方法をとったら同じような結果しか手に入らないしね。多様性大事。
かの名言「楽をするためならどんな苦労をも厭わない」の精神で今後もがんばりたい。
それでは来年もよろしくお願いします。

User Normal Translator

というわけでGOTETZさんと組んで密かに進めていたsoftimage用の法線編集プラグイン
その名も「User Normal Translator」が一般公開になりました。

下記URLからダウンロードできます。
https://github.com/Gotetz/UserNormalTranslator

組んだとはいっても自分は「こんな機能があるとすごく助かるんです!」というようなリクエストをしただけで
実際に手を動かしたのは100%GOTETZさんなので足を向けて寝れないのですが!
ずっと「こんなツールがあったらなぁ!」と思ってた機能をこちらの想像の2倍くらい使いやすくして
実装してもらえたので本当に感謝してもしきれないです。
今後仕事でも趣味でも大活躍してもらえること間違いなしです。

softimageはver2015で開発が終了してしまいましたが、
まだまだユーザーの工夫次第ではいくらでも機能追加をしていける
という一例になればと期待しています。

もう少しで正月休みに入るのでいろいろと再開していこうと思ってますよ。乞うご期待。

近況

いくつか抱えてた個人的なタスクをクリアできたので更新解禁。今年は公私ともにいろいろがんばったな。うん。
完璧じゃないけどひとまず走りきった感はある。これで正月休みは気兼ねなくゆっくり趣味に没頭できそうだ。
1401223a_MMI.jpg
GOTETZさんと一緒になって悪巧みしてたゴニョゴニョも目処が立ったし、
近日中になにかサプライズがあるかも、ということで乞うご期待!
プロフィール

JNY

Author:JNY
某ゲーム会社勤務
趣味と修行をかねて個人製作中
Softimage & Cgfx & Unity

最新記事
最新コメント
月別アーカイブ
カテゴリ
カウンター
twitter

Twitter Updates

    follow me on Twitter
    リンク
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。