Skip to content

yyzreal/NVIDIAHairWorksIntegration

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. このパッケージ をプロジェクトへインポート
  2. Hair Works SDK を入手
  • https://developer.nvidia.com/hairworks ここの Download -> HairWorks 1.1
  • ダウンロードには NVIDIA の開発者アカウントが必要です。アカウント作成は無料ですが、申請から作成されるまでに 1 日前後時間がかかります。
  • MAYA や 3ds Max のプラグインもここから入手できます
  1. Hair Works SDK に含まれる必要なデータをプロジェクトへインポート
  • HairWorks-r1-1-212-distro/bin/win64/GFSDK_HairWorks.win64.dll を Assets/HairWorksIntegration/Plugins/x86_64 の中にコピー

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

Hair Instance Component

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

  • "Load Hair Asset": hair のアセットファイル (.apx) を指定します。
  • "Load Hair Shader": hair のシェーダ (.cso = コンパイルされた HLSL) を指定します。 最初からデフォルトのシェーダが指定されており、変える必要があるケースは稀だと思われます。
  • "Reload Hair Asset/Shader": 実行中に .apx や .cso を更新した場合、それを反映させるにはこのボタンを押します。
  • Root_bone: bone の root となるオブジェクトを指定します。 SkinnedMeshRenderer がある場合、それの Root_bone がデフォルトで指定されています。
  • Invert_bone_x: チェックすると bone の x 座標を反転する処理が入ります。 FBX との座標系を一致させるためにこの設定が必要になるケースがあります。後述の FBX のロード設定にも注意を払う必要があります。
  • Params: hair の色やシミュレーションのパラメータを設定します。 これらのパラメータは .apx ファイルにも含まれており、デフォルトでそれが設定されています。 細かい調整にはこちらを使うといいでしょう。

モデルの座標の単位に注意が必要です
現状 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 コンポーネントのパラメータをコピーして使うようになります。

Known Issue & ToDo

    • 近い先に対応予定
  • テクスチャによる hair の色、長さ、分布などの指定
    • 近い先に対応予定
  • アンチエイリアス
    • 考え中
  • Hair のアセットやシェーダは StreamingAssets に丸裸の状態で置く必要がある
    • いずれ他の選択肢も用意する予定
  • パラメータの設定項目が膨大でわかりにくい
    • いい改善アイデアがあれば対応予定
  • スケールをかけるとおかしくなる
    • 対処したいものの方法が思いつかず、未定…

Warning

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

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

License

MIT License:

Copyright (C) 2015 Unity Technologies Japan, G.K.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

NVIDIA Hair Works Integration for Unity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 48.3%
  • GLSL 44.1%
  • C++ 7.5%
  • C 0.1%