ページ

2014/10/14

Blenderでおかしな部分が選択される?

ある時、Blenderの選択機能がおかしくなったことがありました。
具体的には、矩形選択をしたら矩形の中にないはずの頂点が選択されたり、サークル選択をしたり、クリックで選択していてもおかしくなることも・・・。

私はNVIDIA製のGPUを使っていたのですが、色々調べてみたところ、NVIDIA コントロールパネルで、アンチエイリアスの設定を強制にしていたのが原因のようでした。
アンチエイリアスをOFFにしたところ、この問題は解決しました。

しかし、頂点の選択にグラフィックボードの設定が影響するというのは、ちょっと不思議ですね・・・。

頂点インデックスを一旦テクスチャに描画しているから、ぼかしがかかるとインデックスがずれてしまう、とか?

2014/06/12

【MMD】トヨタ・スープラ & AutoMetallic Ver2.1 !! ( Ver2.2も追加!)

※AutoMetallicを、Ver2.1からさらにVer2.2に更新したのでアップデートをお願いします!

お久しぶりです!一人暮らしを始めました。
ちゃんと自炊はしてます!
そろそろバイトも始めたいですが・・・なかなか勇気が出ない・・・!

そんなことはともかく、今回はエフェクトとモデルのダブル配布です!

▲スープラと、セルシアナ様と、砂漠と、青空!! FOOOOO!!

○トヨタ・スープラ 完成!

Twitterの方でも告知はしていましたが、初めてのモデル公開になります!
過去にも、MMD向けにスープラのモデルが公開されていたのですが、すでに非公開になっていたので、どうせなら自分で作ってみようと思い、Blenderで作り始めました。

 モデリング自体は経験があったのですが、ここまで作りこんだのは初めてだったので、かなり苦労しました。特に内装は慣れていなかったこともあり、かなり雑かもしれませんが、一応MMD上で使う上では差し支えないレベルではないかと思います。
 頂点数は約3万8千ですが、少なめに抑えたつもりです・・・。

 スープラは大好きな車の一つなので、いずれモデリングしてみたいと思っていた次第です。
作り始めてから気づいた点も多かったです。アクティブスポイラーが付いてるなんて知らなかった・・・。改めてスープラを知り、好きになるいい機会になりました!
 ちなみに、F&F仕様やGT仕様の製作も予定しています。

 今後も色々な自動車のモデルを作っていこうと思います。(内装まで作るかはわかりませんが)
多分、私の趣味的に、最新式のスポーツカーが多めになるかと思われます。
 ちなみに今は、こんな車を製作中・・・・!
▲そんなに細かく作るつもりはない予定。予定。

○AutoMetallic Ver2.1

AutoMetallicも少しアップデートを加えました!
以下は変更点になります。

1. 今度こそシャドウバッファ外でも反射します

前回、嘘ついてました、ゴメンナサイ!
しっかり動作を確かめてませんでした。いつもExellentShadowかけてるもので・・・。
あと、同じ記述を何回もするのが面倒だったことから、反射の計算を関数にしてみたので、読み込みが速くなったかもしれませんが、正直よくわかりません。

2. 特定オブジェクトだけ反射率を高めることが可能に!

分かりづらいかもしれませんが、上のスープラの画像、実は空だけ映りこみやすくしてあるんです!(若干控えめに使ってます)
二通りの方法があるのですが、若干説明しづらいので、詳しくは配布ファイルのReadMeをご覧ください。
 実は最初に作ったときからなんとかしたいと思っていたのですが、知識不足でどうにも出来ず・・・それで何とかむりやり映りこませようとして、反射率を25%というかなり高い値に設定したり、映り込みのコントラストを上げたりと色々試してたわけです。
若干トリッキーなことをしなければなりませんが、今回の方法ならうまくいくはずです!

3. MMMに仮対応!

結構MMMが好きな人も多いようで、対応して欲しいとの声があったので作ってみました。
ただ・・・使用の違いゆえに全く同じようには行かず、今回は仮対応とさせていただきます。
具体的に言うと、DP_Centerの座標を取得できなかったり、映り込みの対象からモデル自身を除外できないといった問題がありました。
 そのため、通常のAutoMetallicとは若干使い方が異なりますが、見た目的には大差ないはずです。詳しい使い方などはReadMeを読んでください。

 大きな変更点はこんなところですが、個人的には2を実装できたのがうれしいです。
実際に車などを見てみると、明るい部分と暗い部分の差の大きさが、実際に見た像よりも映りこんでいる像は大きく見えるようなんです。
詳しくはよく分かりませんが、人間の目が明るさを補正するために起きるのではないかと思われます。
ゲームなどを見ると、特定のオブジェクトだけを明るく映りこませる処理はよく見られます。
(最近だと特にForza5などは顕著です。)

 基本的な使い方は、前々回の記事や動画、ReadMeを参考にしてください。

○ダウンロード

トヨタ・スープラ JZA80
Download
左ハンドル、右ハンドルの両方のモデルと、ナンバープレート付きです!

AutoMetallic Ver2.1
Download
MMM版はこちらに同梱されています。

AutoMetallic Ver2.2.1
Download
うっかりして反射マップの向きを間違えてたかもしれないので修正。
せっかく更新するので、AutoLuminousで光るオブジェクトが明るく映りこむように改良!
あと、MMM版にも反射強度固定版を用意しました。

※ 2015/04/29 追記
意図しない使われ方をしないよう規約を改訂、ver2.2.1に更新しました。
また配布先を容量が大きく制限の少ないcopy.comに変更、リンクを管理のしやすいbitlyに変更しました。

※ 2016/06/13 追記
Copy.comのサービスが終了し、ファイルがダウンロードできない状態になっていました。
次ははGoogle Driveでの配布を予定していますが、規約の改定などの準備のため、しばらくお待ちください。

使い方などの疑問やバグ報告などがあれば、静画やこのページのコメントからお願いします!

それでは、よいMMDライフを!

2014/03/21

【MMD】 AutoMetallic バージョンアップしました!

 そろそろブログのデザインを変えてしまいたい柄杓です。
 AutoMetallicが2.0になったのでお知らせします!

カーグラP製作の日産 スカイライン GTRです!AutoMetallicを組み込んでいただきました!

○AutoMetallicとは

去年の10月下旬くらいに配布した、自動車などのリアルな反射を実現するシェーダーエフェクトです。
 モデルに少し細工を
しておくことで、エフェクトを適用すると材質ごとに異なる反射強度を実現できます。

 ちなみにその細工の手順について手短に説明すると

 1. モデルの中心に「DP_Center」という名前のボーンを追加。
 2. それぞれの反射強度の小数点以下の値で、反射の割合を指定。(30.25なら、反射は25%になる)

 という感じです。
 「反射の割合」という変な言葉を使っていますが、本当なら「反射強度」って言ってしまいたいところですが、モデルの反射強度(光源の光の反射の映りかたの大きさ)とごっちゃになるので、仕方なく言い換えています。


○前回からの変更点

さて、AutoMetallicが2.0になって何が変わったかというと・・・

 1. セルフシャドウOFFでも反射するように変更

これは今まで、遠くから見ると反射しなくなってしまっていたのを修正しました。
 入れないほうが軽いのかと思ってましたが、そんなことはなかったです。

 2. 透明度0の面がフレネル反射で透明度が上がらないように変更

どういう意味かというと、このエフェクトではガラスなどの透明の面を斜めから見るとガラスの向こうが見えにくくなるのですが、これが悪さをしてモデルの見た目に支障をきたす場合があったので、修正しました。

 3. 色味の調整の設定を変更可能に

エフェクトファイルの先頭部分のパラメーターを変更することで、材質の色と、反射の色のコントラストを調整できるようになりました。
 これらの値を上げると、反射による映りこみで色が薄くなってしまうのを防ぐことができます。
 デフォルトでは材質0.0、反射0.25に設定されています。

 4. 面方向の検出をより正確に

要するに面の裏表の判断の仕方を変えたということです。
 難しいことを言えば、今までは視線と法線の内積から判断していましたが、VFACEという数値を使うことにしました。
 今までの法線を使う方式だと、モデルによってはカーブしている部分でうまく裏表が判別できませんでした。

 5. Plus版もちょっと変更

太陽光源が反射して映りこむようにしました。


○ちょっと試してみたい人のために

 わかってはいたんですが、やっぱり材質に設定するのって結構面倒です。モデルによっては100近い材質の種類がありますからね!(さすがにやりすぎだと思いますが)

 そこで、とりあえずどんな感じに見えるのか試してみたい人のために、反射強度固定版を用意してみました。Metallic_10%、Metallic_20%、Metallic_90%がそれです。
 これはセンターボーンを中心に反射マップを展開し、反射強度に関係なく反射します。
 とりあえずミクさんとかに適用してみるとどんな感じか分かります。
 あくまでお試しであるため、実用性はありません。

 (実は最初からあったんですけどね・・・)


○ポストエフェクト版の使い方!!

さらに、今回はポストエフェクトを利用して反射を実現する「AutoMetallic_Post」を作りました!
 シェーダーエフェクト版と比べて、ちょっとだけ使い方が違うので、解説します。

 1. AutoMetallic_Post.xまたはAutoMetallic_Post.pmxを読み込む

AutoMetallic対応モデルは白く反射して何も映っていない状態になります。
 そのため、次の手順で環境マップを指定する必要があります。

 2. エフェクト割り当ての、「ReflectObjRT」タブから反射マップを指定する

ここで、各モデルに反射マップを設定します。
 反射マップを生成するには、生成するときの中心となるポイントを指定する必要があります。
 先ほどまで何も映っていなかったのはこのためです。
 デフォルトでは「指定なし.fx」となっていますが、反射させたいオブジェクトには「DP_Center中心.fx」または「センター中心.fx」「全ての親中心.fx」のいずれかを適用してください。
 どれを適用するかはモデルのタイプによりますが、AutoMetallic対応モデルならば「DP_Center中心.fx」を、それ以外ならば最適なものを選んでください。基本的にはセンターか全ての親でも大丈夫です。(全ての親中心.fxは、厳密には全ての親ボーンより少し上が中心になります。)
 これを適用した時点で、AutoMetallic対応モデルならば操作は完了です。

 3. 「ReflectPowerRT」タブから反射の割合を指定する

ここで、各モデルの反射の割合を指定します。AutoMetallic非対応のモデルならばこの操作が必要になります。
 デフォルトでは「反射(Auto).fx」が適用されていますが、これは、AutoMetallicと同じ要領で反射の割合を指定する方法です。
 これを、任意の「反射(X%).fx」に変更すると、それがその材質の反射強度となります。
 サブセット展開でそれぞれの材質に適用すると、反射強度を材質ごとに変更することも出来ます。

 必要な操作は以上です。
 また、PMX形式ならモーフで、X形式ならばアクセサリの操作値で、反射の割合の増減や、反射の映り込みのコントラストなどの値をまとめて操作できます。詳しくはReadMeを読んでください。

またこのエフェクトは、シェーダーエフェクト版のAutoMetallicとは別での配布となります。


○ポストエフェクト版のメリット

ここまでの手順を見る限り、操作が余計にややこしくなっただけのように思った方もいらっしゃるかもしれません。しかし、以下のようなメリットがあります。

 1. 他のシェーダーエフェクトと重ねがけができる

おぼえている方もいらっしゃるかもしれませんが、前回公開したとき、「エフェクトの知識があれば、他のシェーダーエフェクトに組み込むことができる」と言いました。
 しかし実際に試してみたところそう簡単ではなく、特に最近のエフェクトにはサブエフェクト(?)的なものを利用しているものもあってうまくいかないものがほとんどでした。しかも、実は前述した「面方向の検出」に使ったVFACEが邪魔でこのままでは組み込めなかったわけです。
 そこで、いっそポストエフェクトにして画面全体に上からかけてしまおうと考えたのがこのポストエフェクト版です。これによって、エフェクト割り当てのMainタブから好きなエフェクトをかけて、その上に反射させるということが出来るようになりました。
 また、AutoMetallic_Plusのプラス部分に相当する「自動車シェーダー」を同梱しています。重ねがけを試してみてください。

 2. AutoMetallic非対応のモデルに反射を適用しやすくなる

今まではシェーダーエフェクト版でも、一応サブセット展開してそれぞれの材質ごとに反射強度を指定することも出来たのですが、実はエフェクトの性質上、それをすると環境マップがエフェクトの数だけ余計に作られることになり、非効率で負荷が高かったわけです。
 先ほどのポストエフェクトの形式だと、環境マップはモデルに一つだけにしつつ、反射強度は材質ごとに分けられるので、負荷を低減することができます。

 3. ポストエフェクトから反射の割合を調整できる。

これは前に言ったとおりでモーフまたはアクセサリの値から、反射の割合などのパラメーターを調節することができます。
 シーンに最適な反射表現を探ってみてください。


○ポストエフェクト版のデメリット

ここまではポストエフェクト版のいいところばかりを取り上げてきましたが、実はけっこう問題も多いです。

 1. ややこしい

自分で作ってる分には分かるからいいんですが、ここまでの説明を聞いてさっぱり分からなかった人もいると思います。
 こういう仕様になってしまうのもいろいろわけがあるのですが、説明するのも難しくて、どうしたものか迷っていますw
 これほど複雑だと「Auto」ではないと感じる方もいらっしゃるかもしれませんが、この「Auto」って「自動車」の「Auto」の意味もあるので・・・。後付けではないですよ!あと、自動車以外に使用しても全然問題はありません。

 2. シャギーが目立つ

目立つというほどでもないかもしれませんが、静止画にするとモデルの端辺りにシャギーが出ることがあります。
 これはアンチエイリアス関係の問題で、どうしても多少出てしまうのですが、まあ動画にするか大きなサイズで出力すればそれほど気になりません。

 3. 透明の面にさえぎられると反射しなくなる

さほど目立ちませんが、ガラスの面などを通してみると反射がなくなってしまいます。車内からボンネットやサイドミラーを見ると問題が生じるかもしれません。
 どうしても必要な場合は、適宜シェーダーエフェクト版と使い分けてください。

 4. 重ねがけの効果がさほど期待できない

「重ねがけができる」とは言ったものの、実は重ねがけの相性が良くないエフェクトが多数あります。
 例を挙げるならば「フィギュアシェーダー」「メカシェーダー」「G_Shader」「多機能シェーダー」など・・・どれも単体ではすばらしいエフェクトです。
 これらに共通するのは「バックライト」を表現しているということです。じつはバックライトとはいっても、これは要するにやわらかい反射の表現であり、これにさらに反射を加えると、実に違和感のある絵になってしまいます。
 そのため、重ねがけをして効果が得られるエフェクトは限られてしまいます。

 5. パーティクル系のエフェクトとの相性が最悪

途中まで気づかなかったのですが、パーティクル系のエフェクトと重なってしまうと、反射だけパーティクル越しに見えてしまうという大きな問題が発覚しました・・・。
 白い煙などであればごまかしようはありますが、黒煙などとなるとかなり目立ってしまいます。
 ポストエフェクトであるため、この性質は回避のしようがありません。
 まあ、どうしても使用するのであれば、なんとかごまかして下さい・・・。


○ポスト映り込みエフェクト付き版!!!

その名の通り、ビームマンPの「ポスト映り込みエフェクト」をポストエフェクト版AutoMetallicに組み込んだものです。RLR(リアルタイムローカルレイトレーシング)という技術です。
 何が違うかというと、車の場合は、バックミラー等、反射している物体自身の一部がも映りこむようになります。
 もともと、ポストエフェクト版は、シェーダーエフェクト版のAutoMetallicで、反射している本体が映りこまないのに違和感を感じた人がいたために作ったものです。
 実際に使ってみると、かなり負荷が大きくなる割に、そこまでいい結果は得られない・・・という印象です。画面上の情報を使って擬似的にレイトレーシングによる反射を再現するものなので、どうしても実際のレイトレースとは違う部分が出てきてしまいます。
 こちらも、ポストエフェクト版とは別に配布しています。


○ダウンロード

AutoMetallic ver2.0
Donwload
 標準のシェーダーエフェクト版です。

AutoMetallic_Post ver1.0
Download
 ポストエフェクト版です。

AutoMetallic_Post+RLR ver1.0
Download
 さらに映りこみを追加したものです。とても重いです!

※今のところMMMには非対応です!!

※2015/04/29追記
旧バージョンを残しておいても混乱のもとになると思うので、非公開にしました。
RLR、ポストエフェクト版についても、やや利便性に難があるもので・・・。(特にパーティクルとの相性)
旧バージョンを引き続き使用していただくことは可能ですが、こちらから最新版をダウンロードすることをお勧めします。

○余談

今回のAutoMetallic、特にポストエフェクト版は、使い方がややこしかったりするところがあるため、後ほど動画も用いて説明しようと思っています。(↑の長い説明を隅々まで読む気はなかなか起こらないと思うので・・・)

 ポストエフェクトにも触れてみたことで、前よりもかなりエフェクトに関する知識も増え、HLSLのコードもどこがどんな働きをしているのか分かるようになって来ました。
 今は、一括で2つのタイヤから発生する煙を調整することができるドリフト用のパーティクルエフェクトを作ろうと考えています。楽しみにしていてください!

 また、以前AutoMetallicを公開してから、多くのAutoMetallic対応モデルが公開されていて、大変うれしい限りです!親作品登録の通知もたくさんありました。
 元動画がニコニコ技術部のランキングでトップに出ていたこともあり、とても驚きました。(もっとも、タグが正しかったかどうかはわかりませんが・・・)
 ただ一つだけ言っておくと、AutoMetallicはステージ向けではないのでその点は注意していただきたいです。ステージに使用する場合は、環境マップの生成中心と、ステージ内のモデルの配置に注意してください。(モデルがステージ全体に映ってしまうことがあります!)


 さらに余談になりますが、来年は大学生として一人暮らしをします!。以前の動画のコメントで、説明文の白字に気づいて応援してくださった方、ありがとうございました!