Home

Awesome

English (by Google Translate)

NVIDIA Hair Works Integration

grass mite

NVIDIA Hair Works の Unity インテグレーションです。 MAYA や 3ds Max でオーサリングした Hair データを Unity で表示させることができます。

How To use

Unity 5.2 以降、かつ Windows & D3D11 専用です
使用には少々面倒な前準備が必要です。 Hair Works SDK は再配布が認められていないため、各自個別に NVIDIA の開発者サイトから入手してプロジェクトへインポートする必要があります。 以下に手順を記します。現状 SDK はバージョン 1.1.1 を前提としています。

  1. このパッケージ をプロジェクトへインポート
  2. Hair Works SDK を入手
  1. Hair Works SDK に含まれる必要なファイルをプロジェクトへインポート

シェーダをカスタマイズしたい場合、hair には Unity のシェーダは使えないので独自に HLSL を書いてコンパイルする必要があります。 シェーダやプラグイン本体をビルドしたい場合、HairWorks-r1_1_1-62/HairWorks ディレクトリをまるごと Plugin/Externals の中にコピーしてから Plugin/HairWorksIntegration.sln をビルドします。
ちなみにスクリーンショットの虫は SDK 付属のサンプルで、media/Mite にあります。

Hair Instance Component

mite
前提として、現状 hair 関連のデータ (.apx, .cso ファイル) は、Assets/StreamingAssets 以下に置く必要があります。

モデルの座標の単位に注意が必要です
現状 hair はスケールをかけると結果が正しくなくなってしまいます。
Unity ではモデルはインポート時に File Scale によるスケールがかかりますが、 .apx のデータはこのスケールがかかる前の座標系になっています。
面倒なことに File Scale は 0.01 になっていることがよくあり、 こういう場合 .apx の座標系と Unity の座標系を一致させる必要があります。 DCC ツール側で File Scale が 1 になるように変更するか、 Unity 側で Scale Factor * File Scale が 1 になるように調整してスケーリングをキャンセルします。 後者の場合超でかくなってしまうので、前者による解決が望ましいでしょう。
参考: Import settings
mite

Hair Light Component

Hair をライティングするにはこのコンポーネントが必要です。通常の Light オブジェクトに追加します。 mite
大体見たまんまです。copy_light_params をチェックすると Light コンポーネントのパラメータをコピーして使うようになります。

Warning

Hair Works を含む NVIDIA GameWorks SDK は、使用する場合 NVIDIA のロゴの表示義務が生じます。 これは本プラグインを使用する場合にも適用されます。使用の際はこちらをよく確認してそれに従ってください。
GameWorks SDK EULA

大雑把にまとめると、ゲームの開始画面、マニュアル、プレスリリースなどに NVIDIA Game Works のロゴの表示義務が生じ、加えて商用利用の場合は NVIDIA へその旨を報告する必要がある、といったものです。ライセンス料の類は特にないようです。

License

MIT