マテリアルのプロパティがアニメーションで制御できない場合がある

高橋 啓治郎 -

(下記の内容は執筆時点での状況を記したものであり、既に修正されている可能性もあります。)

Unity 5 においてマテリアルのプロパティをアニメーションで制御しようとすると、これに失敗することがあります。この現象は下記のような条件において発生します。

  • Fixed function shader を用いている。
  • そのシェーダーのプロパティをアニメーションで制御している。

この現象が発生すると、Unity Editor 上ではマテリアルのプロパティが更新されているものの、その変化がシェーダーにまで伝わらない、という状態になります。

この問題を回避する最も確実な方法は、fixed function shader の使用を止め、通常の programmable shader へと実装を切り替えることです。

例えば、Unity に付属の Mobile/Particles/Additive シェーダーは fixed function shader として実装されているため上の現象を伴いますが、下記のように programmable shader として実装し直せば問題を回避できます。

https://gist.github.com/keijiro/b91fd4c1a711a0fd3295

もし、どうしても使いたいシェーダーがあるが programmable shader への書き換え方が分からない、という場合は、その旨リクエストとして送信してください。

他にご質問がございましたら、リクエストを送信してください

0 コメント

ログインしてコメントを残してください。
Powered by Zendesk