見出し画像

伺か制作関連メモ

個人的なメモなので、わかりやすくはないです。
随時更新する予定。

★ツイまとめ【https://togetter.com/li/1931834

ゴーストをちまちまと弄る上で色々情報を漁るんだけども、いかんせん大きく流行ったのが何年も前の話なので、情報が古い・ページが消えているといったことが多発する。マジでつらい。
しかもあれこれ書き足していくにつれ、後から見直した時にぐちゃぐちゃしてて分かりにくいというおまけつき。ファイル間を跨いで書くなバカ!
一度手を出してから2年程のブランクを経て再開したので、昔書いたとことかマジで整理し直さないと訳分からん…というのもあり…

なので上手く動いたやつを見やすく残しておこうという試みです。
決して既存のwiki等で該当ページを一々探すのが面倒臭いとかじゃないです

本ページは主に里々wikiやUKADOC Project さくらスクリプトリスト等を参考にしています。何か問題があれば消しますのでゆるしてください…(一部別サイト様を参考にしているものは各引用URL参照されたし)


※時々挟まってる「##例文##」は注釈



■トーク関係

◆ランダムトーク

★ワード代入


:お昼ご飯は(昼食メニュー)がいいな~

@昼食メニュー
カツ丼
ラーメン
ハンバーグ
カレー

これでランダムトークを水増しや!!!


★乱数で発生するトーク


$肩凝りトーク=(乱数1~20)
>肩凝りの話【タブ】(肩凝りトーク)==1
()


*肩凝りの話
:最近めっちゃ肩凝りが酷くて困るわ~…
:揉まねえぞ
:まだ何も言ってないんですけど

※(乱数1~n)のn数が大きいほど喋る確率が低くなる


★連鎖するトーク


:カントリーマアムが年々小さくなっていってる事実に憤慨しています…
:大人しくコンビニでミニ買え
:え~~
$次のトーク【タブ】カントリーマアムミニ

*カントリーマアムミニ
:そういやさっきミニ買えって言ってたけど、何でミニ?
:普通サイズが小さくなりすぎて、今やサイズ差があまりないミニの方が安価でコスパが良いらしい。知らんけど。
:マジかよ…

ミニの方がコスパ良いのはマジだと思う(比較確認済)


★選択肢クイズ


:クイズ!この中で仲間外れはどれ?
_犬
_猿
_雉

*犬
:はずれ~

*猿
:違いま~す

*雉
:正解!こいつだけ濁点ついてるからでーす
:しょーもな…

「$○タイマ【タブ】数値」を使えば時間切れトーク出来そう
やったことないから分からんけど…


★文字サイズを変える

『ワァ(9009)ーー\f[height,+2]ー(9005)ーー\f[height,+4]ーーーッ!!』\f[height,default]
##段々大きくなる##


『ワァ(9009)ーー\f[height,-2]ー(9005)ーー\f[height,-4]ーーーッ!!』\f[height,default]
##段々小さくなる##



◆イベント

★起動時にゴースト更新を確認する&大量更新時の対応トーク

*起動
:\![updatebymyself,checkonly]

*OnUpdateCheckComplete
>更新確認結果なし【タブ】(R0)==none

:更新きてるみたいだけど、どうする?
\![*]\q[更新する,起動時更新する]  \![*]\q[更新しない,起動時更新しない]

*起動時更新する
:了解。\![updatebymyself]

*起動時更新しない
:わかった

*更新確認結果なし
>更新なし起動
##通常の起動トークを全て「*更新なし起動」に書き換えておく##


*OnUpdateBegin
:(8)更新情報を取得中。

*OnUpdateReady
>大量更新【タブ】(R0)>10

:(R0)個のファイルが更新されてるね。
$更新【タブ】通常


*大量更新
:(R0)個もあるみたい。一気にやるよ~
$更新【タブ】大量

*大量DL中
:\_q(8)(R0)\_q

*大量MD待ち
:\_q確認…\_q

*大量照合
:\_q一致。\_q



*OnUpdate.OnDownloadBegin
>大量DL中【タブ】(更新)==大量
:(8)\_q(R0)をダウンロード中。\_q

# \_qはメッセージを一瞬で表示する「さくらスクリプト」。

*OnUpdate.OnMD5CompareBegin
>大量MD待ち【タブ】(更新)==大量
:\_q(R0)のMD5照合…\_q

*OnUpdate.OnMD5CompareComplete
>大量照合【タブ】(更新)==大量
:\_q (R1)\_q
\_q (R2)\_q
一致。

*OnUpdate.OnMD5CompareFailure
:\_q (R1)\_q
\_q (R2)\_q
不一致……w3(1)うん?

※太字部分が起動時更新チェック&大量更新時との分岐



◆メインメニュー

★表示項目を弄る

dic06_String.txtを弄るだけ。
更新やアンインストール等の名称を変更出来る。
リンクも好きなものを置ける。
トークでリンク先について説明させることも出来る。



◆バルーンメニュー

★基本

*0Faceつつかれ
>メニュー
##つつきは被らなければどこでも可##

*メニュー
:\b[2]\*\_qメニュー
##\b[2]でデカいバルーン表示になる##

\f[color,#808080]----基本----\f[color,default]\n[half]
##メニュー内をジャンル毎に区切るのに使える##

選択肢使ってページ切替も出来る


★折り畳みメニュー

見出しクリックで展開、再度クリックで収納出来るやつ

*折り畳みメニュー
:\b[2]\*\_qメニュー

(when,(表示カテゴリA) == 1,#←引数区切り文字、この2つのカンマは両方共全角
【タブ】\__q[OnCategoryChangeA,0][-]折り畳みA\n\__q
【タブ】  \q[◇例1,例1-1]\n
【タブ】  \q[◇例2,例1-2]\n
【タブ】  \q[◇例3,例1-3]\n
【タブ】  \q[◇例4,例1-4]
【タブ】,#←引数区切り文字、このカンマは全角
【タブ】\__q[OnCategoryChangeA,1][+]折り畳みA\__q

(when,(表示カテゴリB) == 1,#←引数区切り文字、この2つのカンマは両方共全角
【タブ】\__q[OnCategoryChangeB,0][-]折り畳みB\n\__q
【タブ】  \q[◇例5,例1-5]\n
【タブ】  \q[◇例6,例1-6]\n
【タブ】  \q[◇例7,例1-7]\n
【タブ】  \q[◇例8,例1-8]
【タブ】,#←引数区切り文字、このカンマは全角
【タブ】\__q[OnCategoryChangeB,1][+]折り畳みB\__q


*OnCategoryChangeA
$表示カテゴリA (R0)
>折り畳みメニュー

*OnCategoryChangeB
$表示カテゴリB (R0)
>折り畳みメニュー


##表示タイトルと同一ならここは不要##
*例1-1
>◇見本1
##表示とジャンプ先を違う名前にしたいなら必要##

参考サイト様 幻日幻月環「折りたたみ式メニュー」
http://earlduant.blog.fc2.com/blog-entry-467.html


展開と収納で表示名を変える場合

(when,(表示カテゴリC) == 1,#←引数区切り文字、この2つのカンマは両方共全角
【タブ】\__q[OnCategoryChangeC,0][-]展開中C\n\__q
【タブ】  \q[◇例1,例2-1]\n
【タブ】  \q[◇例2,例2-2]\n
【タブ】  \q[◇例3,例2-3]
【タブ】,#←引数区切り文字、このカンマは全角
【タブ】\__q[OnCategoryChangeC,1][+]折り畳みC\__q

※0が展開時、1が折り畳み時に表示されるので、逆にならないよう注意




■シェル関係

◆差分設定

##基本##
surface0
{
element0,base,surface0000.png,0,0
}

##差分##
surface1
{
//No.0000 本体-半目
element0,overlay,surface0000.png,0,0
element1,overlay,surface1000.png,0,0
}

##着せ替え(0-nやn番は差分の数より大きくする)##
surface.append0-100
{
// アニメーション100番 上着
animation100.interval,bind
animation100.pattern0,overlay,1040,0,0,0
}

シェル関係全般 参考サイト様 「伺かのシェルの作り方」
http://earlduant.github.io/ukagaka-shell-description/surfaces.html


◆当たり判定

##さとりすとの当たり判定作成を使え##

##当たり判定一括##
surface.append0-100
{
collisionex1,Head,polygon,59,145,222,145,220,121,207,100,186,82,142,73,98,84,73,109
collision2,90,173,121,208,RightEye
collision3,146,165,182,200,LeftEye
collisionex4,Face,polygon,80,146,201,146,199,201,189,216,174,228,150,239,124,239,101,232,88,217,82,192
collisionex5,Body,polygon,132,244,181,234,206,249,188,259,195,315,159,355,149,352,139,330,144,320,117,260
collisionex6,RightArm,polygon,116,263,133,302,131,320,149,357,135,358,110,319
collisionex7,LeftArm,polygon,191,260,208,251,216,322,201,334,163,353,197,316
collisionex8,RightLeg,polygon,113,329,129,352,134,359,148,365,167,368,171,376,180,380,195,395,153,395,131,394,76,364,68,342,74,327
collisionex9,LeftLeg,polygon,143,360,173,350,195,337,225,334,232,360,206,382,187,383,170,368
}

## collisionex1,ABCD,polygon=多角 ##
## collision=四角 ##

これにしてようやく起動時の微妙なエラーが消えました
試行錯誤の賜物だな!

追記:2値画像で指定できるようになったらしい!!
   すごいぜ…


◆アニメーション

1,普通のやつ

surface.append0
{
// アニメーション0番 瞬き
animation0.interval,random,3
animation0.pattern0,overlay,1000,30,0,0
animation0.pattern1,overlay,1001,30,0,0
animation0.pattern2,overlay,1000,30,0,0
animation0.pattern3,overlay,-1,30,0,0
}


差分反映した瞬きも出来る

surface8
{
//No.0007 本体-アホ毛
element0,overlay,surface1007.png,0,0
}

surface.append8
{
// アニメーション0番 アホ毛あり瞬き
animation0.interval,random,3
animation0.pattern0,overlay,1000,30,0,0
animation0.pattern1,overlay,1001,30,0,0
animation0.pattern2,overlay,1000,30,0,0
animation0.pattern3,overlay,-1,30,0,0
}

要はsurface.appendの番号を、差分の番号と一緒にすれば良い


2,複数のアニメーションからランダムに表示させるやつ

surface.append8000
{
// アニメーション0番 瞬き
animation0.interval,random,4
animation0.pattern0,alternativestart,(1,2,3)

animation1.interval,never
animation1.pattern0,overlay,1000,150,0,0
animation1.pattern1,overlay,1001,1500,0,0
animation1.pattern2,overlay,1000,1500,0,0
animation1.pattern3,overlay,1001,150,0,0
animation1.pattern4,overlay,-1,30,0,0

animation2.interval,never
animation2.pattern0,overlay,1000,10,0,0
animation2.pattern1,overlay,1001,150,0,0
animation2.pattern2,overlay,1002,1500,0,0
animation2.pattern3,overlay,1001,150,0,0
animation2.pattern4,overlay,-1,150,0,0

animation3.interval,never
animation3.pattern0,overlay,1000,10,0,0
animation3.pattern1,overlay,1002,150,0,0
animation3.pattern2,overlay,1005,1500,0,0
animation3.pattern3,overlay,1001,1500,0,0
animation3.pattern4,overlay,1005,150,0,0
animation3.pattern5,overlay,1001,1500,0,0
animation3.pattern6,overlay,-1,30,0,0
}

neverはalternativestartの時に使うやつ
animation番号が被らなければいくらでも増やせる


3,トークでアニメーション差分をずっと再生させたい時(歌唱など)

*歌唱
:(8000)\![lock,repaint]

*歌唱停止
\![unlock,repaint]



■機能関係

◆計算系

<例>ソシャゲの周回ノルマを計算する

*◆途中経過から残りのノルマを計算
:まず残り日数はあとどれくらい?
\![open,inputbox,残り日数]

*残り日数を教えてもらった
:それと目標数はいくつだっけ?
\![open,inputbox,目標数]

*目標数を教えてもらった
:(目標数)個だね。
それじゃあ今持ってる数は?
\![open,inputbox,現在所持数]

*現在所持数を教えてもらった
:(現在所持数)個…っと。
1周大体いくつくらい落ちる?
\![open,inputbox,平均泥数]

*平均泥数を教えてもらった
:\b[2](平均泥数)個くらいだね。
そうすると…
$残り必要数=(目標数)-(現在所持数)
$残り周回数=(残り必要数)÷(平均泥数)
$1日周回数=(残り周回数)÷(残り日数)
$1日周回数予備=(1日周回数)+1
>周回ノルマ計算結果


*周回ノルマ計算結果

目標数まで、あと(残り周回数)周くらい必要だよ。
1日(1日周回数)~(1日周回数予備)周すれば間に合うね。

()で代入しまくって計算してるだけ

※ちなみに小数点以下は切り捨てられるっぽい?ので、
絶対切り上げたい計算の時は+1を加えて対処してる
解決方法が見つからなかったので……(諦め)


◆音楽再生

VaLCa使え。

VaLCa使え。


◆カレンダー

*◇カレンダー
:カレンダーどうぞ。
\![open,calendar]

カレンダーはSSPに標準装備されてるから楽だな


◆リンクを開く

*◇wikiを見る
:_a[wikiURL]wiki見に行く_aか?
##_a○○_aでアンカーつけると色が変わる##

*wikiURL
:\j[https://wikiwiki.jp/○○/]
##上記はdicAnchor.txtに記述する##

リンクを開くブラウザは設定から変えられる…らしい


◆アプリを開く

<例>win標準の電卓を開く

*◇電卓
:電卓持ってきたよ。
\![open,file,calc.exe]
##calc.exeの部分に開きたいアプリケーション名を入れれば多分何でも開けると思う##


◆ミニゲーム

★チンチロリンもどき

1,サイコロを表示させる

@サイコロ表示1
┏━━━┓\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃ ● ┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示2
┏━━━┓\_l[@-5em,@1em]φ
┃◯  ┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃  ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示3
┏━━━┓\_l[@-5em,@1em]φ
┃◯  ┃\_l[@-5em,@1em]φ
┃ ◯ ┃\_l[@-5em,@1em]φ
┃  ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示4
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示5
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃ ◯ ┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示6
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]

参考サイト様 幻日幻月環「バルーンにサイコロを表示」
http://earlduant.blog.fc2.com/blog-entry-387.html


2,ブタ・ゾロ目・ピンゾロの判定

##チンチロリンのルール##
1.賽子は2個
2.3回勝負で合計点の高い方が勝ち
3.点数表 役なし=1点
      ゾロ目=2点
      ピンゾロ=3点


##サイコロの判定##
##>イベ【タブ】(A)==n&&(B)==nで「nのゾロ目」の場合のみジャンプする##

*チンチロリンA1
$サイコロ1=(乱数1~6)
$サイコロ2=(乱数1~6)
>チンチロリンA1ピン【タブ】(サイコロ1)==1&&(サイコロ2)==1
>チンチロリンA1ゾロ【タブ】(サイコロ1)==2&&(サイコロ2)==2
>チンチロリンA1ゾロ【タブ】(サイコロ1)==3&&(サイコロ2)==3
>チンチロリンA1ゾロ【タブ】(サイコロ1)==4&&(サイコロ2)==4
>チンチロリンA1ゾロ【タブ】(サイコロ1)==5&&(サイコロ2)==5
>チンチロリンA1ゾロ【タブ】(サイコロ1)==6&&(サイコロ2)==6

:まずは(ユーザ名)から。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。役なしだから1点。\n[half]
$チンチロリンA1結果=1
\![*]\q[賽子を振る,チンチロリンB1]


###インラインイベント
*チンチロリンA1ゾロ
:まずは(ユーザ名)から。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ゾロ目だから2点。\n[half]
$チンチロリンA1結果=2
\![*]\q[賽子を振る,チンチロリンB1]


###インラインイベント
*チンチロリンA1ピン
:まずは(ユーザ名)から。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ピンゾロだから3点。\n[half]
$チンチロリンA1結果=3
\![*]\q[賽子を振る,チンチロリンB1]


*チンチロリンB1
$サイコロ1=(乱数1~6)
$サイコロ2=(乱数1~6)
>チンチロリンB1ピン【タブ】(サイコロ1)==1&&(サイコロ2)==1
>チンチロリンB1ゾロ【タブ】(サイコロ1)==2&&(サイコロ2)==2
>チンチロリンB1ゾロ【タブ】(サイコロ1)==3&&(サイコロ2)==3
>チンチロリンB1ゾロ【タブ】(サイコロ1)==4&&(サイコロ2)==4
>チンチロリンB1ゾロ【タブ】(サイコロ1)==5&&(サイコロ2)==5
>チンチロリンB1ゾロ【タブ】(サイコロ1)==6&&(サイコロ2)==6
:次は俺な。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。役なしだから1点。\n[half]
$チンチロリンB1結果=1
\![*]\q[賽子を振る,チンチロリンA2]


###インラインイベント
*チンチロリンB1ゾロ
:次は俺な。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ゾロ目だから2点。\n[half]
$チンチロリンB1結果=2
\![*]\q[賽子を振る,チンチロリンA2]


###インラインイベント
*チンチロリンB1ピン
:次は俺な。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ピンゾロだから3点。\n[half]
$チンチロリンB1結果=3
\![*]\q[賽子を振る,チンチロリンA2]

~~~~~~~以下略~~~~~~~

*チンチロリンB3
$サイコロ1=(乱数1~6)
$サイコロ2=(乱数1~6)
>チンチロリンB3ピン【タブ】(サイコロ1)==1&&(サイコロ2)==1
>チンチロリンB3ゾロ【タブ】(サイコロ1)==2&&(サイコロ2)==2
>チンチロリンB3ゾロ【タブ】(サイコロ1)==3&&(サイコロ2)==3
>チンチロリンB3ゾロ【タブ】(サイコロ1)==4&&(サイコロ2)==4
>チンチロリンB3ゾロ【タブ】(サイコロ1)==5&&(サイコロ2)==5
>チンチロリンB3ゾロ【タブ】(サイコロ1)==6&&(サイコロ2)==6
:俺の番だ。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。役なしだから1点。\n[half]
$チンチロリンB3結果=1
\![*]\q[最終結果,チンチロリン合計点]


###インラインイベント
*チンチロリンB3ゾロ
:俺の番だ。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ゾロ目だから2点。\n[half]
$チンチロリンB3結果=2
\![*]\q[最終結果,チンチロリン合計点]


###インラインイベント
*チンチロリンB3ピン
:俺の番だ。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)だ。ピンゾロだから3点。\n[half]
$チンチロリンB3結果=3
\![*]\q[最終結果,チンチロリン合計点]



*チンチロリン合計点
$チンチロリンA合計点=(チンチロリンA1結果)+(チンチロリンA2結果)+(チンチロリンA3結果)
$チンチロリンB合計点=(チンチロリンB1結果)+(チンチロリンB2結果)+(チンチロリンB3結果)
>チンチロリンA勝利【タブ】(チンチロリンA合計点)>(チンチロリンB合計点)
>チンチロリンB勝利【タブ】(チンチロリンB合計点)>(チンチロリンA合計点)
>チンチロリン引き分け【タブ】(compare,(チンチロリンA合計点),(チンチロリンB合計点))



*チンチロリンA勝利
:A (チンチロリンA合計点)点  B (チンチロリンB合計点)点

*チンチロリンB勝利
:A (チンチロリンA合計点)点  B (チンチロリンB合計点)点

*チンチロリン引き分け
:A (チンチロリンA合計点)点  B (チンチロリンB合計点)点

この記事が気に入ったらサポートをしてみませんか?