2011年12月16日

[Unity] Androidでトゥーン(解決?)

Androidでトゥーンを表現しようとした記事 の回答(?)になるかもしれません。

まず、前回できなかった「HTC Desire では自前トゥーンシェーダーがきかない」という問題。
これは、使うものは前回の記事と同じですが設定が違いました。
Player Settings > Configuration > Graphics Level > OpenGL ES 2.0
とすれば解決しました↓
※デフォルトだと「OpenGL ES 1.x」
20111215swaptexture_setting.png

そして、問題のアウトライン。
これは、法線を反転させたオブジェクトを別に用意して、
微妙に拡大させた上でもとのオブジェクトに重ねて表示することで実現できました↓
20111215android_toon.png

法線を反転させるのは、別途3DCGソフトを使ってます。
法線を反転させたオブジェクトには、黒のDiffuseシェーダーを適用しています。

ただ、これだとオブジェクト数が2倍になっちゃいます。
なんとか自前シェーダーで解決したいところです。

とりあえず、1つ解決方法が見つかったのでここで共有。
実際に動いている様子は、こちら で確認できます。

自前トゥーンシェーダーの参考:
http://answers.unity3d.com/questions/184954/toon-shading-ios-and-android.html#

アウトラインの参考:
http://forum.unity3d.com/threads/14631-2D-art-and-toon-shading


-------------------- 追記 ---------------------

今回のことで
Player Settings > Configuration > Graphics Level > OpenGL ES 2.0
とすれば自前シェーダーがHTC Desireでも表示できることがわかったところで、
「まさか、デフォルトのトゥーンシェーダーもうまくいくのでは?」
と思って試してみました。

うまくいったよ。。。orz

20111215default_toon.png
※HTC Desire でのスクリーンショット

中央と右の2つのオブジェクトが、デフォルトで用意されている
Toon / Basic Outline
のシェーダーを適用したものです。

今までの苦労は何だったんだ!

ただし、アウトラインの幅(Outline width)を大きくしても反映されませんでした。
アウトラインを調整したい場合は、上記記事の方法がいいかもしれません。
posted by be-style at 12:59| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]