Godot用のKinect v2のアドオン的なのを作った話

f:id:nozomi_hiragi:20200412071007p:plain

こんちゃす

Unityへのヘイト限度を超えてブチギレたのぞみんです

 

よく人間への印象で、”生理的に無理”って言葉あるじゃないすか

あれなんですよね

どんだけいい人間だろうと受け付けないみたいな

ほんとUnity無理なんですよね

 

そんなこんなで、脱Unityをしたくて、過去につくったこんな物をGodotでリメイクしようかと思い立って始めたのが今回のおはなしです。

前置きが長いので、Kinectの下りだけ見たい人はGitHubのコードだけ見てってください

大したことは書いてないですが

 

youtu.be

この記事を書く時に久々にこれを見て、大爆笑して恥ずかしい気持ちになりました

初々しいですね

最近の動画は多少マシになったかな

 

これをご存知の方は古参すぎてヤバいんですけど、VTuberブームに乗ろうとして僕が作ったVTuberシステムです

まだViveを持っていない頃、Kinectだけはあったのでトキカネと思ってジャっと作ったものです

動画内で言ってる通りUnityとKinectを使って、バーチャルのキャラクターを動かしつつ、一定の深度を超えた体だけリアルを表示する といったシステムです

このアイデア天才だなとか思ったんですが、まぁお察しって感じです

 

VTuberを名乗ることで極限にめんどくさい事になった過去があるので、今後はVTuberをできるだけ名乗らないように生きようと思いつつ、このシステムが忘れられないので

このシステムをリメイクしようとしたところ

 

KinectをGodotで使う方法が見つからない、Unityのアドオン動かせない、Godot MonoのC#でKinectSDKのC#のコード動かない

 

これ結構絶望したんですけど、GDNativeに入門しようと思ってたし、C++久々に書きたいし、下手に探し回るより作ったほうが早いと思ってので、今回作りました

 

Kinect v2 for Godot

とりあえずコードを置いときます

github.com

いつもだとプライベートリポジトリでひっそり作って個人で完結させるんですけど、

Godot界隈が盛り上がったらUnityの露出下がるかなという淡い期待を込めて公開された場に起きました

コードだけ見たい人はここまでで読んでいただきありがとうございました行ってらっしゃい

 

こちらの作り方は、基本的いつも通りチュートリアルサイトのGDNativeの記事をみて進めました

あど実コード見たほうがやりやすい派の人なので、GodotのOpenVRアドオンのコードも参考にしました

このコードは前に書いたVR Overlayの際に読み込んでたので参考にしやすかった為

docs.godotengine.org

github.com

この日本語ドキュメント、誤字脱字とかリンク貼れてないとか説明謎とかあって、英語版と一緒にみたほうが良いなって思いました

日本語修正のあれとか出してみたいけど、なかなか実行に移せない系

VRの方のコードは実ビルドしないで、GDNativeのチュートリアルから派生して作っていきましたけど、プロジェクトの階層とかSConsとか参考にしました

 

コミット数も少ないので、多分追ってけば普通に作れると思いますが、普通にKinect v2 SDK入れて、C++でコード書いて、GodotのDemoプロジェクトで動作確認していってって普通に普通です

昔DirectX11とKinectをつかってなんか作ってたし、KinectSDKの参考本買ってたし、RtVのコードもあったし、コードの感じは掴んでたので、そこまでハードではなかったイメージ

コード設計?とか好きだけどわかんないマンなのでガバかもしれないけど最終的には個人的にいい感じにまとまった気がする

Kinectは言ってしまえばカメラなので、画像処理をさせなきゃいけなくて、パフォーマンスやばたにえんって感じでした

GDScriptで処理なんてさせた日にはfps1桁みたいな

その都合でバラバラだったモジュールを1個にまとめて一括更新みたいにしました

こういう時のパフォーマンスの出し方わかんないな

ライブラリ入れて依存増やすの好きじゃないので、このコードは多分普通のWindows開発環境とKinectSDKだけあればビルドできると思います

 

コードの解説をしようかと思ってたけど、Godotってマイナーなエンジンに加え、

今となっては旧世代のKivect v2(生産終わってた気がしたしAzureのあるし)なので需要がマイナス行ってるまであるのでやめることにしました

解説するような内容も無いし

いつもどおりコードとかそれに準ずる内容で答えられる範囲は答えるので気になる人きいてください

 

さて、Kinectが動くようになったけど、RtVのリメイク欲が落ち着いてしまったので

たぶんこいつは寝かせますたぶん

また欲が帰ってきた時に、RtV Gate Version Godotができたらまた日記書きにきます

 

今回貼った過去動画恥ずかしい気持ちあるけど、内容は面白すぎてる

動画は愛を持って作るもんだぜって話をしたかった