2019年11月9日土曜日

【Kinect_V2】Kinect V2とUnityを使った、人物を切り抜いた状態のカラー付き3D点群表示


以前から取り組んでいた、KinectとUnityを使った点群を表示させるところまで来ました。

ここに至るまでにパーティクルで表示させる方法なども試みましたが、うまく表示までたどりつかず、その他の情報も数がそれほど多くないので時間がかかりましたが、
結論から言うと、やり方はほぼこちらのサイトを参考にしました↓


Unity初心者にとって少々つまづくところもあったので、補足部分をまとめました。

<使用環境>

OS:Windows10
GPU:Geforce RTX2060
Unity:Version 2018.4

Step.1 Unityの起動


Unityの新規プロジェクトを開き、お約束通り、Kinect.2.0.1410.19000.unitypackageのAssetへのインポートを行います。そうすると上の画面のようになります。

Step.2 空のGameObjectの作成


HierarchyビューでCreate→Create Emptyを選択し、空のGameObjectを作成します。
そのあと、できたGameObjectを選択した状態でInspectorビューのAdd Componentをクリックし、New Scriptを選択しCreate and Addボタンを押すと、スクリプトファイルがアタッチされます。名前はKinectViewとしました。すると上の画像のようになります。

Step.3 csファイルの編集

AssetビューにあるKinectView.csをダブルクリックして、Visual Studioを起動させます。
立ち上がったエディター画面上で、冒頭のサイト内にある「Kinect実装」項のGitHubリンクを開き、KinectView.csをコピペし保存します。

 
 

Step.4 シェーダーの作成


UnityのProjectビューでCreate→Shader→Unlit Shaderとたどり、シェーダーファイルを作成します。名前はKinectViewとしました。
できたシェーダーファイルをダブルクリックしてVisual Studioを開き、冒頭の参考サイト内のGithub内にあるKinectView.shaderをコピペして保存します。

Step.5 マテリアルの作成


ProjectビューのKinectView.shaderを選択した状態で右クリックし、Create→Materialを選択するとMaterialデータがProjectビューに作成されます。

Step.6 マテリアルのアサイン


HierarchyビューのGameObjectを選択した状態でInspectorビューのMeshRendererの項目にあるMaterialsの下矢印をクリックすると、Element 0 の欄がNoneになっているので、この状態でStep.5で作成した、Projectビューにあるマテリアルデータをドラッグ&ドロップします。

次に、Kinect View(Script)内のShader欄が同じくNoneになっているので、Step.4で作成したProjectビューにあるKinectView.shaderをドラッグ&ドロップします。

Step.7 最後の設定


ProjectビューのKinectView.csを触るとInspectorビューのShader欄がNoneになっているので、同じくStep.4で作成したKinectView.shaderをドラッグ&ドロップします。

以上で設定が完了です。
再生ボタンを押すと、人物で切り抜いた状態の点群が表示されます。

メッシュの頂点の大きさを変える変数がSizeで用意されていますが、数値を変えても反映されない状態ですね。今後はメッシュ頂点の大きさをもっと大きくして密度を濃くする方法を検討していきます。

**追記
点群の大きさを変更するには、Unity自身をOpenGLモードで起動すると、サイズ変更が可能になります。

0 件のコメント:

コメントを投稿

【Grasshopper_98】SporphとSurface Morphingの特徴、違いなどについて

今年もまたGWに突入しましたね。コロナ明けに円安、インバウンド特需のおかげで東京から郊外に出かけると例年以上に混雑に巻き込まれそうなので、昨年と同様、連休中は家に籠ってブログを更新します。今回のテーマは、Surface MorphingとSporphの違いについてまとめてみました。