LoginSignup
8
8

More than 5 years have passed since last update.

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

Posted at

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

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さん、修正して配布してください…!

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8