UnityのMaterialDescriptionをためす
Unity2019からこんな感じでMaterialの情報を参照できる
https://docs.unity3d.com/ja/2021.1/ScriptReference/AssetPostprocessor.OnPreprocessMaterialDescription.html
テクスチャの情報はTexturePropertyDescriptionとして取得できる
https://docs.unity3d.com/ja/2021.1/ScriptReference/AssetImporters.TexturePropertyDescription.html
pathにはDCCツールで設定したテクスチャパスが、relativePathには該当のFBXから見たテクスチャパスが入っている
textureには該当テクスチャの参照が入ってるので、そのままShaderに突っ込んだりできる感じ
UnityのカスタムShader用アトリビュートに制御用テクスチャを挿すべく、colorのカスタムアトリビュートを作ってみる
が、カスタムアトリビュートの接続はFBXにそもそも含んでもらえないのでだめでした
じゃあlayeredTextureならFBXがサポートしているのでいける?と思いきや、TexturePropertyDescriptionは1アトリビュートに1つしか返してくれないので、こちらもだめでした
というわけで、Maya標準のMaterialでやりくりする場合はlambertかphong既定のcolorアトリビュートに挿すしかなさそう?
stringのカスタムアトリビュート追加して取得することはできるので、テクスチャの名前突っ込んで同階層のTexturesディレクトリから探して使う、みたいなのはできそうだけどウーン
じゃあMayaもカスタムShaderでやったらどうかということで、HLSLShaderで試してみたらちゃんとtextureとして定義したアトリビュートがすべてTexturePropertyDescriptionとして取得できました
ナルホドー
#Unity #Maya