うかべん@大阪#9

行ってきました。
は特にがっつりプログラム寄りのお話が詰まっていました。
最近めっきり界隈の開発話からは遠ざかっていますが、やっぱりいろいろ話を聞いているとまたいろいろやりたくなりますね。
とりあえずこの前聞いたword2vecをいじってみるかなぁ。

うかべん横浜#8

行ってきました。
の発表テーマは、トークの作り方と他人の存在する開発というふたつの点に焦点が当てられていたように思います。
それぞれの発表がうまくかみ合っていて、どのお話もすっと頭に入ってきました。
感想詳細は時あるときにでも。

NowTalkingPlugin公開

すごく久々に伺か関係の更新です.
SSP用のプラグインで,Windows Live Messengerの音楽情報の所に起動中のゴーストを表示します.
ゴーストからプラグインを呼び出せば,任意のメッセージに変更可能です.
複数のゴーストが起動している場合は「ごーすとA, ごーすとB, ごーすとC」のように表示します.
メッセージを変更している場合は「ごーすとAのメッセージ, ごーすとB, ごーすとCのメッセージ」のように,のゴーストの名前の所だけ変更して表示されます.

うかべん大阪#8

参加してきました.皆さんお疲れ様でした.
技術の話から表現の話まで幅広く話が聞けたのでとても充実した時を過ごせました.
以下,勉強会中に取ったメモをまるまま置いておきます.
気が向いたら清書するかも.

……ところでスタッフの方々に配った10本の小岩井ミルクとコーヒーはちゃんと行き渡ったのだろうか.

続きを読む

SSTPの話

http://blankrune.sakura.ne.jp/blog/archives/16248

フィーネさん発、SSTPの問題点についての話題に関してうだうだと書いてみる。
決して解決策を提示するものではないし、建設的な議論の後押しになるかも怪しい、与太話的な感じで。

提起される問題

一言で言うと、「SSTPによってゴーストのキャラ崩れが起きる」ということ。
これは昔から言われてはいましたよね。
かつては「黒うにゅうは毒電波を受けると関西弁になる」なんて、それをも含めてネタにされていたような感じもありましたが、昨は当時とゴーストの傾向も変わり、SSTPによるトークの流し込みが致命的なキャラ崩れとして無視できない存在になり、また問題として浮上してきたということでしょう。

過去のSSTP関係で似たような問題というと、SSFファイルのときにそういう話題があったようです。
http://emily.shillest.net/specwiki/index.php?%E3%81%9B%E3%81%8D%E3%82%84%E3%81%B2%E3%82%8D%E3%81%97%2FSSF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%95%8F%E9%A1%8C%E7%82%B9

あと思いつくのはボトル方面でやりすぎて怒られたとかそういう話でしょうか。

どちらにせよ、この問題について根本的、統一的な解決策は提示されていないので、再び問題として取り上げられることは自然な話です。

問題のレベル

さて、一口にSSTPでキャラ崩れすると言ってもいくつかの段階があると考えます。

まず1つ目の分け方はSocketとDirectです。
ただ、WebからのSocketは最近どこもルータ越しでまともに投げられる環境ではないため、以降ではローカルからのDirectだけを考えます。

次に、(A)IfGhost付きと(B)そうないものの2つの段階があります
さらに(A1)IfGhost付きでスクリプトがゴーストに対して最適化してあるやつと、(A2)とりあえず立っているゴーストの名前が指定されているだけの2つに分けられます。

まず(B)について考えます。
IfGhostのないSSTPは言わば汎用メッセージです。他ソフトの通知とかはこれで飛んでくるのが多いんじゃないでしょうか。
これがゴーストに飛んでくると問答無用でのメッセージが再生されるので、多くの場合、キャラ崩れが発生することと思います。

次に(A1)、これについては(B)よりは被害が少ないと思われます。
なぜなら、ゴーストを指定するということは、のゴーストに対してもっともらしいスクリプト再生されることが期待できるためです。
のゴーストのために書かれたスクリプであるならばスクリプト再生することによってキャラ崩れが発生する可能性は少ないでしょう。
ただし、スクリプトは本来のゴースト作者ではない、二次創作によって書かれたものであることが多いです。
のため、解釈のずれや書き手の願望などによって、作者の意図するキャラクター像とは異なるものが生み出される可能性があります

最後に(A2)ですが、これは質が悪いです。
何せ、最適化を期待すべきところでなんにも考慮されていないスクリプトが流し込まれるんですから。
この方法で送られたSSTPはIfGhost付きであるにもかかわらず確実にキャラ崩れを引き起こすものと思われます。

余談としては、(A2')ミスというものも考えられます。
ゴーストに最適化したスクリプトを投げるはずだったけど、プログラムミスでIfGhostを違ってとんでもないことになる、というパターンです。
ミスなら直せばいいといえばいいんですが、起こってしまったキャラ崩れは取り消せない訳でして。
「いやな事件だったね……」で流せるかどうかは個別のケースによるものかと。

現状での対処法

(B)についてはsstp.allowunspecifiedsendで対応可能なはずです。
ukadocによると、これを設定しておけばゴースト指定のないSSTPを拒否できるそうなので。

(A)については、フィーネさんの所でも挙げられていますがOnTranslateでスクリプトを握りつぶす、ことでしょうか。
ただ、あんまり使いやすそうな方法には見えません。
SSTPを握りつぶす処理と本来のトランスレート処理がごっちゃになって見通しが悪くなる気がします。
トランスレート、んなに使われないんでしょうけど。
あと、SSPの一時起動ゴーストってトランスレート通るんだろうかとかいう疑問が。

対処しにくい問題に対するアプローチ

(A)のケースについての対処ですね。
所長さんがなにやら手を入れているようですが、とりあえずそれは置いておいて。

フィーネさんの希望としてはSSTPを全部蹴る設定が欲しい、とのこと。
個人的には実装しても別にいいんじゃないかなぁと思ったりします。
りゃあSSTPを使っている人としては、全部のゴーストで必ず通知が再生されるのが望ましいと思っています。
ですが、ゴーストは沢山いるし、立っているゴーストが反応してくれなくても、他のゴーストが反応してくれればそれでいい気もするし、一時起動ゴーストもいるし。
ゴースト独自の反応がないのなら、スルーされてもユーザーにとっては実害少ないんじゃないかなーと思います。
しかし、完全に握りつぶされると、それは流石に困ります。通知がちゃんと送られているかどうか分からないので。

でも、個人的にSSTP拒否する設定が出来たとしても、キャラ崩れに関する問題が解決するとは思えないんですよね。
descript.txtでの設定の場合、暗号化もないですし外部から容易に書き換え可能です。
ローカルからSSTPを送ってくるなら当然ファイルにアクセス可能な訳でして、手を考えなければゴーストフォルダを探し出して設定書き換えなんてことも出来なくはないことです。
なので、設定を追加しても結局はいたちごっこになるんじゃないかな、と。

ただ、少なくともフィーネさんの記事を見る限り、(辞書いじりとかで)意図的に引き起こされるキャラ崩れについては自己責任でやってもらうしかない、とされているので、こまでやるようなソフト使ってまでゴーストになんか喋らせたい需要はは置いておいてもいいのかな。


……なんてコトを書いていたら、所長さんが対策記事を書いていた
OnTranslateでスマートに書けるんなら、それで対処するのがいいんじゃないかな。
イベントで処理なら細かい制御も可能だし、外部ソフトからの書き換えも難しいし。
「非推奨」というところに引っかかりを覚える方もいるでしょうけど、所長さんも書いていますけど、機能として提供されるものなんですから、必要があれば使うのは当然のことなので、気にするようなことでは無いと思います。

伺かアニバーサリー(仮)

参加してきました。
久々のオンリー参加でした。なんか@関西側以来?
前の春菜10周年の時の様子は知らないんで、の人手がどんなもんかは判断つかないですが、個人的には盛況だったんじゃないかと思います。
私は開場前から並んではいましたが、ゆっくりまったりと見てっていました。それでまあ大体欲しいものは手に入ったからよかったんじゃないかと。
アフターのスクワットじゃんけん大会は何も手に入れられず、しかも↓のイベントにも参加するため途中退場という始末。
で、途中退場なので満足に人に挨拶もせぬままという……
度お会いできる機会(うかべん大阪?)にはもっとお話ができたらなと思います。