【Houdini】 TOPからDiscordにメッセージや動画を送信する！ 【HDA配布】

こちらは、[ Houdini Advent Calender 2023 ](https://qiita.com/advent-calendar/2023/houdini) の18日目の記事になります。

# TOPからDiscordにメッセージや動画を送信する！
Houdini作業してるとき、「このシミュレーションいつ終わるんだろうなー...」とか「出先でもシミュレーション結果が見たい…」と思ったことはありませんか？
今回ご紹介するのは、**TOPからDiscord Botを通じて、メッセージや画像、動画を送信するHDA**になります。
こちらを使うことで、シミュレーション終了の通知や、レンダリング結果などが出先のスマホが確認できるようになります！

# Discord Bot を作成する
始めに、**Discord Bot**を作成し、**Discordサーバー**に参加させます。

**(1) Bot を追加**
Discord Developer Portal の [ Applications ](https://discord.com/developers/applications) を開き、**New Application** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/9e5c797f-b158-42cc-94ef-23ee3bb53d26.png)


**(2) Bot を命名**
適当な名前を付けて、**Create**を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/6be7eafb-ab26-028a-cada-0ffe6d758a45.png)

**(3) Public BOT を無効化**
このBotが自分のみ使用できるようにするために、oFFにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/73968b91-26fc-5806-7060-49f675fa4b4e.png)

**(4) OAuth2 を設定**
**OAuth2** → **URL Genarator** → **SCOPES** で **bot** にチェック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/ed21cfe1-995b-9925-6916-b55d6f9b694f.png)

**BOT PERMISSIONS** で、**Send Message** と **Attach Files** にチェック。
(お好みで他のもONにしてください)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/c7a879fd-f881-c355-dfb2-dc8ab4427833.png)

**(5) URLからサーバーに招待**
一番下の **GENERATED URL** から **Copy** を押して、ブラウザに貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/c6b4dec3-12b6-663a-f8e5-6e431e29d1e7.png)

適当なサーバーに招致します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/863f3954-820d-5e13-7f17-51e955371ea9.png)

**(6) 追加できたら、成功！**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/9ae1678f-f4b4-7e54-caf2-ddeb9038ade2.png)

**(7) Token をゲットしておく**
後で使うので、**Bot** → **Reset Token** から **Token** を取得します。
![Screenshot 2023-12-11 033635.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/f54cc099-ad8f-17d7-eda8-b3256a9248dc.png)

**(8) Channel ID をゲットしておく**
Discord開いて、右下のアイコンの隣にある歯車マーク **ユーザー設定**を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/06490bf9-a121-f4b3-3977-e3db65a67f0e.png)

**詳細設定** → **開発者モード** をONにしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/0a4687fd-5477-5235-4b25-20174ea59721.png)

BOTに通知させたいチャンネルを右クリックして、**チャンネルIDをコピー**を押して **channelID** を取得しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/aa0461a1-f3af-58bb-efff-75b6136bfdba.png)


## HoudiniからTOPsを使ってDiscordに通知する
準備が終わったので、ここからはHoudiniを操作していきましょう！

**(1) HDA をインストールする**
[HDA](https://drive.google.com/file/d/1jo30A0ATLPNwzr1B57ul8s0b1fkxjOpz/view?usp=drive_link)をダウンロード
<font color="DarkGray">(リンク先が切れていた場合、お手数ですが筆者プロフィールからDMにてご連絡ください)</font>
し、**otlsフォルダ**にコピペします。
<font color="DarkGray">(通常では、C:\Users\hogehoge\OneDrive\Documents\houdini20.0\otls にあります)</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/922a0c09-b087-f207-4031-24eb514d718e.png)

HIPファイル依存にしたい場合は、**Houdini**を開いて、**Assets** → **Install Asset Library** から、適当な場所に置いた HDA を指定して、**Install** を押してください。
<font color="DarkGray">(この方法はotlsフォルダに置かない場合の方法で、otlsフォルダに置けていればTabメニューにはHDAが出てきます)</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/fab8f8b4-513f-1018-ef18-baeeae023272.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/dd607982-6fd1-381d-cc70-082349e60856.png)

**(2) TOPsを使って試行する**
Houdiniを再起動してから、**TOP Network OBj**を作成して、このような感じで組み立てます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/b2a1075f-5c5a-e700-aed0-70e1c672cd33.png)

前に取得した **Token** と **ChannelID** をコピペして、**Cook Output Node**！
上手くいけばBotがチャットしてくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/0cfa884e-d1cc-8872-d2d2-edb0be315c8f.png)

---
同様に、画像や動画も、適切にリングを貼り付ければ送れるようになっています。
こちらに検証した[シーン](https://drive.google.com/file/d/1jo30A0ATLPNwzr1B57ul8s0b1fkxjOpz/view?usp=drive_link)を置いておくので、ご興味あれば見てみて下さい。
<font color="DarkGray">(リンク先が切れていた場合、お手数ですが筆者プロフィールからDMにてご連絡ください)</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041568/5591ef29-3102-3630-7e5d-a46997fb85c0.png)

## 終わりに
以上、TOPsからDiscordにメッセージなどを送信するHDAの解説でした。
なんだかしっかり理解しているように書いていますが、僕はBotまわりもTOPsの深いところもあまりよく理解できておりません…
そしてHDAの中身なんですが、Python ProcessorTOPのみで作っており、実はほぼchatGPTのコピペでできております…
なので、何か誤動作が起きる可能性も全然あると思うので、そのときはchatGPTと一緒に問題解決を試みてみるなり、僕のDMに連絡してみるなりして頂けたらと思います。
でも正直、chatGPTでこれが上手くいくと思っていなくて、個人的にはけっこう満足しています…w

ということで、皆様におかれましても、良きHoudiniライフをお過ごし下さい～！