# 概要

起動しておくと適当に喋ります。しかし「作者」によって用意された台本はありません。


# やや詳しい内容

Stand システムはローカルマシン上にスクリプトを持っておらず、必要に応じてマスターサーバからスクリプトデータを取得します。マスターサーバには web からのスクリプト書き込みインターフェースがあり、そこから誰でもスクリプトデータを入力できます。つまり、誰でも何でも(普及している全クライアントを)喋らせることができる、ということです。

また、SSTP サーバ機能を有し、ネットワークを介して外部からスクリプトないしエコーデータ(コンソールメッセージ)を送信することで、汎用の文字出力デバイスとして使用できます。クライアント機能も有しているので、(それに意味があるかどうかはともかくとして)Stand 単体でサービスマシン同士が双方向に通信できます。


# 補足

本当はマスターサーバが必ずしも役に立つものとは限らない(ただ同じスクリプトを返すだけなら意味がない)ので、上記特性の大部分は実際には Stand の特性ではなくて Shinatiku MOD の特性である。





# キャラクタ


しなちく

人間界に修行に来た魔法界のプリンセスを次々と殺戮する少女。ことあるごとに差別語差別語とわめき散らす当人が差別意識丸出しという事故が幼少期のトラウマとなり、ゲームとして見たら積み上げられた糞としか言いようがない子供騙しのギャルゲーが大量生産され続ける中、江角マキコの毒にも薬にもならないにわか説教に耐えかねて 12歳で出家。廃人と呼ばれると「本当の廃人はもっと凄いよ」と何が言いたいのか判断しかねる反応をするタイプの人々が「レベル50?弱いねww」「PK あったら殺すのにwww」などと意気込む横で大阪城を完成させるなど数々の奇跡を起こす。その後カネコで「ジャッキーチェン」を制作してジャッキー本人に怒られるなど職を転々。戦後に入ってからは京都大学うどん学科で教鞭を振るい、現在に至る。代表的な著書に「初心者です。助けてください」など。





うさ

賞金首の捕獲を生業とするバウンティハンター(賞金稼ぎ)ってまたそれかよ。考え直せよ。という神託を出生と同時に受け、3歳から週刊少年ジャンプで連載を始めるが、内容がカウボーイビバップの丸パクりだったためサンライズからクレームが入り 10話で突き抜ける。その後タマちゃんを見守る会の偽善者ぶりに怯えながら屋根の上で糞 camp を始めるも、厳しい批評をすることで何か偉くなったと勘違いしているボケを真人間に更正させるのはもはや不可能と判断。そのショックから飛行形態への変形が可能となり、長年に渡り正義のヒーローとして手前の幼稚な善悪観を基準に人を殺しまくった。現在は執筆活動に専念、代表的な著書に「土龍閃の秘密」「お前のネトゲプレイ日記誰も見てない」など。




# システムの基本操作


画面上に出るウインドウは大体ドラッグ&ドロップで移動できます。各ウインドウの位置は保存され、次回起動時も復元されます。

CTRL+ALT+SPACE もしくは CTRL+SHIFT+SPACE でコンソールを開閉できます。

CTRL+ALT+ENTER もしくは CTRL+SHIFT+ENTER で最小化/復元できます。

コンソールにカーソルがある時、カーソルキーの上下でヒストリ参照、TAB キーで補完ができます。UNIX 系のまともなシェルには付き物のアレ。例

ex と入力して TAB を押すと、exit が提示される。
sa と入力して TAB を押すと、say sayhttp saynext が順番に提示される。
何も入力しないで上キーを押すと、1つずつ古いヒストリを遡る。
sa と入力して上キーを押すと、ヒストリの中で sa で始まるものが順番に提示される。ない場合は何も出ない。





# コマンド


シェルで入力することで実行される関数。ホワイトスペースを区切りとして複数の引数を取る。引数自体がホワイトスペースを含む場合はダブルクォートする。例

say "this is a pen"


* exit
* quit

* break

現在再生中のスクリプトを破棄し、即座に通常状態に戻る。

* hide

コンソールを隠す。

* call [filename]

filename で指定されるカスタムバッチファイルを実行する。

* home

GUI フロントエンドの位置をデフォルト位置に戻す。

* setguiattribute

* reload

マスターサーバからマスタースクリプトを取得する。

* restart

SSTP サーバモジュールを現在の設定でリスタートする。

* changetextureset [value]
* changescriptortextureset [value]
* changeemotiontextureset [value]

上から、テクスチャセット、スクリプタテクスチャセット、エモーションテクスチャセットを value に切り替える。

* pause

Pause 状態に入る。Pause 中は Automatic Say および Automatic Reload が行われない。Pause 状態の時に再度コマンドすると状態解除される。

* say [script]

[script] をスクリプタに送る(喋る)。

* sayhttp [url]

[url] からドキュメントを取得し、それをスクリプタに送る(喋る)。url がバイナリを指している場合の動作は不定。

* saynext

マスタースクリプトリストからスクリプトを発言し、ポインタを 1進める。

* sendsstp [ip] [port] [script] [echostring]

ip で指定されたサーバの port で指定されたポートに接続し、SSTP データを送信する。script が Script ヘッダに、echostring が Echo ヘッダにセットされる。Sender は sv_sstpsender 変数の値が用いられる。

* timeleft

次の Automatic Say および Automatic Reload までの時間を表示する。

* alias

* loadtexture [tID] [filename]

filename で指定されるビットマップファイルをテクスチャ ID tID にロードする。

* registertexturealias [tyID] [fID] [alias] [tID]

タイプ tyID のスコープ fID の表情語エイリアス alias にテクスチャID tID のテクスチャを関連付ける。タイプ ID は 0 がテクスチャフォーム、1 がスクリプタフォーム、2 がエモーションフォームを表す。スコープ ID は 0 が本体、1 が相方を表す。それぞれ別個にエイリアスリストが保持される。

* settexture [tyID] [fID] [tID]

タイプ tyID のスコープ fID にテクスチャ tID をセットする。<t> タグのコア関数。手打ちで使う場合は主に初期化に使用。

* registeranimation [apID] [filename]

filename で指定されたアニメーション定義ファイルをアニメーションパイプライン apID にロードする。パイプライン ID はそのテクスチャセットが持つ全アニメーションについて一意な値であり、重複できない。

* registerguioffset [typeID] [tID] [x] [y]

typeID が予約語 emotion だった場合、テクスチャ tID がテクスチャフォームに表示された際のエモーションフォームとの位置関係を表すオフセット値を (x,y) に設定する。

* registerguimenu [menuTitle] [command]

システムポップアップメニューにタイトルが menuTitle のメニュー項目を追加する。メニューを選択すると command に記述されたコマンドが実行される。command はセミコロン区切りで 1行に複数記述できる。

* unregisterguimenu

システムポップアップメニューから全てのメニュー項目を削除する。

* system [filename]

filename で指定されたプロセスを起動する。パスはホームディレクトリからの相対指定。





# システム変数/定数


識別子をシェルから入力すると現在の変数/定数の内容が出る。変数の場合、第一引数に値を与えるとその値に変更される。定数は読み出しのみ可能で変更はできない。システム変数は先頭が必ず sv_ で始まり、システム定数は先頭が必ず sc_ で始まる。


* sv_masterurl

マスターサーバの URL。

* sv_proxyhost
* sv_proxyport
* sv_proxyusername
* sv_proxypassword

上から順に、HTTP リクエストに用いるプロクシサーバの IP アドレス、ポート、ユーザ名、パスワード。全部空文字列ならプロクシを使用しない。認証のないプロクシでは後者 2つを空文字列にする。

* sv_sstpserverport

SSTP サービスを行うポート。0 をセットするとサービスしない。変更を反映するには restart が必要。

* sv_sstpserverquiet

SSTP サービス関連のシステムログを表示するかどうかのフラグ。0 の場合、通信ヘッダを含めた全てのログが表示されるが、Echo によって送られてくるリモートコンソールメッセージはシステムログに埋もれて非常に見づらくなる。1 の場合、SSTP サーバはシステムログをほとんど出さないので、Echo によって送られてくるリモートコンソールメッセージは見やすくなる。変更を反映するには restart が必要。

* sv_sstpsender

SSTP クライアントとしてデータを送信する際の Sender ヘッダの値。

* sv_saypointer

マスタースクリプトリスト上での現在位置を指すポインタ。マスターサーバへの http リクエストの際 st パラメータとして付与される。ローカルコピー上での現在位置を指すポインタではないことに注意(つまりマスターサーバが st パラメータを処理できなければこの変数は無意味)。

* sv_scriptorautohidetime

スクリプト再生終了後自動でスクリプタフォームを hide するまでの時間。単位ミリ秒。

* sv_textureauthor
* sv_scriptortextureauthor
* sv_emotiontextureauthor

上から、カスタムテクスチャセット、カスタムスクリプタテクスチャセット、カスタムエモーションテクスチャセットの作者名。

* sc_gui_consolebackcolor
* sc_gui_consolefontcolor

上から、コンソールの背景色、文字色。

* sc_gui_consolealpha
* sc_gui_scriptoralpha
* sc_gui_texturealpha

上から、コンソール、スクリプタ、テクスチャフォームの透明値。





# スクリプトインラインコマンドタグ


* <c,[sID]>

コントロールスコープ(カレントキャラクタ)を sID 番に切り替える。0 が本体、1 が相方。-1 は特殊で、ブロードキャストスコープとなり、以降の文字やコマンドが全スコープに同時に影響を及ぼす(同時に喋る)。

* <n>

改行する。

* <w,[time]>

time ミリ秒ウエイトを入れる。ミリ秒単位で指定できるが精度は低い(50〜100ms 程度)。

* <t,[tALIAS]>

テクスチャを tALIAS で指定されたテクスチャに切り替える。感情情報。

代表的な tALIAS 値

normal
標準の表情(微笑がスタンダード)
smile
笑っている表情
angry
怒っている表情
surprised
驚いている表情

全ての感情情報が全てのテクスチャセットで有効であるとは限らない。

* <e,[eALIAS]>

eALIAS で指定されたエモーションアイコンを出す。こちらも感情情報。

代表的な eALIAS 値

ex
exclamation

感嘆
que
question

疑問
fun
楽しい
love
ハート
press
不安
firework
ひらめき
angry
怒り
money
silence
沈黙

* <clear>

スクリプタフォームをクリアする。文字は全て消され、カーソル位置が (0,0) に戻る。

戻る