UnicessingとIntelRealSenseを使ってみた

今までも、Processingで書かれた作品ってかっこいいなーと思っていたところ、Unicessingを見つけたため触ってみました。合わせてRealSenceの音声認識も使ってみました。

今回つくったもの

f:id:c_taquna:20180418000112g:plain

上の動画のように、Unicessingで球体を並べて、RealSenseで音声認識した【ひらがな】に該当する球体を光らせてます。単純に右からあ・か・さ~と並べてます。今回は「はらへった」と「おなかすいた」で認識させています。(小さい"っ"は認識しない仕様です!)

使っているもの

  • Unicessing
  • IntelRealSense
  • Unity 2017.3.1f1 (64-bit)

コード

github.com

Unicessing で書いた処理

Unicessingでは、以下の処理を書きました。

  • 球体を並べる処理
  • 球体にMaterialを追加する処理

球体を並べる処理は、サンプルを参考にfor文をネストしてsphere()で作っていたのですが、こうするとMaterialをつけることができなさそうだったので,、createSphere()を使用してインスタンスを作成し、loadShaderでMaterialをロードして、shader()でMaterialをAddする方針に変更。

RealSense で書いた処理

RealSenseのコードは下記の記事にかいてあるのをほぼパクってます。インストール含め下記の記事みれば簡単に使用できるようになるので参照してみてください。
qiita.com

それ以外の処理

それ以外に書いた処理としては、ひらがなを認識してそのひらがなに該当する球体を選択する処理を書きました。

判定の方法としては、二次元配列でひらがな1文字と座標(今回だと球体は右から x = 0,1,2....、上からz = 0,1,2....となっています。このx,zを座標とよんでいます)の情報をもたせ、それをあ~んまで作成します。

ひらがなの入力をうけとると、毎フレーム球体が描画されている中で1球体が描画されるたび、入力された日本語に該当する球体なのかを判定していきます。もし該当するひらがながあった場合は、その球体にEmissionをonにしたMaterialをAddします。

文字にするとわかりにくいので、ソースコードを見てもらったほうがよいかと。もっと良い書き方があったら教えてほしいです。

感想

作り始めるときは、これ作ってなんか意味あんのか?ぐらいだったのですが、やはり始めると楽しいですね。VRとかおしゃれなアセットと合わせてなにかできないかなーと思っています。

参考にしたサイト

一番最後に書いていいものなのかとも思いますが。
eyln.hatenablog.com