記事一覧

里々で「らふらんす」を使う

華和梨向けのトークテストツール「らふらんす」

配布元

里々で「らふらんす」を使う

以下のコードを里々の辞書の何処かに記述するだけ。

@ShioriEcho
(R0)

ファイル 71-1.png

ゴーストを公開するときは記述を消してください。

セルフツッコミ

それ「さとりて」で出来るよ!

「らふらんす」がDSSTPを投げて、華和梨がそれを再生しているだけらしい、というので、里々でも対応コード入れれば動くよね、ってのを確認したかっただけの話です。

10/03/10 追記

対応コード入れなくても動くらしいですよ!いつの間に。

Opera/10.50にアップデートした

ぱっと触った感じの印象などを。

  • CSS3の transition, border-radius, box-shadow などがサポートされてる
  • JavaScriptの JSON がサポートされてる、右クリックが拾える

というわけで、OperaもCSS3の恩恵に与れるようになったのでUserJSを更新。

右クリックでオーナードローメニューが出せるようになったのは大きいですね。

ブラウザゲームにUserJSでアバターを表示させてみる

文化英雄譚

LRさんがブラウザゲームを作ったみたいです。アトリエシリーズを彷彿とさせるアイテム作製ゲームとなっています。

なかなか楽しいのでみなさんもぜひどうぞ。

ありがちな問題点

いちいちサーバと通信するので反応が遅いですね。Webアプリの宿命なんでしょうけれどもあまり快適とは言えません。しかもメニューの階層が深いので目的のページにたどり着くまで3回以上も画面遷移を経ないといけなかったりしてかったるいです。ユーザビリティにもう少し工夫があるといいなと感じたので、リンクのショートカット機能をウチのUserJSゴーストに持たせてみました。

ファイル 69-1.png

目的の操作画面まで一回の画面遷移で行けるように。3回も4回もHTTPリクエスト投げてその度にデータベース参照してとかやってたらユーザにとってもストレスフルですしサーバの負荷も大変だと思うので、お互いに有益なのではないかと思います。

おまけで余計な反応も仕込んでみました。

ファイル 69-2.png

インストールは以下からどうぞ。

思いついたこととか

JavaScriptで動くゴーストは他にもいらっしゃるわけで、自分のWebサイトの案内役的なマスコットとして設置する活用例が考えられます。一方、UserJSで別のサイトに連れ回して何かする活用例というものを今まで思いつかなかったのですが、こんな風にイベント通知に使えるんじゃないかなどと考えました。

伺かにもSSTPサーバとして外部アプリケーションからの通知を再生する機能を備えていて、イベント通知アプリとしての側面も持っています。Webサイト側からの何かしらの通知を受け取って(あるいはSSTPライクなプロトコルをそのまま受信・解釈して)再生できれば、例えばWebゲームのアバターとして、ゲームを操作するUIそのものに応用出来るんじゃないかとこれを作りながら考えたりしました。

本当は画面に出ているキャラクタイメージをそのまま使いたかったのですが、透過されていなかったので今回は見送りです。もちろんWebゲーム側から特別な通知が来ているわけではなく、こちらが勝手に文字列を拾っているわけですが、何か一般的な通知の仕様が策定されて別のWebゲームにも使われるようになったら素敵ですね。同じアバターで別々のゲームが楽しめる、みたいな。

うじゅうジェネレータver1.0.2

UJU ver1.0.2

インラインフレーム全てにマテリアライズしてしまう不具合修正などしたのでUJUをver1.0.2に。
併せてびーふれんずのUserJSも更新しました。

うじゅうジェネレータver1.0.2

昨年からずっと放置していたうじゅうジェネレータもver1.0.2に追いつきました。
作成環境としてはショボイのでもう少しどうにかしたいところです。

SSP/2.02.19で狭くなったメニューを元に戻す

オーナードローメニューが狭くなった

昨日リリースされたSSP/2.02.19で Windows Vista / Windows 7 向けの改良が行われた模様です。
メイリオのフォント情報を読み取って行間を詰めたりしているようで、オーナードローメニューが以前より狭くなりました。
特に見づらいわけでもないですし慣れの問題だと思いますが、設定で行間を調整することも出来ます。

ファイル 67-1.png

行間の設定の方法

オーナードローメニューから、「設定」->「本体設定」->「表示」->「メニューの縦方向の余白設定」を「4」にする。

ファイル 67-2.png

これでおおよそ以前と同じくらいの行間になります。

ファイル 67-3.png

「びーふれんず」をUserJS化してみた

このサイトで配布中のゴースト「びーふれんず」をUserJS化してみました。
例によって右下の青いボックスにマウスホバーすると起動するゴーストを選択出来ます。
聞きかじった知識でUserJS間の通信を実践してみました。
Firefox, Safari, Google Chromeで右クリックメニューから「ゴースト切り替え」「ゴースト呼び出し」が出来ます。(Opera、IEは仕様的に無理)
既に設置済の「うじゅら&うじゅう」もアップデートしました。

入手先

追記

ブラウザ版Apricotが出てますね。

別に対抗意識とか燃やしてるわけじゃないですけど、ウチのUserJSは、下記のようなコードをHTMLの<head></head>内に書くことでお持ちのブログに自由に貼ることもできます。

<script type="text/javascript" src="http://home.384.jp/evidence/js/ujurauju.js" charset="utf-8"></script>

Webページ設置も出来るように作ってありますので。

ページを開いたらすぐ起動して欲しい場合は(ソースをDLして自前で設置する必要がありますが)ソースの上の方にある"bootAfterPageLoad: false"って書かれてるところを"bootAfterPageLoad: true"に変えるだけです。

このへんのドキュメントも配布ページにまとめておかないといけないですね。

YAYAの関数ISVARはちょっと危険

ISVARとは何か

指定した名前の変数が存在しない場合に0, グローバル変数が存在する場合に1, ローカル変数が存在する場合に2 を返す関数です。変数の存在の有無の判定に用いられます。

ISVARの何が危険なの?

YAYAに限らず里々や華和梨においても、「変数の削除」をする際には「変数に空文字を代入する」という手法がよく用いられると思います。YAYAでも空文字を代入して終了すればセーブデータにも残らず次回起動時に変数は存在しないことになります。YAYA Tc538-3 にて空文字が代入された変数もセーブ対象に変更されました。(2010/01/21 追記)

でも実は空文字を代入しても変数は消えないのです。次の例を見てみましょう。

{
  hoge = 1          // 変数を作成
  --
  ISVAR('hoge')     // => 1
  --
  hoge != ''        // => 1
  --
  hoge = ''         // 変数に空文字を代入
  --
  ISVAR('hoge')     // => 1
  --
  hoge != ''        // => 0
  --
  ERASEVAR('hoge')  // 変数を明示的に削除
  --
  ISVAR('hoge')     // => 0
  --
  hoge != ''        // => 0
}

変数に空文字を代入した場合でもISVARは1を返します。本当の意味で変数を削除するためには専用の関数ERASEVARを使わなければならないのです。
明示的にERASEVARで削除した後にISVARの戻り値が0になっているのがわかると思います。また、削除後の変数と空文字との比較で、存在しない変数と空文字を比較すると真となることも確認できます。

しかしYAYAは空文字が代入されている変数をセーブデータに保存するようなことはしません。次回起動時には空文字が代入された変数は自動的に綺麗に消されてしまうので、「空文字の代入で変数が削除される」と誤解される方も多いと思われます。YAYA Tc538-3 にて空文字が代入された変数もセーブ対象に変更されました。

どうすればいいの?

空文字が代入される度にそれを検出してERASEVARで削除する、なんて煩わしいやり方は褒められたものではないので、ISVARを使わずに、空文字との比較で判定するのが良さそうです。
例えばユーザ名を入力してもらった時に空打ちされた場合、変数に空文字が入った状態ですのでISVARで判定すると「ユーザ名が入力されている」と誤判定する恐れがあります。また、初回起動などの本当に変数がまだ存在しない場合でも空文字と比較すれば存在の判定は可能です。

2010年あけましておめでとうございます

賀正

あけましておめでとうございます。
今年もよろしくお願い申し上げます。

今日は特に何も無いです。新年のご挨拶だけ。

抱負とか

去年の抱負を見てみたらSAORI作るとか書いてましたけど、そんな気配すらない一年でしたね。ダメすぎる。

今年はあまり高望みをせずに、自分に出来ることをやっていこうと思います。

出来ることを増やすのは良いことですし、スキルを磨いたりアウトプットを増やすことも大切ですが、ちょっと一休みをして。
面白い物語を読んだり、可愛いイラストを眺めたり、美味しいものを食べたり、ためになる話を聴いたり、自分と違う価値観に触れる機会が増えたりしたらいいなと思います。

皆様にとっても良い一年でありますように。

Google Chrome のテーマを作ってみた

スクリーンショット

ファイル 63-1.png

インストール

choronishiki.crx

謝辞

背景の素材に「にしき」を使わせて頂きました。

フォントに「Nishiki-teki」を使わせて頂きました。

テーマ名は「ちょろにしき」です。

来年もまた皆様に素敵な出会いが訪れますように。
それでは、よいお年を。

YAYAの関数TOAUTOはちょっと危険

先に結論を画像で

ファイル 62-1.png

便利な関数TOAUTO

YAYAにはTOAUTOというとても便利な関数があります。

YAYAには「文字列型」と「数値型」の2種類の変数の型が存在し(配列とかは除く、厳密には整数型と実数型に分かれる)、扱いが全く異なります。

{
  1 + 1     // => 2 (数値型)
  --
  '1' + '1' // => '11' (文字列型)
}

数値型に変換できる文字列は数値型に、そうでないものは文字列型のまま返す関数がTOAUTOです。

{
  TOAUTO('123')  // => 123 (数値型)
  --
  TOAUTO('hoge') // => 'hoge' (文字列型)
}

便利ですね。

TOAUTOの何が危険なの?

例えばこんな場合
{
  TOAUTO('0123')  // => 123 (数値型)
}

'0'が何処かへ行ってしまいました。これでは困ります。
これは文字列のままにして欲しいケースが考えられます。
(ユーザ名とかパスワードとか)

TOAUTO使わなきゃいいじゃん

お好きなYAYAゴーストを立たせてユーザ名を'0123'と教えてあげて下さい。
9割方「123さん」として覚えられてしまいます。TOAUTOなんて使った覚えも無いのに。

これはYAYAのせいではなく、現在広く普及しているYAYAミドルウェアでSHIORIリクエストの値がデフォルトでTOAUTOを経由させてしまっていることに起因します。referenceを参照した時点で既に'123'に書き換えられているのです。(ウチのGHOSTもだよ!/(^o^)\)

どうすればいいの?

「はろーYAYAわーるど」を例にすると、yaya_shiori3.dicの412行目にTOAUTOを使っているので、これをやめることです。(SHIORI3FW.AUTO_DATA_CONVERTをOFFにしているという前提の話)
でもreferenceの値が自動で型変換されているという前提で今まで辞書を書いていた場合GHOSTがまともに動かなくなるでしょう。それは困ります。

なので、こんな方法で回避しては如何でしょうか。

{
  _value = '0123'
  if TOSTR(TOAUTO(_value)) == _value {
    var.req.value ,= TOAUTO(_value)
  }
  else {
    var.req.value ,= _value
  }
}

再度文字列として評価したときに元々の文字列と一致した場合のみ数値に変換。そうでない場合は文字列のまま。

今のところ困ってないしそこまでする必要あるの?

必要ないと思います。必要になったときに対策しましょう。

余談

AYA as SAORIのシステム辞書はTOAUTOを使っていません(AYA5にはTOAUTO無いのかな?)。数値と評価され得る場合もreferenceレベルでは文字列として参照されます。

ページ移動