Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Kinect の点群を軽率にVFX Graphで表示する

Azure Kinect の点群を軽率にVFX Graphで表示する

社内の勉強会発表したLT資料です

にー兄さん

June 18, 2020
Tweet

More Decks by にー兄さん

Other Decks in Technology

Transcript

  1. Azure Kinect の点群を軽率に
    VFX Graphで表示する
    にー兄さん@Unity 2019.4リリースノート読む会

    View full-size slide

  2. agenda
    背景とか
    VFX Graphについて
    AzureKinectとVFX Graph
    おわりに

    View full-size slide

  3. スライドって公開しちゃって大丈夫ですかね...?
    (大丈夫だったらSpeakerDeckに上げます)

    View full-size slide

  4. 背景とか

    View full-size slide

  5. Twitterを見ていればわかるのですが
    8~9割の人類はすでに
    点群を扱ったプログラムを書いている

    View full-size slide

  6. Twitterを見ていればわかるのですが
    8~9割の人類はすでに
    点群を扱ったプログラムを書いている

    View full-size slide

  7. Twitterを見ていればわかるのですが
    8~9割の人類はすでに
    点群を扱ったプログラムを書いている
    →やるか...。

    View full-size slide

  8. なんとなく点群に憧れがあった
    もともとKinectを使ったモーションキャプ
    チャを制作していた
    Body Trackingしか使ったことない...
    せっかくk4aをお借りできたので
    やるか→シェーダ書けない...

    View full-size slide

  9. VFX Graphについて

    View full-size slide

  10. 2019.4のPVでも取り上げられた
    2018.4でも使えた機能ではある
    リリースノートの見ると
    ”ノード”が新しく追加されてたり
    (後述)

    View full-size slide

  11. Unityの新しいパーティクルシステム
    名称 特徴 制約
    従来 shuriken CPUパーティクル、設定画面が煩雑 特になし
    最新 VFX Graph GPUパーティクル、ノードベース SRP推奨
    SRPによって大幅に改良されたパーティクルシステムという感じ
    操作性、表現力、性能、が強化されている

    View full-size slide

  12. VFX Graphの概観
    パーティクルの挙動をノードで管理

    View full-size slide

  13. VFX Graphの概観
    Spawn→Initialize→Update→Outputコンテキストノードで構成される

    View full-size slide

  14. VFX Graphの概観
    Operatorノードをつなぐことで複雑な挙動を定義

    View full-size slide

  15. VFX Graphの概観
    Property Binderによって外部の値を読み込む

    View full-size slide

  16. VFX Graphの概観
    Updateでイベントを発火
    →ほかのGraphに通知
    →別のパーティクルをSpawn
    trail(軌跡)のような表現が可能に

    View full-size slide

  17. AzureKinectとVFX Graph

    View full-size slide

  18. 参考にした記事(ほぼそのまま)
    yoshinagaさんの
    『C#で始めるAzure Kinect開発⑥:Unity+C#でPoint Cloud表示』
    https://tks-yoshinaga.hatenablog.com/entry/azurekinect-6
    maoさんの
    『Face Tracking with ARKit + Visual Effect Graph(VFX Graph)で遊んでみる』
    https://qiita.com/mao_/items/0fffc84b2b16cf680f80

    View full-size slide

  19. 手順
    AzureKinectで
    点群を取得
    depthを
    AttributeMap
    に変換
    VFXでMapを
    読み込み

    View full-size slide

  20. 手順
    AzureKinectで
    点群を取得
    depthを
    AttributeMap
    に変換
    VFXでMapを
    読み込み
    C#スクリプト C#スクリプト
    +ComputeShader VFX Graph

    View full-size slide

  21. depth情報の取得
    記事の通りにコードを書いていく
    今回は色情報はいらないので深度情報だけ取得

    View full-size slide

  22. depthをComputeShaderに渡す
    depth情報をbufferに載せて
    ComputeShaderに渡す

    View full-size slide

  23. AttributeMap
    VFXは配列での受け渡しをサポートし
    ていない
    点群の情報をMapとして渡す

    View full-size slide

  24. VFX Graphに読み込む
    PositionをMapとして読み込む

    View full-size slide

  25. おわりに

    View full-size slide

  26. まとめ
    VFX Graphを使えば、簡単にエフェクトが作れる
    Mapを使えば点群を扱うこともできる
    今後の動向に期待!

    View full-size slide

  27. 参考
    yoshinagaさんの
    『C#で始めるAzure Kinect開発⑥:Unity+C#でPoint Cloud表示』
    https://tks-yoshinaga.hatenablog.com/entry/azurekinect-6
    maoさんの
    『Face Tracking with ARKit + Visual Effect Graph(VFX Graph)で遊んでみる』
    https://qiita.com/mao_/items/0fffc84b2b16cf680f80
    keijiro先生のサンプル
    https://github.com/keijiro/Smrvfx

    View full-size slide