[Touchdesigner初級者向け] Bullet Solverで物理計算するのだ！feat.Rigidbodyには負けない

#結局重力！
What'up everybody guys!
ども、Touchdesigner学部のmiwa_maroonでｓ

**皆さん、Touchdesignerについてこう思っていませんか？**

Touchってジェネ系得意だから、**重力使った物理計算とかできないんでしょ？**
衝突判定なんてね、うん、できるわけないよね？

そう思っているあなた、これを見ていただきたい！
![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/d2cead72-cbd1-33d3-0569-b991703e2111.gif)


ね、言ったでしょ、
###結局重力！

ということで今回はこれを作っていきます
#Bullet Solver COMP編
今回も**youtube**にて説明しているので、まずはこちらから見ていただきたい！下画像クリックで見れます
[![bulletsolver_thunmbnail.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/8640f8d2-e4bf-9c15-c675-6dd49d146252.jpeg)](https://youtu.be/1kDCUhx7uUg)



**0から作っている**ので、理解しやすいかな～と思っているでござるよ
(あ、こいつ絶対最近るろ剣見たな)

動画の中でも解説していますが、**Touchdesignerで重力系の物理シュミレーションを可能にする**

**Bullet Solver COMP**を使います！
もしかしたら全く聞いたこともないなんて人も多いかも、、、
大丈夫心配しないで!
`Bullet Solver COMP`を置いて`start` buttonをクリックですぐに確認できます
![bulletsolver_start.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/06a07568-6f6e-1216-f7fd-4258ab64a721.jpeg)


#Actorってなあに？
それでは`Bullet Solver COMP`にダイブイン！
すると**Actor COMP**が置かれている
![bulletsolver_actor_two.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/521a14a6-11d7-10a4-50f8-316ac8a64344.jpeg)

また、知らんの出てきて意味わからんと思いますが、

**ここは大事！！**

物理シュミレーションをやるうえでは、
すべて`Bullet Solver COMP`という世界の中で
すべての物が`Actor`になります
地球で例えると、
重力がある地球そのものが`Bullet Solver COMP`という世界で

木から落ちるりんごや人、机、ボールなどすべてのものが`Actor`ということになります。

Touchdesignerの中では`Actor COMP`の中に`Sphere SOP`や`Box SOP`を入れて物理シュミレーションを行っていきます

#動くActor!動かないActor!
物理シュミレーションをするうえでパフォーマンスを上げるために事前処理というものをします！
それが、
あらかじめ、**動くActor**と**動かないActor**を決める！
ということでｓ
今回のチュートリアルで言うならば
ボールは重力に沿って動いていますよね？
ということで、**動くActor**
通称:`Dynamic Actor`
(なんだかかっこいい)
![bulletsolver_dynamic.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/005d674f-e5e9-9dbc-7c25-6cc54d7602bb.jpeg)

網のかごは**動いていないActor**
通称:`Static Actor`
![bulletsolver_static.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/09c2eaac-f869-fd09-74ad-de8589eb2bdc.jpeg)


#衝突の形
`Actor`の衝突の形を正しく設定しなければ、今回のかごのような形の衝突を行うことができません
`Actor COMP` -> `Collision shape` から設定可能で
たくさん種類ありますが、今回は以下の二つだけ覚えれば大丈夫です！
###・concave(static only)
今回のかごでも使っているような**凹面**の場合に使います(動画では凸面といってるかもですが正しくは**凹面**)
要はへこんでいる形ですね
そしてこちらは`Static` 動かないものだけに使えます
![bulletsolver_concave.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/10fac2c4-144c-9f45-549c-276ec575fc09.jpeg)


###・convex hull
基本の**凸面**の形
ボールや箱なんかで使えます
![bulletsolver_dynamic.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/b452fdb9-78df-e147-18d8-329876b9b700.jpeg)


ちなみ同じ形でも、これを変えるだけで衝突方法変わってきます
`concave`の時
![bulletsolver_concave.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/85a96469-9f38-fe65-fc57-23a1d5c2a196.jpeg)

`convex`の時
![bulletsolver_convex.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/f6d7c3de-4e3f-6363-5123-b3adc650ba73.jpeg)


正直ここら辺最初に、わけないといけないの結構めんどくさいなって思います。皆さんどうです？
よゆーって人は、空前絶後の超絶怒涛のBullet Solverを愛し、Bullet Solverに愛された
Bullet solver池崎ですね

#Actorの複製
ボールが何個か生成されています
これは`replicator COMP`と`timer CHOP`で動的に増やしています。
ボールごとに生成場所を変えていますが、詳しくは動画でご覧あれ
![bulletsolver_replicator.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/34e1be98-58b8-57bc-5441-d83e62524b9f.jpeg)


#衝突物の数
かごにいくつボールが入ってるか知りたいってことあるよね？
ここで使っているのが`Bullet Solver CHOP`です
![bulletsolver_bulletsolverchop.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/610e7c20-464c-26ec-306f-f20e127688a9.jpeg)
**CHOPもあるんかい！**という声が聞こえてきそうですが、
これもすごい便利なので、ぜひ動画をみて使ってみてください


#私の作例
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">オンラインで指示してゲームするのって割と新しくないですか？結構シュールでおもろい<a href="https://twitter.com/hashtag/touchdesigner?src=hash&amp;ref_src=twsrc%5Etfw">#touchdesigner</a> <a href="https://twitter.com/hashtag/zoom?src=hash&amp;ref_src=twsrc%5Etfw">#zoom</a> <a href="https://t.co/HKG6rbgmeV">pic.twitter.com/HKG6rbgmeV</a></p>&mdash; miwa_maroon (@miwata34) <a href="https://twitter.com/miwata34/status/1377926141239943169?ref_src=twsrc%5Etfw">April 2, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

zoomから指示できるオンラインイベントです！
zoomから指示できるのが面白いのとzoomで数人が同時にしゃべれる状況を作ることが可能になりました！

。。。
勘の良いひとはもうお気づきかもしれません
そう、`Static only`の`concave`のかごが動いているじゃないか！！
むふふ

ということで、ジェネラティブ系だけでなく、touchdesignerで重力を行使していくのに、注力しませんか？