幻日幻月環

作成した伺かの更新情報などをつぶやくところ

シェル内でランダム動作

この記事は伺か Advent Calendar 2015の4日目に投稿したものです。

surfaces.txtの記述で、アニメーションのランダム選択が出来ます。
それを踏まえて、ゴーストを放置していると体を揺すったり目を閉じたりするアニメーションを作ってみます。
利点は、さくらスクリプトなどを出さないため、後々の処理が楽な点が上げられます。
例えば、これをトークで作ろうと思うと、「今トーク中か?」「前から何秒たったか?」など色々な判定が必要になりますが、surfaces.txtのアニメーションはトークに干渉しないため、判定すること自体が不要になります。
PageTop

後から全サーフェスに一括追加する

この記事は伺か Advent Calendar 2015の3日目に投稿したものです。

アニメーションや着せ替えなどを一括追加する。
例えば着せ替えを追加したい場合などに、たくさんサーフェス作ったし面倒だ、となるかもしれません。
しかしsurface.appendという記述を使えば、存在するサーフェスにだけ一括でアニメーションなどを追加することが可能です。
PageTop

目パチの頻度

この記事は伺か Advent Calendar 2015の2日目に投稿したものです。

ゴーストの多くというかほとんどに、まばたきのアニメが搭載されています。
コンビゴーストの場合、よーく見てみると、まばたきが全く同じタイミングだったりすることがあると思います。
通じあってるんです、というのもありですが、一度気になるとなんだかすごく気になったりします。

そんなの気にならないよと思っていても、人は意外と予想外のところで影響されてしまうものです。
そう言った内容を紹介する、心理学もどきのエンターテイメント本がコンビニなどに並んでいるのも見かけると思います。
案外そんな細かなところで印象が大きく変化することもあり、なかなか侮れないのです。

そこで、今回は瞬きのタイミングを微調整し、人のリラックス状況に近づけてみることにしましょう。
一緒にいる感じが強くなるかもしれません。

詳細は続きに。
PageTop

数十秒だけ有効な触り反応領域

この記事は伺か Advent Calendar 2015の1日目に投稿したものです。

今回は、ゴーストの触り反応領域だけを追加する方法を示します。
通常は、透明な画像を着せ替えで装着させ、そこに触り反応を設定し、その着せ替えを右クリックメニューに表示しないようにすることが多いと思います。
今回の方法は、他のサーフェスに変わるまでの間だけ、触り反応を追加する方法です。

利点
・フラグ管理などの処理が不要

一言で言うとこれに尽きます。つまりゴースト側の処理がすごく簡単ですみます。
着せ替えで実装すると、着せ替え変更のたびにイベントが呼び出されたり、オンオフ管理が必要になります。
ゴースト上で使う上でそういった管理が面倒な部分が不要になります。

欠点
・追加したままに出来ない

触り反応領域をずっと追加したままにしたいなら、素直に着せ替えで実装しましょう。

スクリプトと使い方は続きに。
PageTop

折りたたみ式メニュー

メニューの項目がある程度増えてくると、大きなバルーンにして表示したり、サブメニューを作ったりと頭を悩ませることもあると思います。
ただ、大きなバルーンは、慣例として入っていることが多いものの、バルーンによっては対応していない可能性もあります。
ここでは、メニューを折りたたみ式にすることで、1つのバルーンに多くの項目を収める方法と、そのスクリプトのサンプル(里々、YAYA)を紹介します。
内容は続きに。
PageTop

中央表示と右寄せ表示

この方法は、SSP 2.5.31で実装された
\f[align,right]と\f[align,center]で実装できるようになりました。
里々では以下のように書けば簡単に表現できます。


\f[align,right]この行は右揃え
\f[align,center]この行は中央揃え
特になにもないこの行は左揃え

----

バルーンへの表示は、基本的に左詰めで表示されます。
いままでは中央表示や右寄せ表示が出来なかったのですが、SSP2.3.23以降は可能になりました。
(現在のフォントの半角サイズの横ピクセル数を取れるようになったため)
バルーンで中央表示と右寄せ表示を行う方法と、里々で実装したサンプルを示します。
内容は続きに。
PageTop

座標自動調整

2016/01/15
表記を全体的に修正、注意書き追加

02/04 21:58
シェル位置初期化(Ctrl + Shift + F12)に対応

02/04 20:00
マルチモニタで動作しない点を修正
(moveでの基準座標をscreenからprimaryscreenに変更)

----
浮遊するキャラクターは、上下にゆっくりふわふわ動くアニメーションを搭載していることが多いです。
しかし、時間が経つにつれ徐々に位置がずれて下にずれていってしまう現象が置きます。

数十分程度で、明らかに目に見えるほど位置がずれてしまうようです。
このずれをランダムトークのたびに修正する方法について、記述します。

ただし、環境によっては想定通りの動きをしない場合もあるようです。
着せ替えを持たないのであれば、surfaces.txtのアニメーションをmoveではなく、上下に余白を持たせてreplaceで行えば、そもそも問題は発生しません。
PageTop

サーフェスごとにバルーンの位置を補正

ゴーストを作る際、シェル画像を用意することが多いと思います。

もし、サーフェスに使う画像の大きさがそれぞれ異なる場合、バルーンの位置がずれてしまうという問題があります。
すると、トーク中にサーフェスが変わるたびにバルーンが移動するため、非常にトークが読みづらくなってしまいます。

一番簡単なのは、画像に余白を追加して、全てのサーフェス用画像のサイズを揃えることです。
別の解決法として、今回は、画像に手を加えずにsurfaces.txtでの記述で補正する方法を紹介します。
PageTop

ソロゴーストむけスクリプト

2017/07/17
シェル変更時に問題が起こる可能性があるため、対処法を追記
2016/08/16
下記SSP2.4以降の機能がSSP2.3.77から使えるようになったため、スクリプトが正常動作することを確認
2016/06/01
SSP2.4以降で使える簡単な方法を追加
2015/12/12 00:53
里々サンプルに使う時の注意を追加
2015/03/09 00:43
説明を加筆修正

----
\0しかキャラクターのいないソロゴーストであっても、\1側のバルーンを使用することは多いと思います。
例えば以下がありえるでしょうか。
・選択肢の表示
・ユーザーをキャラクターと見立てた時の心情描写

ただ、ソロゴーストだと、\1は透明サーフェスなどを用いるため、バルーンの移動が面倒です。
例えば、画面位置を移動させて利用していると、\1側バルーンが離れたところに出てくるという事態が起こります。
これを解決するために、\0のドラッグ移動終了時にバルーンが追跡するさくらスクリプトを紹介します。
PageTop