toioとボトルマンと 3Dプリンターの可能性

ボトルキャップを発射するボトルマンと、toioを組み合わせたら様々な遊びが出来そう…とふと思いました…
そこで「toio SDK for Unity」でアプリケーションを作ってみました。

また 3Dプリンターでいくつか作ってみたら、またそれはそれで新しい遊びになりそうでした。
自分で作って遊んでみたら、思いのほか楽しかったです。

今回の話はそういう話です。

#作っているもの
まずは、今回作ったものを紹介したいと思います。
<a href="https://www.youtube.com/watch?v=6-_7qRjgNuc" target="_blank">
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35544/871d0a13-86db-5911-ffbd-c2742dd29c34.png)
※Youtube動画へのリンク
</a>

このような感じで動くターゲットを当てるゲームを作りました。
こちらは toio SDK for Unityを利用して作成しています。

#開発に至る経緯

ボトルマンの発表にあった Nintendo Switch連動を見たときに、「あれ、これtoioでも行けるんじゃないか…？」と思いました。
https://www.youtube.com/watch?v=EJXm3XksFQs

そこで初めに、「ボトルキャップをtoio本体に当てたときに反応するか？」という事、キャップを当てた時にインタラクションするのが楽しいか？という事を検証するためのプロジェクトを、toio SDK for Unityのサンプルを少し弄って下記のようなものを作りました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">toio+ペットボトルのキャップ！<br>発射するボトルマンがあれば、<br>新しい遊びできそうな予感！ <a href="https://t.co/fhk6jb5fgR">pic.twitter.com/fhk6jb5fgR</a></p>&mdash; 黒河優介(YusukeKurokawa) (@wotakuro) <a href="https://twitter.com/wotakuro/status/1318501787700088832?ref_src=twsrc%5Etfw">October 20, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

この時はボトルマン未発売だったので手でキャップを弾いています。
これで手ごたえを確認出来ましたので、この後もやっていこうという所になりました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%83%9C%E3%83%88%E3%83%AB%E3%83%9E%E3%83%B3?src=hash&amp;ref_src=twsrc%5Etfw">#ボトルマン</a> × <a href="https://twitter.com/hashtag/toio?src=hash&amp;ref_src=twsrc%5Etfw">#toio</a> 楽しいですなー。<br>動く的当てゲームですなー<br><br>toioは、手元のiPadから適当に自動で動くようにしていますよ。 <a href="https://t.co/msYRva5Vle">pic.twitter.com/msYRva5Vle</a></p>&mdash; 黒河優介(YusukeKurokawa) (@wotakuro) <a href="https://twitter.com/wotakuro/status/1322519097612009472?ref_src=twsrc%5Etfw">October 31, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

そして toioを手動制御ではなく、自動制御に切り替えました。元々は「一人がtoioを操作して、もう一人がボトルマンで撃つ」という遊びを想定していたのですが…。遊んでくれるオトモダチがいないという重大な問題に気付いたので、自動制御を実装する事となりました。
動きはとても単純で、一定距離進む→その場で回転するを繰り返しているだけです。

とても単純な動きで、動きも予測可能なのですが…、そこが逆に遊びとしてよいものでした。

そんな感じでtoio側の動きは作れたのですが…
アプリ画面側が、時間とヒット数を表示するだけの単純なものでした…

当時は、アプリ側はこのような画面でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35544/278fcd67-7919-a6c2-1ca2-3d4c44eb3f26.png)

これでは何か物寂しさを感じます。

なので、この画面中にtoioを出したらどうか？
幸いにもtoio SDK for Unityにはtoioの3Dモデルデータが同梱されていたので、それを出すことにしました。

画面中のtoioも現実のtoioと同じ動きをしたら面白いはず…という事で作っていったのが下記です。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%83%9C%E3%83%88%E3%83%AB%E3%83%9E%E3%83%B3?src=hash&amp;ref_src=twsrc%5Etfw">#ボトルマン</a> と <a href="https://twitter.com/hashtag/toio?src=hash&amp;ref_src=twsrc%5Etfw">#toio</a> を組み合わせたら面白い遊びになりました。<br>専用のアプリを <a href="https://twitter.com/hashtag/Unity?src=hash&amp;ref_src=twsrc%5Etfw">#Unity</a> で作成しています。<br>toio SDK for Unityを利用して、自動で的のtoioが動くようにプログラミングしています。<br><br>↓Youtubeにも動画あげました。<a href="https://t.co/SpKqpJAkhV">https://t.co/SpKqpJAkhV</a> <a href="https://t.co/XqCWQ8LZyE">pic.twitter.com/XqCWQ8LZyE</a></p>&mdash; 黒河優介(YusukeKurokawa) (@wotakuro) <a href="https://twitter.com/wotakuro/status/1330674242946433025?ref_src=twsrc%5Etfw">November 23, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

現実と連動する動きになって、イイ感じになったと思います。

実は、地味に苦労した点としては toio SDKではUnityEditor上で実行したシミュレーションモード中ではtoioのモデルが画面に出るのですが、実機でビルドした時はtoioのモデルが出なくなっていました。
仕方ないので、シミュレーターのロジックをコピーして同じように動作するように調整しました。
ココが地味に苦労しました。

そんなこんなで一旦形にはなったかなぁと思います。


#toioと3Dプリンターとの相性の良さ
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">こんな感じでボトルマンのターゲット用toio号が出来ました。<br>ボトルキャップも付けられるようになっています。<br>ボム感あるよね…？<a href="https://t.co/5ZYznhFi8p">https://t.co/5ZYznhFi8p</a><br>あと、stlファイルはココにアップしました。 <a href="https://t.co/9kqhBL520N">pic.twitter.com/9kqhBL520N</a></p>&mdash; 黒河優介(YusukeKurokawa) (@wotakuro) <a href="https://twitter.com/wotakuro/status/1336291200127488002?ref_src=twsrc%5Etfw">December 8, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

toioの形がプリミティブなので、3Dプリンターで造形物を乗っけるとかでも楽しめますね。
ゲームの動画撮ったのちにコチラを作ったのですが…。これは的当てしている感じがより一層出てよいですよね。

# また、造形物だけでも遊びを作れそうです
他にもプログラミングをしないでも、3D造形物だけでも toio + ボトルマンで面白いことが出来ます。 
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%83%9C%E3%83%88%E3%83%AB%E3%83%9E%E3%83%B3?src=hash&amp;ref_src=twsrc%5Etfw">#ボトルマン</a> と <a href="https://twitter.com/hashtag/toio?src=hash&amp;ref_src=twsrc%5Etfw">#toio</a> でゴールキーパーつきのPK戦楽しんでみました。<br>今回はプログラミングせず、アプリを作らないで、家にあるもの＋３Dプリンターで遊んでいました。<br><br>実は3Dプリンターを使わなくてもよかったしました…<br>その辺は動画で…<a href="https://t.co/20mU7vJwyl">https://t.co/20mU7vJwyl</a> <a href="https://t.co/NYIKU7B5Fh">pic.twitter.com/NYIKU7B5Fh</a></p>&mdash; 黒河優介(YusukeKurokawa) (@wotakuro) <a href="https://twitter.com/wotakuro/status/1335022472463151104?ref_src=twsrc%5Etfw">December 5, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

敢えて前後にしか動かないようにしています。これで、ボトルキャップで弾かれて軌道・向きが変わってしまう事を防いでいます。
また、前後に動くだけなので、ビジュアルプログラミングで簡単な動きを作って、それで自動化するとかも楽しそうですね。




こんな感じで動きのあるトイオとボトルキャップを射出するボトルマンは相性が良さそうです。

#今後

いくつかの遊びを一つのアプリで遊べるようにしていきたいかなぁと思っています。
また、toioの特徴である絶対座標を生かしていないので、その辺もチョット使っていきたいと思っています。

実は、こんな感じでルールを考えてたりもします。

・ターゲットバグ
昔あったおもちゃをデジタルで再現も出来そうだったりしそうで、これも面白そうだなぁって思っています。
https://www.youtube.com/watch?v=fMQb6sSQxsk
動画中では暴れまわって、机から落ちちゃったりしていますが、toioのマットも利用して、絶対位置を取得できれば、マットから落ちない範囲でのみ動き回るとかも出来そうですね。

・アクションターゲット
あとは、ベタですがクレー射撃とかもtoioで出来そうですね。
https://youtu.be/ezj8gW0Exq0?t=841
これもtoioのマットを利用すれば、定位置に戻る動きを自動で行えるようになったりとかいろいろと出来そうだなぁって思っています。

他にもいろいろと出来そう…
そう思いながら toio+ボトルマン色々出来そうだなぁって思ってやっています。

一応公開リポジトリでやっているので、興味ある人はココのを落として手元で動かしてみて下さい。
https://github.com/wotakuro/toio_and_bm_project

それでは。