2010年09月28日

イカ娘でトゥーンのテスト

100927a.jpg

 ちょいと息抜き。
 MAXの標準機能でInk 'n Paintを使わないトゥーンシェードの方法がわかったので、イカ娘を作って試してみた。


 まず、輪郭線はmental rayのコンタ シェーディングで設定。いろいろあるけれどDepth Fadeっていう画面からの距離によって線の太さが変わるやつを使ってみた。
 Ink 'n Paintに比べて綺麗で早いのだけれど、線が出て欲しい部分・出て欲しく無い部分を設定できないのと、一応線の太さを変化させる項目はあるものの、手描きっぽい線には出来ないのが大分イマイチ。輪郭線は法線反転モデルの手法のがいいかもしれない。
 
 で、トゥーンの陰影は、自己照明を100にしたマテリアルの拡散反射光カラーに、フォールオフを入れる方法で作成。フォールオフタイプをシャドウ/ライトにして、ミキシング曲線を階段状にしたらトゥーンぽくなった。


100927d.jpg100927f.jpg

 シンプルなのはこんな感じ。
 左は色のみのマテリアルで、フォールオフのカラーを設定して、ミキシング曲線を弄っただけ。
 右はテクスチャで模様が入るもの。基本的には同じだけれど、色を設定する変わりに明・暗それぞれテクスチャを作って適用している。拡散反射光カラーにRGB乗算を入れて、片方をテクスチャ、もう片方を色のみのフォールオフにして陰影を乗算で入れる方法もあるけれど、陰用のテクスチャを作ってしまったほうが思った通りの色に出来るので確実な気がする。

100927e.jpg

 ハイライトが入るものはこんな感じで、フォールオフの中にさらにフォールオフを入れて設定している。今回は必要なさそうだったので入れなかったけれど、この方法を使えば陰側の照り返しに色を入れたりなんかも出来る。


100927h.jpg

100927g.jpg

 ついでに、常にカメラの方を向く髪のハイライトを作ってみた。
 UVを動かして向きを維持するようにするのだけれど、そのままだと髪の毛自体のUVもうごいてしまうので、通常のテクスチャ用のUVとハイライト用のUVのマップチャンネルを分けておく必要がある。
 まず、UVWマップ モディファイヤを円柱状に設定して掛けて、マップチャンネルを2に設定。
 次に、髪のマテリアルの拡散反射光カラーにミックスマップを入れて、片方は普通に髪のマップを入れて、もう片方はハイライト用に白にしておく。で、ミックス用のマスク画像のマップチャンネルもUVWマップと同じく2に。
 んで、ヘルパーをUVWマップのギズモの基点と同じ位置に作成して、ギズモとヘルパーのZ回転をワイヤパラメータで繋ぐ。最後にヘルパーをルックアットコンストレイントでカメラの方に向くようにしたら完成。

※※間違えました。コメントにて指摘されて気づきました。修正ついでにちょっと詳細に書き直します。※※

  正しくは↑の手順後、ダミーを作成してUVWマップのギズモの基点に位置を合わせる。さらに、エクスポーズTmというヘルパーをシーンのどこでもいいので適当に1つ作成して、エクスポーズTmのパラメータ内の"エクスポーズするノード"にダミーを選択する。これでダミーの回転値をエクスポーズTmが取り出してくれるようになる。
 このエクスポーズTmの"オブジェクト→ローカルオイラーZ"とギズモの"z回転"をワイヤパラメータで繋げば、ダミーをz回転させると、ギズモもz回転するようになる。
101105a.jpg101105b.jpg

 ここまではこんな感じ。自分の場合はワイヤパラメータで繋いだ際、ギズモが180°ずれていたので、+degtorad(180)で調整している。

 次に、カメラを作成して、ハイライトが正しく表示されるように配置する。ハイライトを真正面に向くようにダミーを回転しておいて、カメラも真正面に配置するのがいいかも。
 その状態でダミーをカメラにルックアットコンストレイントをかけてルックアットの設定の"オフセット初期値を保持"をチェック。
 これで完成。

 エクスポーズTmを咬ませる理由は、、ルックアットはIKと同様にそのままでは回転の値が取り出せず、ワイヤパラメータで繋いでも動かないため、エクスポーズTmで値を取り出す必要がある。

※※ここまで追記※※


100927b.jpg

 モデルはこんな感じ。
 一応ちゃんと立体で作ったけれど正面からの見た目以外は調整していないので、他の角度から見るとショボイ。とりあえずフォールオフのトゥーンを試したかっただけなので今回はこれで良し。
ラベル:3DCG
posted by 縦横 at 00:15| Comment(10) | イカ娘 | このブログの読者になる | 更新情報をチェックする