初めまして。初投稿なので勝手が分からないのですがお手柔らかにお願いします。
MS公式の、Kinect v2をUnityで動かすパッケージ、Unity Pro packagesの
背景除去サンプルが動かない!って詰んだので記録。
Kinect v2をUnity5でとりあえず動かす(カラー画像、骨格画像を描画する)までは、
こちらの中村薫さんの記事を参考にしました。
http://www.buildinsider.net/small/bookkinectv2/0601
http://www.buildinsider.net/small/bookkinectv2/0603
http://www.buildinsider.net/small/bookkinectv2/0635
Unity Pro packagesをダウンロードしてZipを解凍。
Unityパッケージ"Kinect.2.0.1410.19000.unitypackage"をインポート。続いて、
GreenScreenフォルダをUnityのProjectビューにコピーします。
API変更の自動更新をするダイアログが表示されたら、「I Made a Backup. Go Ahead!」をクリックします。
Kinect v2が接続されていることを確認したら、GreenScreenフォルダにある「MainScene」を開いて実行。
すると、人物を切り抜いて画面に表示してくれるはず…なのですが……
何も起こらない!
エラーはなく一応実行はできるのですが、マゼンダ色の画面しか表示されず……
よく見るとシェーダーでエラーが発生しています。
GreenScreen > Materials > GreenScreenShader
Fragment program 'frag': sampler 'SampleType' has no matching texture and will be undefined.
テクスチャが一致しない?持っていない?(読めない)
色々調べてみたら
どうやら仕様が変更されたというか、記述の仕方が変わったようです…
「GreenScreenShader.shader」を修正しましょう。
13行目の Texture2D _MainTex;
を
UNITY_DECLARE_TEX2D(_MainTex);
に変更。
57~58行目あたりの
o = _MainTex.Sample(SampleType, i.tex);
を
o = UNITY_SAMPLE_TEX2D(_MainTex, i.tex);
に変更。
そうしてUnityに戻るとマゼンダだった板が黄緑になります。
エラーも消えてくれましたね!
これで実行すれば正しく動くはずです。
素敵なKinect v2ライフを~♪
……MSさん、修正して配布してください…!