こんにちは。灼熱亭火焔と申します。
新人ライター。燃え上がるような熱い魂を持っている。
しかしパーティーゲームなどでも熱くなりすぎてしまうため、友人たちには少し距離を置かれている。
皆さん凍えるような寒さの中、いかがお過ごしでしょうか。
燃えるような魂を持つ僕でもこの寒さは耐えがたく、半年前と半年後の夏のことを想いながらなんとか耐え忍んでいます。
そんな夏ですが、実は僕には大変心残りなことがあります。それは、
昨年の夏は247回ほどスイカ割りの機会があったのですが、僕が振る棒は全て空を切るばかり……。時には逆に、僕がスイカに割られてしまうこともありました。
なんでこんなにもスイカを割ることができなかったのか……。
8月31日に昨年最後のスイカ割りに失敗した僕は考えました。そして、その原因は「友人たちとスイカの位置を教えてくれるような信頼関係を築けなかったこと」だったのではないかという考えに至りました。
思えば僕は虚栄心から、友人たちに見栄を張って嘘をつき続けていました。ちょっとした雑談の中でしょうもない嘘をつき続け、僕は7歳でTOEIC999点を達成して年収が4000万あり、全てのEU加盟国に別荘があるということになっています。
こんな人間にはスイカの位置すら教えたくはならないでしょう。
これからは自分から友人たちに心を開いて話して、嘘をつかないでも付き合い続けられるよう頑張ればいいのよ!
スイカなんて包丁で切って一人で食えばいいじゃねぇか!分け与える必要すらねぇぜ!
スイカ割りをアシストしてくれる機械を作ろう
今回は心の中の古代の機械巨人《アンティーク・ギア・ゴーレム》の意見を採用し、人間を信用しない人でもスイカ割りを楽しめる機械を作ってみます。
今回使うのはこちら!
RealSense D435
これは通常のWebカメラのように映像を撮影しつつ、カメラからの「距離」も測れるデバイス。このような感じで、カメラから近くにあるものは青く、遠くにあるものは赤く表示することができます。
▲筆者の部屋もこの通り
Unity(バージョン 2021.3.9f1)
ゲーム開発のためのツール。ゲーム制作だけではなく、便利なアプリや映像制作にも使われる。ちなみに限界しりとりや人狼将棋もUnityで作られています。
太めの木刀
それは棒と言うには、あまりに大きすぎた。 大きく、ぶ厚く、重く、そして大雑把すぎた。
この3つを使用して、1人用スイカ割りを開発していきましょう!
まず、UnityにRealSenseから送られてくる映像(右:以下RGBカメラ)と、距離のデータ(左:以下Depthカメラ)を読み込みます。
まだ作業中なので、スイカの代わりに愛らしいクッションで代用しました。
今回は後の作業がしやすくなるよう、Depthカメラから近い位置にあるものほど黒に近い色、遠い位置にあるものほど白に近い色に表示に表示するよう設定しています。
RGBカメラが映している範囲から、スイカの緑色に近い部分を探します。今は開発中なので、クッションの色の赤に合わせます。
条件に一致した部分の上下左右の端の点から、「おそらくスイカの中心であろう」という位置を探し出します。
その位置が中心のエリアから左にずれている場合は「左!」、右にずれている場合は「右!」と声がかけられます。
そして中心だった場合、今度はDepthカメラが映すスイカの色を頼りに、前後の位置を合わせます。
事前にちょうどいい距離だったら何色なのかを確認しておき、その色が示す距離より近いようなら「後ろ!」遠いなら「前!」と声をかけてくれます。そして完璧であれば「そこだ!」と言ってくれるので、自信をもって木刀を振り下ろしましょう!
今回はよりやる気を出すため、声のタイプも用意してみました。
《もう一人の人格 ver》
勝手に消えてしまいました。俺一人にしないでくれ……。
《スイカ ver》
割るのを躊躇してしまいましたが、結局すべて教えてくれましたね。
実践
さあ、いよいよ実際にスイカを割ってみましょう!
まずRealSenseをこのようにサングラスに固定します。
そして、そのサングラスをかけます。
RealSense越しの画面にはこのように映っています。
目的の色を検知すると、右側の画面上に表示されている赤いカーソルがそれを追尾します。
そして左側の白黒画面上で、そのカーソルと同じ位置に当たる場所がどれくらいの灰色か(どのくらい奥にあるのか)を検知します。
そしてスイカをターゲットに設定しようとしたのですが、どうもスイカの緑色は黒色にデータ的に近いようで、検知するのがうまくきません……。
なので上に柿をくっつけ、オレンジ色をターゲットにすることにして解決しました。
一石二鳥ですね。
そうしたら画面上で、RGBカメラが示す柿の色と、Depthカメラが示す柿との距離の色(灰色)はどのくらいがちょうどいいのかをセットします。
これでRealSenseにとって「正しい方向、正しい距離」がわかるようになりました!
そしたらグルグル回って方向をわからなくし……。
行きます。
割れた!!!!
完璧な感触と、鼻に食い込んだRealSenseサングラスの痛さで笑みがこぼれます。
:
:
:
:
:
:
:
:
スイカ割りをするときは、友達に見てもらって、周囲に気を付けてプレイしましょうね。