Help us understand the problem. What is going on with this article?

Unity Pro packagesの背景除去サンプル"GreenScreen"をUnity5以降で実行したい

More than 3 years have passed since last update.

初めまして。初投稿なので勝手が分からないのですがお手柔らかにお願いします。

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
image

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に戻るとマゼンダだった板が黄緑になります。
image
エラーも消えてくれましたね!
これで実行すれば正しく動くはずです。
素敵なKinect v2ライフを~♪

……MSさん、修正して配布してください…!

Sil-Nyan
ロリータファッションとか着てるSEっぽいひとです。
http://runequartz.dou-jin.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away