執筆開始日:2022/12/30
記事公開日:2023/01/14
本記事は、伺かのベースウェアたる SSP が情報のやり取り(通信)を行うため、外部に向けて開放している窓口周りの規格・先人のツール等々について、うかどんで識者の皆さまから教わった内容と、自分なりに調べたことをまとめて、整理してみたものです。
また、学んだ結果として「こんなことができるみたいです」の例も、備忘録的に記録してみた記事になっております。
ゴースト制作をしている内に、気になったから…です。
調べる前は、次の Figure 1. に示したような「各要素間でのやり取り」がどんな風に行われているのか、さっぱりわからなくて…。
Figure 1. dullNekoの最初の疑問(3つ)
別に「疑問1」「疑問2」「疑問3」が分からないままでもゴースト制作はできる…と頭では分かっていても、どうにもすっきりせず。
そんなことをごちゃごちゃと ukadon でトゥートしていた所、(見るに見兼ねたであろう)識者の皆さまから色々と教えて頂き、ようやく少し理解できた(っぽい)ので、忘れないよう自分なりに記録しておこう…と考えた結果がこちらの記事になります。
早速ですが、まとめた結果から。次の Table 1 と Figure 2 が、自分なりに整理した表・図です。
整理してみれば…そんなに難しいことをしているわけではない…?感。(※だからといって自分でDLLの実装ができるか、は別ですが)
少なくとも「外部からトーク(あるいは通知)を喋ってもらう」程度であるなら、「SSTP のプロトコルに沿った文字列」を「適切な窓口に、適切な手順で投げればいい」ということは理解できました。
あと、ゴースト間コミュニケート(いわゆる「掛け合い」)が「DirectSSTP」で実現されていることや、その際に参照されるウィンドウハンドルが「FMO(File Mapping Object)」に格納されていて、わざわざ自分でウィンドウ名で調べたりせずとも、SSP標準の「SakuraFMO」を読み込めば「起動しているゴーストさんのカタログ」的感覚で使える…ことも含めて学べたのは、とても有意義でした。
Figure 2. (dullNeko の理解で)整理した各部品間の通信図
「手っ取り早く画像を作りたい」だけなら、
Don さんの DirectSSTPTester の実行ファイルをダウンロードして、
次の Figure 3 の様な SSTP 形式の文字列を打ち込んで(下記【テンプレート】を DirectSSTPTester の入力ウィンドウ内にコピペした上で、SSPの「スクリプトログ」から「発話時のさくらスクリプト」を拾ってきて、Script: の行を置換すればOK。option: nodescript は忘れずに!)
目当てのゴーストさんに「送信」すればおしまい。
です。
Figure 3. お手軽3秒(は無理にしても多分3分くらいでできる)クッキング例
…ということで、タイトルにあるような「新規トークチラ見せ画像」を手っ取り早く作りたいのなら、Don さんの「DirectSSTPTester」を利用させて頂くのが一番簡単だと思います。
先人の知恵と試行錯誤に敬意を表しつつ、ツールを使わせて頂くのが良いのではないかと。
「さとりすと2」をお使いの方で、ご自分でビルドできる環境をお持ちの方なら、「Satorite.cs 内で定義されている Option に、自分で nodescript を書き加える」…というのも一手かも知れませんが、流石にちょっと大変だと思いますので…。