日々のことを取り留めもなく書く日記

この人のサイトへ
Twitterへ
374693
20040506070809101112
2005010203040506070809101112
2006010203040506070809101112
2007010203040506070809101112
2008010203040506070809101112
20090102030405060708091011
201001020304071012
2011010203040506070809101112
2012010203040506070809101112
2013010203040506070809101112
2014010203040506070809101112
2015010203040506070809101112
2016010203040512
201712


2012-09-04

[]SSTPの話 00:32

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

トラックバック - http://d.hatena.ne.jp/white-ball/20120904/1346772737
20040506070809101112
2005010203040506070809101112
2006010203040506070809101112
2007010203040506070809101112
2008010203040506070809101112
20090102030405060708091011
201001020304071012
2011010203040506070809101112
2012010203040506070809101112
2013010203040506070809101112
2014010203040506070809101112
2015010203040506070809101112
2016010203040512
201712