# Neos制作物の振り返り
みなさんこんにちは、ここあです。
これは、[Neos VR Advent Calendar 2022](https://adventar.org/calendars/7623)の25日目の記事です。
昨日は litalitaさんの [NeosVRでの音楽関係活動振り返り2022](https://note.com/litalita9764/n/nf5f9e3fc6c99) です。
## 自己紹介
ここあです。NeosVRではkokoa0429というユーザIDです。よろしくお願いします。基本的にNeos内ではあんまり物を作っていません。外部のAPIで楽しようという魂胆です。
## 内容
結局最終日にも関わらず、なんも書くことを思いつかなかったので、僕がホストしてるAPIやツールに関して紹介します。
需要ありそうなものから紹介します。
だいたいのものは[ここ](https://util.neos.love/inventory/v1/viewer/U-kokoa0429/Inventory/kokoa%20public)のパブリックフォルダに入ってます
## 1. kokolive
**OBSやブラウザを使用してNeos内に動画を配信できるツールです。 **
orangeさんがブラウザ版に直接つながるアイテムを作っていただきました。

### 使い方
#### 配信
OBSであれば、`rtmp://live.kokoa.dev/live/`以下の任意のパスにRTMPストリームを流します。
ブラウザ版はIDを入力しますが、これは`rtmp://live.kokoa.dev/live/`の末尾にIDが付いたような形で内部で配信をしています。
#### 視聴
配信同じパスでRTMPストリーム、最初のほうを`rtsp://live.kokoa.dev:8554/`に置き換えることで低遅延のRTSPストリームを得ることができます。
実はNeosの外でも見ることができて、VLCなどだと

と入力することでkokoliveを外からも見ることができます。
## 2.もじもじメッシュ君
**3Dのメッシュが作れるツールです。**

### 使い方
もじを入れて、生成を押します。(???)
ここあサーバ上でblenderが動いて、直接Neosで読み込めるmeshxを生成しています。
もし入れてほしいフォントとかあれば、ここあまで言ってもらえれば追加します。
## 3.VoiceBox (API)
**読み上げとかできるAPIです**

VoiceBoxで音声を作れるAPIエンドポイントです。
`https://voicebox.kokoa.dev/?text=ここにしゃべらせたいテキスト&speaker=喋るキャラクターのID`
を入れると、文字の長さによりますが、数秒でwavのバイナリを返事します。
なので、StaticAudioのURLに直接ドライブするとそのまま再生できます。
アイテム等に組み込む際はVoiceBoxのライセンス権利表記が必要です。
## 4.Koko Translator (ツールとAPI)
**翻訳できます**
### ツール

ブラウザを使用して喋った言葉をリアルタイムで翻訳できるツールと、単純な文字翻訳の板があります。
#### 使い方

文字翻訳の板は左上の赤枠が翻訳元、緑枠が翻訳先です。言語で指定できるものはたくさんあるのですが、使いがちなのは
ja 日本語、en 英語、ko 韓国語、zh-cn 中国語
あたりだと思います。
喋った言葉をリアルタイムで翻訳する板は、Connectを押して出てきたブラウザのタブで、Startを押すだけなので簡単だと思います。
### API
翻訳エンドポイントをいくつか用意しています。
簡易的な翻訳であれば
`https://translate-api.kokoa.dev/v1/tmp-translate`
DeepL,Google翻訳、Azure翻訳等のAI翻訳は
`https://translate-api.kokoa.dev/v1/translate`
が使えます。
各々のリクエストクエリに
`?from=翻訳元の言語&to=翻訳先の言語&text=テキスト`
を付与してGETリクエストを飛ばすと翻訳されます。
fromとtoは上記に書いた言語指定と同じjaとかを入れてください。
## 5. WebSocketEcho (API)
**サーバレス双方向通信!**
NeosVRでWebSocketを使って別のセッションとか、Webサイトとかと双方向通信したいことってありますよね??僕はあります。
そのためにWebSocketをオウムしてくれるだけのWebSocketサーバを作ってあります。
`wss://wsecho.kokoa.dev/`以下の任意のパスにWebSocketを接続してください。
> たとえば `wss://wsecho.kokoa.dev/kokoa/sampleProject/test`
その状態でWebSocketを送信すると、おんなじパスにつないでいる全員に内容が送信されます。(注意: 送信した本人にも帰ってきます)
これを使うと、自分でサーバを立てなくても、静的なWebページとNeosをつなげられます!
サンプルは気が向いたら書きます。
## 6. TextBox (API)
**データを置けます**
NeosVRでWebSocketを使って別のセッションとか、データを外部から置いたり、とったりしたいことってありますよね??僕はあります。
そのためにPOSTでデータを置いて、GETで取れるエンドポイントを作ってあります。
`https://textbox.kokoa.dev/`以下の任意のパスを使うことができます
> たとえば `https://textbox.kokoa.dev/kokoa/sampleProject/test`
決めたパスに content-typeをtext/plainにした状態でPOSTをすると、そのパスにデータが置かれます。
同じくGETをすると、置いたデータを取得することができます。
これを使うと、Webサイトや何かでデータを置いて、あとでNeosから使うとか、その逆もできます!
サンプルは気が向いたら書きます。
## 7. NeosCam
**Syncせずに画像を送信!**

~~は?なんだこのクソダサプロトタイプは~~
Neosで写真を撮った後にWebSocketで画像を送信してDiscordに送ることができます。
Neos側にもパブリックアクセスできるURLが帰ってきているので、好きなことに画像を使うことができます!(Twitterに投稿とかとか)
## 8.日本語操作系 (API)
### かんじをひらがなにする
`https://hiragana.kokoa.dev/?text=今日は`
とかでGETすると`こんにちは`って帰ってきます。
### ローマ字をひらがなにする
`https://hiragana.kokoa.dev/romaji?text=konnnitiha`
とかでGETすると`こんにちは`って帰ってきます。
## 9. 7zbson系 (API)
**7zbsonを解凍圧縮!**
### 解凍
`https://decompress.kokoa.dev/`
WIP
### 圧縮
`https://compress.kokoa.dev/`
にjsonをPOSTすると7zbsonバイナリが帰ってきます。
## おわりに
ほかにもありますが、くだらないのしかないのでこんなもんにしておきます。
今年も一年ありがとうございました!
元々Neosには傷心状態の時に参加して、NeosとNeosの皆さんに助けられました。なのにまた病んでみなさんに迷惑をおかけしました。反省しています。
自分のキャパシティを超えると急に病んでしまうので、結構気を付けて生きていきます。
来年は明るく元気にのんびりマイペースで生きていくので、よろしくお願いいたします。