幻日幻月環

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

複数の変数の中から最多と最小を取得

スクリプトの相談がありましたので、返信します。

>お時間ありましたら教えていただけないでしょうか。
つい最近伺かに触れて、ゴーストも作り始めたのですが、触った回数などの数を比べて一番多い数や少ない数を求める事は出来るのでしょうか?
例としては
頭を触った数10回腕を触った数30回足を触った数15回
となっていた場合
全てを比べて一番多く触った数30回
一番多く触った部位腕
といった風にできないでしょうか?

稚拙な質問ですいません。

素晴らしいゴーストを作って下さってありがとうございます。
ロストユーサムウェアは伺かに触れて初めての日に触れましたが、それでも圧倒されました。
応援しています、お体ご自愛下さい。


里々で作成されているとして、相談いただいた内容の処理は里々で作ることが出来ます。
追記の内容をご確認ください。

記事末尾に数字のみを列挙して最大と最小を取得するものを付記します。
PageTop

自動生成リスト

2016:04:25 21:10 修正
----

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、全項目のリストを自動生成する機能を作成します。
以下のようなフッター付きのリストを、自動生成します。
satori_list_sample.png
また、リスト選択時の個別のトークの末尾に、自動的にリストに戻る選択肢がつきます。
satori_list_sample2.png
少し処理が複雑なので、解説は長くなりすぎるためしません。
saoriのように、「そういう機能を使えるようになるスクリプト」として使ってください。
使い方は続きにあります。
PageTop

手をかさねるというマウス動作

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

マウス操作による触り反応といえば、撫で、つつき、それとホイールクリックと回転が主です。
右クリックジェスチャー機能を使っているゴーストもいますが、もう少し直感的な操作方法を1つあげてみます。

マウスを置きっぱなしにした時に発生する処理を紹介します。
手をかさねる、という表現に使えるでしょう。
例えば、頭に手を置いたままにするとか、手を重ねたままにするとか、比較的トークも書きやすく、なおかつユーザ側からしても直感的な操作となります。
ただし、ゴーストでは一般的な動作ではないため、readmeやメニューの表示時など、そういった反応があることを示しておいた方が良いでしょう。
PageTop

頭撫で反応を単語を組み合わせて生成する

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

好感度などによって触り反応が変化する場合を考えます。
大抵、ある一定の値以下の反応、それより上の反応で分けることが多いと思います。
そうすると急に反応が変わるので、ゲームとしてはわかりやすいですが、キャラクターとしてはいきなり反応が変わるのは不自然さがあるかもしれません。
回避する方法としては、大きなイベントを挟むことで態度が軟化するなどがあるでしょうか。

今回は、反応をいくつかの単語に分けて、組み合わせる方法を示します。
パラメータを1つ設定することで、使われる単語が入れ替わるようにし、比較的なだらかにセリフを変化させます。
里々の単語群の機能を使うため、他のSHIORIだと別の組み方をする必要があります。
パラメータを設定することで反応の内容が変わるため、一時的に反応が悪化するなどの処理が簡単です。
PageTop

タイマーの使い方

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、タイマーの使い方。
ゴースト作者さんが増えているようなので、タイマーのサンプルスクリプトを示します。

詳細は続きに。
PageTop

着せ替えのバルーン自動表示

2017/10/24追記
SSP2.4以降、右クリックメニューに「着せ替えエクスプローラー」が追加されたため、このように着せ替えだけを行うリスト表示は不要になりました。

----
この記事は伺か Advent Calendar 2014に投稿したものです。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

シェル自体の作り方は、シェルの作り方、着せ替えの作り方は、着せ替えやアニメーションの作り方で確認してみてください。

今回は、着せ替えのバルーン表示。
着せ替えは右クリックから実行しますが、数が多い場合はちょっと面倒になることもあるかもしれません。
そこで、自動でバルーンに着せ替えメニューを表示する方法を示します。
表示した内容をクリックすると、着せ替えが行われます。
また、「終了する」の選択肢を選ぶまで、バルーンが出たままになるので、色々試すことが出来ます。
着せ替えのあるシェルなら自動で着せ替えメニューを生成するので、スクリプトをゴーストの辞書にコピーするだけで使えるようになります。
ただし、全ての着せ替えを表示してしまうので、隠し着せ替えなどがある場合はスクリプトの改造が必要になります。
SSP/2.3.42以降でないと動きません。

詳細は続きに。
PageTop

for文の利用例

この記事は伺か Advent Calendar 2014に投稿したものです。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「for文の利用例」。
過去にもforの解説をしましたので、基本的な解説はそちらを読んでみてください。
今回はその利用例と、上限を好きに決めるサンプルの提示を行います。

詳細は続きに。
PageTop

カードゲームの山札

この記事は伺か Advent Calendar 2014に投稿したものです。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、単語群でカードゲームの山札を表現する。
里々が持つ重複回避機能を使って、山札のシャッフル機能、一度引いたカードが出ない機能を作ります。

詳細は続きに。
PageTop

バルーンにサイコロを表示

この記事は伺か Advent Calendar 2014に投稿したものです。
この記事にあるスクリプトは、SSP/2.3.34以降で動かすことを前提としています。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、バルーンにサイコロを表示する。
サイコロを振る機能を作りつつ、アスキーアートでその出目を表示してみます。
ただ結果を数字で出すよりも、より視覚的な表現に出来ます。

詳細は続きに。
PageTop

時間切れトーク付き選択肢

2016/04/09追記:
「$タイムアウト先」を削除していることを分かりやすくするよう処理変更
2016/01/04追記:
「$時間切れ選択肢名」を、何かの選択肢を選択時に削除する処理を追加

----
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、選択肢の時間切れを、好きな秒数に設定する
たとえば、「クイズを出して5秒以内に答えなければ、時間切れにする」ということが出来ます。
里々のタイマなどを使っていないため、各トーク内でキャンセル処理を書く必要がないのが利点です。

詳細は続きに。
PageTop

日数差を取得する

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「起動時に、前回起動との日数差を取得する」。
アバウトな管理なら、そんなに難しくはないのですが、厳密に日数差を考えると、月をまたぐ場合、閏月をまたぐ場合など、かなり複雑化してしまいます。
年跨ぎなどの場合や、うるう年も対応していて、あるイベントが発生してから3日以内とか、そういう厳密に日数を知りたい場合に活用出来ます。

続きにあるスクリプトは、フェアフィールドの公式を里々で書いたものです。
1年1月1日からのグレゴリオ暦での経過日数が取得できるので、差を取ることで前回起動時との経過日数が分かります。

また、応用として秒まで計算する方法も記述しています。
特定の日時との秒の差まで算出することもできます。
PageTop

コマンド入力の作成

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
処理の理解にはミニゲームを作れるくらいの知識が必要です。

今回は、「コマンド入力の処理」を作ります。
Rポストと狛犬では、キー入力1個のコマンドなら簡単に作れます。(「tが押された」など)
しかし、複数のキー入力で出来たコマンドを作るのは大変です。(「abcが押された」など)
そこで、これを簡単に作れるようになるスクリプトを紹介します。
PageTop

AIグラフ対応

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、AIグラフを表示する方法を示します。
SSP/2.3.17(13周年エディション)から使えるようになった機能(2.3.18で修正があったため実質2.3.18から)で、グラフ表示することが出来ます。
特に表示する内容がなくても、戦闘力とか適当にステータスを作って表示するのも楽しいかもしれません。
AIグラフを表示したサンプルを以下に示します。
AIgraph.png

ただ、里々の簡易記述になれていると、書き方がややこしいと感じるかもしれません。
今回は、簡単にAIグラフを作成出来る機能を作成しました。ポータルサイト登録と似たような記述で作れます。
続きにスクリプトが入っているので、辞書にコピペして試してみてください。
PageTop

存在しないサーフェスは、別のサーフェスを表示

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「存在しないサーフェスが指定されたら、別サーフェスで代替する方法」を示します。
追加シェルなどを別の方に作ってもらった後で、新たなサーフェスを追加したいということがありえると思います。

例として、masterシェルに新規サーフェスを追加し、トークで使用する場合を考えます。
するとmasterシェルではちゃんと表示されますが、追加シェルではそのサーフェスが存在しないため、サーフェスが消える、変化しないなどの影響が出てしまいます。

そこで、追加したサーフェスが存在するかを判定し、なければ代替用サーフェスを表示する方法を紹介します。
利点は、SSPから送られてくる情報を用いるため、後々追加シェルが新規サーフェスに対応した場合でも、ゴースト側の更新が不要である点です。

今回のものはSSPでしか動作しません。
この方法を使う場合は、配布ページやreadmeに明記しておきましょう。
PageTop

里々で複雑なロジックを書く場合の注意点

2016/01/04追記:
一部表記を修正、最後にメリット・デメリットを追加

----
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々でミニゲームを作れるくらいの知識が必要です。

里々は、(「*」から始まるもの。例:*起動)を実行したとき、「\1\s[10]\0\s[0]」を補完します。
(*を既に実行済みで、さらに別の*を実行したときは、「\1」のみを補完します)
これにより、\Cなどスクリプトの先頭にないと動かないものが使えません。
これを回避するために、$スクリプトの一番頭があるのですが、スクリプトのどこで書いても先頭に入るため、見通しの悪いコードになってしまいがちです。
さらに、余分なさくらスクリプトが大量に入ってしまうので、ログを見て原因箇所を特定するのが難しくなってしまいます。
トーク以外のこともしたい方に向けて、メンテナンス性を考えた記述について記したいと思います。
PageTop

重要トークを確実に見てもらう

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「大事なトークを確実に見てもらう」。
たとえば、何か条件を満たした時、起動時やメニューから、重要なトークをさせることもあると思います。
しかし、マウスクリックしたり、時報トークが入ったり、アンカーをクリックしたりして、トークが中断されることがあります。
だけど、フラグは立つのでもう見ることもできない・・・という悲劇を回避する方法を紹介します。

詳細は続きに。
PageTop

テスト用の辞書を作る

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
また、SSP専用の記述を用いるためSSPでないと動作しません。

今回は、「テスト用の辞書を作る」。
ちょっと思いついた処理を書いたり、試しにトークを書いてテストしたりしたくなることはあると思います。
辞書に書いてテストして、配布するときは消して、とすると消し忘れや干渉などの可能性があります。
そこで、テスト用の辞書を管理する方法を紹介します。

詳細は続きに。
PageTop

ゴースト上でアンケートを実施する

2013/12/16加筆修正
----

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「ゴースト上でアンケートを実施する」。
ゴーストを開発していると、たくさんのユーザーの意見の統計を取りたくなることもあると思います。
ゴースト公開サイトでアンケートを取るのが一般的ですが、そもそもユーザーさんが数多くゴーストを入れている場合、その全てのゴーストの開発ブログをチェックすることはあまり無いと言ってよいでしょう。
喜んで協力してくださるユーザーさんもいますが、そのようなユーザーさんは日頃から意見をくださることが多く、なんとなく使っているというユーザーさんはサイレント・マジョリティとなってしまいがちです。
ゴースト起動時に、ゴースト上でアンケートを取るようにすれば、そのようなユーザーさんからも意見がもらえる可能性があります。
また、バルーンに表示する以上、難しい条件は入りきらないため、質問を簡略化せざるを得ません。
ただし、ユーザー側から考えれば、軽い気持ちでさっと答えるに適したものになるという利点もあります。
結果として気軽に答えてもらいやすくなると思われます。

今回は、web拍手を用いて実現するサンプルを示したいと思います。
ただし、ユーザーさんの環境によっては、SSPが固まったり、正常に送信できないことがあるようです。
動かないこともあると、事前に注意を呼びかけておきましょう。

詳細は続きに。
PageTop

バルーンに文字でドット絵を描く

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「バルーンに無理矢理ハートマークを表示する」。
ハートマークは例で、実際にはバルーンにドット絵を描く機能です。
コピペで動くので適当に触ってみてください。
元となるドット絵があれば、色をつけて表示することも可能です。

ハートマークは\_u[0x2764]で出せます。
ユニコードを用いれば、ハート以外のさまざまな記号を出すことも可能です。
DonさまのUnicodeの使い方を参考にしてみてください。

※実際は、YAYAなど里々以外のSHIORIを使った方が、簡単かつ綺麗かつ処理も軽くなるように書けます。
※別のSHIORIを触るまでの「つなぎ」として使ってください。
PageTop

値を設定するバーの作成

2016/01/15修正

----
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、「値を設定するバーの作成」。
サンプルとして、喋り頻度の設定使います。
コピペで動くので適当にカスタマイズしてみてください。

詳細は続きに。
PageTop