したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

ゴーストをつくろうとしてる人たちが話すスレ

1008任意たん@age推奨:2021/10/31(日) 17:05:30
あやりりすをなんとか機で出力した画像と自作セリフに差し替えてるだけでも楽しい……
とか思ってたけどやってると好感度だの着せ替えだのに挑戦してみたくなる……。頑張るか

1009任意たん@age推奨:2021/11/05(金) 21:12:00
>>1008
ファイトだ!応援してるぜ
躓いたらこことかTwitterとかで聞けば大丈夫さ

1010任意たん@age推奨:2021/11/05(金) 23:12:23
自分が面白いと思える子を作ろう、と思い立って幾星霜…そこには自分が何を面白いと思っていたのかわからなくなったデベ見習いの姿が!
いやまじでどうしたら良いんだろうね、こういう時。

1011任意たん@age推奨:2021/11/06(土) 01:04:49
そういう時こそGhostTownとかうわひょ過去ログに行って
色んな人のゴースト漁ってはちょっとでも興味湧いた子を立たせてみる

人の作品見て「これおもしれぇw」って笑ったりしたら
自分が「面白い」と感じる方向性(例えば天然ボケとか自虐とか)が見えてくるんじゃない?

1012任意たん@age推奨:2021/11/06(土) 12:41:04
簡単な設定メモか何か用意して、コンセプトとかを軽く書いておいた方がいいかもね
忘れそうになったらそれを読み返してみるとか
その辺を基準に作業を進めればあまりブレない…かもしれない
まぁ途中で全く違うやつが生まれることもままあるけど

1013任意たん@age推奨:2021/11/06(土) 18:09:27
ありがとう。気分転換とか原点回帰とか色々考えてみる

1014任意たん@age推奨:2021/11/06(土) 23:59:09
初期版を残しておくと後々見比べて結構出来が良くなったなとか
モチベに繋がるかもしれない

1015任意たん@age推奨:2021/11/15(月) 08:30:19
初期設定はめっちゃ考えてるのに高校の時のある種のトラウマのせいか
プログラミングに抵抗を感じてしまう
いうてプログラミングより楽をしようとすれば簡単なのだけども

1016任意たん@age推奨:2021/11/15(月) 11:04:31
設定あるならもう初回起動トークから始めてしまおう
テンプレートのポストおかーさんDLして書き始めよう

1017任意たん@age推奨:2021/12/27(月) 21:01:46
やり方がわからない場合でもこちらで大丈夫でしょうか?
web拍手あてにゴーストからコメントをもらうようにしたいのですが、メッセージに
replace_after.txtで指定した変換がそのまま送信されてしまいます。
「・」が「・\w3」と表示される感じです。
これをそのまま「・」と表示する方法はありますか?

1018任意たん@age推奨:2021/12/27(月) 21:43:02
OnTranslateを使ってください。
OnTranslateの(R0)には、replace_after.txt変換後のトークが入っています。
拍手を送るさくらスクリプトを出力するトークでだけ、ウェイトを空白に置換する処理を入れてください。

サンプル
###ここから
*拍手送信
:拍手送信します。
\![execute,http-post,〜〜](set,一時的にウェイト無効,1)

#以下では、拍手送信時だけ「\w3」と「\w5」を無効にしています。
#必要に応じて「\w5」をreplaceする行をコピーして置換の対象を増やしてください。
*OnTranslate
(when,(変数「一時的にウェイト無効」の存在)
,(set(バイト値,1)一時変数(バイト値,1)(replace(バイト値,1)(R0)(バイト値,1)\w3(バイト値,1)))
(set(バイト値,1)一時変数(バイト値,1)(replace(バイト値,1)(一時変数)(バイト値,1)\w5(バイト値,1)))
(一時変数)(set,一時的にウェイト無効,)#最後にフラグを削除している
,#ウェイト無効フラグがないときは何もしない

###ここまで

1019任意たん@age推奨:2021/12/27(月) 22:19:10
>>1018
ありがとうございます!助かりました!

1020任意たん@age推奨:2022/01/15(土) 12:39:57
シェルの質問です。
シェルを変換ソフトで縮小したいのですが非透過pngが透過pngに変換され差分の画像がうまく表示されません。
非透過png→非透過png のリサイズができるソフトか
透過png→非透過png に変換できるソフトをご存じでしたら教えていただきたいです。
お願いいたします。
(SSPで縮小表示できるのは知っていますが、元画像が大きいので縮小して配布したいです)

1021任意たん@age推奨:2022/01/15(土) 13:16:05
GIMPでいいんじゃないか?

1022任意たん@age推奨:2022/01/15(土) 13:42:23
>>1021
レスありがとうございます。
画像の枚数が多いので一括で変換できるものがあれば知りたいです。
後だしですみません…。

1023任意たん@age推奨:2022/01/15(土) 16:36:09
>>1020
imgctl_saori.dllを使ってみよう。使い方覚えると楽しいよ。
http://whiteball.m7.coreserver.jp/

里々ならこんな感じで。(satori_confのSAORIにはimgctlで登録)


:縮小処理開始!
(set,単語群「縮小するファイル」の重複回避,昇順、トーク中)φ
(loop,縮小するループ,(単語群「縮小するファイル」の数))

#imgctl_saori.dllからのパスを指定する。
@縮小するファイル
..\..\image\sample0.png
..\..\image\sample1.png
..\..\image\sample2.png
..\..\image\sample3.png
..\..\image\sample4.png
..\..\image\sample5.png

#高さに合わせるなら-1とか指定する。
@縮小後の幅
100

#幅に合わせるなら-1とか指定する。
@縮小後の高さ
50

#元のファイルに上書きする。困るならbackupをとっておくか、縮小後のpathを適当に弄って。
@縮小するループ
(set,tmp.filename,(縮小するファイル))φ
(call,縮小する,(tmp.filename),(tmp.filename),(縮小後の幅),(縮小後の高さ))φ
(set,tmp.filename,)

#A0: 縮小前のファイルパス
#A1: 縮小後のファイルパス
#A2: 縮小後の幅(負値を指定すると高さに合わせてアスペクト比を保つ)
#A3: 縮小後の高さ(負値を指定すると幅に合わせてアスペクト比を保つ)
@縮小する
(set,tmp.ID,(imgctl,ToDIB,(A0)))φ
(imgctl,ResizeDIB,(tmp.ID),(A2),(A3))φ
(imgctl,DIBtoPNG,(A1),(tmp.ID),0)φ
(imgctl,DeleteDIB,(tmp.ID))φ
(set,tmp.ID,)

1024任意たん@age推奨:2022/01/16(日) 09:13:28
色々工夫するよりPhotoshopのバッチ処理でいいんじゃないの
フォトプランで月千円だし

1025任意たん@age推奨:2022/01/16(日) 13:38:42
ありがとうございます。
バッチ試してみます。

1026任意たん@age推奨:2022/01/16(日) 14:17:26
浮子屋さんのところの「ふちどり。」というソフトも便利です。名前の通りの縁取り用途以外にも、プレビューしつつ綺麗に縮小できます。
今回のケースはPNA不使用のようですが、PNA込みで縮小したり、透過情報付きPNGと不透過PNG+PNAを相互に変換したりなども。
http://ukiya.sakura.ne.jp/

なんか回し者みたいになってしまった…

1027任意たん@age推奨:2022/01/16(日) 20:06:37
>>1026
一瞬でできました!しかもアニメーションもelementも奇麗に再現されています。
ありがとうございます。
もっとみんなに広まって欲しいです!

なんか回しm(ry

1028任意たん@age推奨:2022/01/28(金) 23:17:32
バルーン同梱ゴーストでinstall.txtに
balloon.source.directory,balloon
を記載するとバルーンフォルダにインストールできないのですが
書き方が違うのでしょうか?
こちらを参考にしました。
http://ssp.shillest.net/ukadoc/manual/descript_install.html

1029任意たん@age推奨:2022/01/29(土) 12:57:31
>>1028
「balloon.source.directory,」は作ったアーカイブ(narファイル)内のフォルダを指定します。
「balloon.directory,」でインストール先のballoonフォルダ内のフォルダ名を指定してください。

もしnarファイル内のフォルダ名とballoonフォルダ内のフォルダ名が一緒なら
「balloon.directory,」のみで動作します。

1030任意たん@age推奨:2022/01/29(土) 15:12:13
>>1029
アーカイブ内なんですね;
詳しいご説明ありがとうございます!

1031任意たん@age推奨:2022/02/01(火) 16:11:35
ゴースト制作しているけど
感想もらったことない。

何か感想もらえるようにするコツとかないですか?
合作みたいな企画ものは自分には合わないので参加しない予定です。

1032任意たん@age推奨:2022/02/01(火) 16:55:06
ゴーストにコメント送る機能つけるとか?

1033任意たん@age推奨:2022/02/01(火) 20:10:04
感想をもらいやすくする環境を作ろう。

Web拍手やメールフォームなどの、匿名で感想を送れるツールを設置したり、ゴーストを公開してる場所からリンクを貼るとか。
拍手は、やり方を調べれば、ゴーストから拍手宛にメッセージを送る機能も実装できるよ。

何かしら感想を伝えたくなる様なゴーストだったら、いずれコメントのひとつ位来るんじゃないかな。

1034任意たん@age推奨:2022/02/02(水) 03:22:04
右クリックメニューやゴースト内のメニューにWeb拍手があると、一言送り易くていいと思います
あとは、感想欲しいです!意見求めてます!ってゴーストに直接アピールさせるとか…、かな?

1035sage:2022/02/15(火) 23:30:55
着せ替えで翼など背面の着せ替えを行いたい場合どうしたらいいでしょうか?
surfaces.txtで何とかできますか?
それとも見えるところぎりぎりで絵を描くしかないでしょうか?

1036任意たん@age推奨:2022/02/16(水) 05:49:56
>>1035
interpolateをつかうのはどうだろう?

surface0
{
// 服1の定義 アニメーションIDは0
animation0.interval,bind
animation0.pattern0,interpolate,500,0,0,0 //ベースレイヤの透明度に応じて,surface500を,ウエイト0で,X座標0,Y座標0に 重ねる。
}
多分この書式で出来る筈

1037任意たん@age推奨:2022/02/16(水) 21:05:56
>>1036
できました!ありがとうございます。
UKADOC project読んでいたのに理解できず気付きませんでした・・・

10381036:2022/02/17(木) 04:44:40
>>1037
ゴーストなのか追加シェルなのかわからんけれども、完成&公開を待ってますぞよ。

1039任意たん@age推奨:2022/02/17(木) 20:44:35
>>1038
ありがとうございます!

1040任意たん@age推奨:2022/03/28(月) 22:51:12
里々の $文「〜」の重複回避 でランダムトークの重複回避をしたいと思ったのですが、可能でしょうか?
$文「」の重複回避【タブ】昇順、起動中 で試したのですが、これではランダムトークが対象にならないようでした

1041任意たん@age推奨:2022/03/29(火) 01:35:01
>>1040
里々wiki→特殊変数ページの「$文「○」の重複回避 / $単語群「○」の重複回避」の項目で
「*」を指定する事で全てのトークが設定対象になるってある
文章的にはランダムトークも範囲内だと思う、これでどうだろう?

10421040:2022/03/30(水) 21:22:02
>>1041
ありがとうございます
「*」を指定することでランダムトークを設定対象にできているようではありましたが、
これでは他のトークも巻き添えを食らってしまいケアが大変な為、ランダムトークのみを対象にしたいと考えています・・・

ネットワーク更新後に新規追加トークを優先して喋らせる仕様にあこがれ、ランダムトークの重複回避設定を使うのはどうだろうかと考えていました
一時的に昇順または降順に変更することで、簡易的かつ手軽に実現可能かなと
強引ですが、ランダムトーク全てを何らかのトークに変更し $文「何らかのトーク」の重複回避 とする事で目的は果たせそうだと先程気付きました
一旦これで試作を進めようと思います、ありがとうございました

1043任意たん@age推奨:2022/04/03(日) 22:54:26
#ランダムトークはファイル1個にまとめた上で

*ネットワーク更新changed
:更新完了しました!
$文「*」の重複回避【タブ】降順
$辞書リロード【タブ】実行

#------------------------
#ファイルの上に新規トークを書く


:新規トーク1


:新規トーク2


:最後の新規トーク
$文「*」の重複回避【タブ】有効
$辞書リロード【タブ】実行


:以下ランダムトーク

#------------------------

でいけたりしないかな?駄目だったらごめん。
右クリックの更新には対応してるけどゴーストエクスプローラーの更新には対応していない。

10441040:2022/04/03(日) 23:47:27
すみません、厳密にはランダムトークのみを指定し重複回避設定を行いたいという質問です・・・

1045任意たん@age推奨:2022/04/05(火) 02:33:07
>>1040
新しいトークを優先的に、が目的なら、ネットワーク更新後にトークの予約をするのはどう?
あるいは起動時にトークを予約しちゃうとか
「*新規トーク」と「*」の両方に同じトークを入れておけば、
トーク予約で優先的に喋らせつつランダムトークでも出る状態にはなる

ランダムトーク全体で重複無しも実現したいというのならば、
>>1040が言う通り「*ほげほげ」にランダムトーク全部突っ込むしかないかもしれないけれど

1046任意たん@age推奨:2022/04/09(土) 07:37:31
ランダムトークに仕掛けをしたいなら全部トークに名前つけた方がいいと思う


>ランダムトーク

*ランダムトーク
:〜

*ランダムトーク
:〜

...

ランダムトークをファイル1個にまとめた上で「*」を「*ランダムトーク」に全置換すれば手間はかからないし、その上で$文「*ランダムトーク」の重複回避の設定をすればいけるんじゃないかな

1047任意たん@age推奨:2022/04/09(土) 07:40:09
って、すまない主はもうその結論に達してたようだ
忘れてちょ

1048任意たん@age推奨:2022/04/10(日) 21:55:49
初歩的な質問ですみませんがそもそも
「*」だけならば全部ランダムトークではないのですか?

1049任意たん@age推奨:2022/04/11(月) 08:20:21
ゴーストの画像の一部分だけ変えたいのだけれど
どうすれば変えられますか?

1050任意たん@age推奨:2022/04/11(月) 11:22:21
一部分だけ変えたゴーストの画像を用意して下さい

1051任意たん@age推奨:2022/04/11(月) 17:49:03
まさかとは思うけどコラとかの話なら
「気合で」としか言いようがないぞ…

1052任意たん@age推奨:2022/04/11(月) 18:33:33
>>1050
それは用意したのですがその先がわかりません。

1053任意たん@age推奨:2022/04/11(月) 22:51:19
>>1052
画像を\shell\master\フォルダに入れて、変えたい画像にリネームする。
それでだめならsurfases.txtを解析するしかない。

1054任意たん@age推奨:2022/04/12(火) 00:49:36
えーと、

具体的に言うと大きな画像(全体の立ち絵)とパーツごとの画像(例:目)で分けて
パーツの部分だけ変えたいというわけなのだけど、
それでも丸ごと一部分だけ変えたゴーストの画像を大量に用意しないとだめ?

1055任意たん@age推奨:2022/04/12(火) 01:15:48
>>1054
パーツを希望の表情に差し替えれば出来ると思うぞ。
それ以上の回答を望むならこの辺見て何とかしてくれ。
http://earlduant.github.io/ukagaka-shell-description/surfaces.html
http://ssp.shillest.net/ukadoc/manual/descript_shell_surfaces.html

1056任意たん@age推奨:2022/04/12(火) 17:40:32
>>1048
どう説明したらいいか難しいが、「*」はさとりが一定時間ごとに自動再生するとても特別な存在で、便宜的にランダムトークと呼ばれるが
「*ランダムトーク」は『ランダムトーク』という名前をつけられただけの普通のトークなんだ
「*なんか適当なトーク名」と変わらないし、(ランダムトーク)などで呼び出さないかぎり再生もされない

1057任意たん@age推奨:2022/04/17(日) 19:07:09
>>1054
福笑い形式で表情差分を作りたいって言うことかな?
良く解説サイトにあるサンプルは既に表情を作った顔を丸ごと使ってることが多いから確かにわかりづらいよね

伺かのシェルは指定された番号に何の画像を割り当てるかを決めるものなんだけど、番号一つに複数の画像を割り当てるとそれらを全部重ねて一つの画像として出力されるものなんだ
なので、大きな画像(全体の立ち絵)をベースとして割り当てて、更にそこに各パーツの画像を割り当てることでやりたいことができると思うよ
具体的に定義の例を書くと、

surface0
{
element0,base,body.png,0,0 --これがベースとなる立ち絵画像
element1,overlay,eyes.png,0,0 --これが目の画像
element2,overlay,mouth.png,0,0 --これが口の画像
element3,overlay,brow.png,0,0 --これが眉の画像
}
こんな感じになると思う
注意点としては、単純に重ねるだけだからベースの画像に目とか口とか置き換えたいパーツが描かれちゃってるとそれを覆い隠すようにパーツ画像を用意する必要があることと、
重ねのルールは基本element番号が大きい方が上に重ねられるから、もし互いにパーツが干渉する位置にある場合はその辺りも考慮する必要があるよ

定義の書き方で細かい調整とかも出来たりするからそのあたりは>>1055さんの貼ってくれたサイトを参考にしてね!

1058任意たん@age推奨:2022/04/26(火) 21:03:39
ゴースト制作するにあたって制作に差し支えないノートパソコンはどれくらいのものが良いだろうか
OSはウインドウズ11で考えてるがノートはグラボとかメモリとかCPUとか気軽に変えられないから予算とスペックで悩んでる

1059任意たん@age推奨:2022/04/26(火) 22:21:02
他のゴーストを立たせていても動作に差し支えないなら、大体どれくらいのスペックでも行けると思うよ
シェル制作も考慮してるなら、また別の問題になるが…
少なくとも、絵を描くのに程よいスペックであればいけるだろう

1060任意たん@age推奨:2022/04/26(火) 23:54:12
20年前のMeのポンコツPCでも普通に動いたくらいだから
よほど特別な事でもしない限りは気にする必要もないだろう

1061任意たん@age推奨:2022/04/28(木) 03:08:12
>>1058
ブラウザ開きながらPhotoshop使って4k解像度をターゲットに作業してもメモリ8GB(つまりWin11が動く最低ライン)で十分
ラップトップで気にするとすればディスプレイの色の正確さかな
変な色のディスプレイ(やけに青っぽいとか)使うと自分で普通に見えても他の人が立たせた時に違和感のある色になる
こればっかりは同じメーカーでも当たり外れがあるのでなかなか、高級機種なら間違いないけど

1062任意たん@age推奨:2022/05/11(水) 10:12:00
>>1058
テンキーが欲しいがどうかでサイズを決めるのも悪くないと思います、
PGDNと矢印キーが届き易くなりますので使い勝手は悪くないです

1063任意たん@age推奨:2022/05/12(木) 20:54:32
>>1061
カラーモンキーやスパイダーでキャリブレーションしたら大体大丈夫だろうけど
一時的に使うだけの事で数万円出すかっていうと考え込む人とかもいそうだなぁ

1064任意たん@age推奨:2022/05/13(金) 06:40:14
>>1063
安もんのラップトップをキャリブレーションしたらsRGB75%とかにならん?

1065任意たん@age推奨:2022/05/14(土) 22:20:29
メモリの余裕は心の余裕と古事記にも書いてあるので12GBは欲しい派

モニタはフルHDのIPSならとりあえず不自由はしない程度の発色はクリアできるってことでいいんでないかなぁ
製作はノートオンリーでやるから性能重視でって方針ならクリエイター向けモデルから選ぶのが安牌だろうけど、
それだとお値段もすごいことになるだろうし…

1066任意たん@age推奨:2022/05/24(火) 02:28:08
ゴーストの更新に関して質問です。
既に公開済みのゴーストのsurfaces.txtに記述を追加した場合、ネットワーク更新でそれらの変更は反映されますか?

1067任意たん@age推奨:2022/05/24(火) 04:07:29
>>1066
その「記述を追加したsurfaces.txt」を更新用ファイルとしてアップロードしたならば
必ず反映されるよ。

1068任意たん@age推奨:2022/05/24(火) 08:38:17
>>1067
迅速なご回答ありがとうございました!!

1069任意たん@age推奨:2022/05/24(火) 13:49:38
>>1066です 再度質問失礼します
shell内の「記述を追加したsurfaces.txt」を含むファイル内に更新データ(update.txtとupdates2.dau)を作成してアップロードすれば問題ないでしょうか。

1070任意たん@age推奨:2022/05/24(火) 17:06:29
>>1069
「記述を追加したsurfaces.txt」はゴーストにデフォルトで含まれているものでしょうか?(ゴーストをインストールすると一緒に追加されるシェルなど)
その場合は「記述を追加したsurfaces.txt」を含むゴースト全体の更新データ(update.txtとupdates2.dau)を作成してアップロードして頂ければ問題ありません。
「ゴーストのネットワーク更新」の時に反映されます。
shellフォルダの各シェルのフォルダ内に更新データ(update.txtとupdates2.dau)を作成する場合は「シェルのネットワーク更新」になりますので、
「ゴーストのネットワーク更新」とは別に対応する必要があります。
こちらはゴーストとは別にインストール必要があるシェル(シェル単体で公開されているものなど)で行うものですので、masterシェルなどの場合は前者の対応で問題ありません。

1071任意たん@age推奨:2022/05/25(水) 00:05:18
>>1070
丁寧なご回答ありがとうございます。
今回はmasterシェルのsurfaces.txtに記述を追加したいので、通常の更新(ランダムトーク追加など)と同じ作業を行いたいと思います。
皆さまご協力ありがとうございました!!

1072任意たん@age推奨:2022/06/20(月) 21:03:37
「shared-indexがついた-1指定のあるアニメーション」が2つ以上設定されたサーフェスがなんかクラッシュする

1073任意たん@age推奨:2022/06/27(月) 12:24:36
メニュー選択肢を状況に応じて出したり引っ込めたりしたいんだけど、複数個メニュー作ってなんかの変数で分岐させるしかない?

1074任意たん@age推奨:2022/07/05(火) 01:21:48
状況に応じて…って例えば、この条件の時ならこの選択肢を出す、って事かな。
メニューの中でwhen使う形はどう?

1075任意たん@age推奨:2022/08/06(土) 11:39:23
関数を使うと_の記号が使えなくなるのが難点かな

1076任意たん@age推奨:2022/08/30(火) 22:41:07
さくらスクリプトで
\![sound,loop,(ファイル名)]
\![sound,stop]
の制御を繰り返した際、最初の内は正常に再生・停止できているのに、
5回ほど再生・停止を繰り返すと「プチプチ音(スクラッチノイズみたいなノイズ音)が混ざり始める」状態になり、
さらに再生・停止を繰り返していくと、おおよそ十数回程度で
「音声の再生自体は行われるけれど、ノイズがひどい上に音が途切れ途切れになったりして聴くに堪えない状況になる」
症状に悩まされております。

一応、「SSP自体を再起動するとリセットされる」ことは確認したのですが、
それ以外での解決方法が見つけられなくて…。
同じ症状を経験された方、いらっしゃいますか?

おま環なのか、皆さんの環境でも起こる事象なのかお伺いしたく。
自環境はSSP/2.6.13 (20220802-5; Windows NT 10.0.22000)です。

1077任意たん@age推奨:2022/09/01(木) 23:50:48
>>1076
キーボードイベントにサウンドタグを書いて確認してみましたが手元の環境では
症状が発生しませんでした。音声ファイル形式はwav、mp3、wmaで確認しました。
環境によって発生する症状だと思いますがSSP公式に相談したほうが良いと思います。
SSP/2.6.13、Windows10 21H2

1078任意たん@age推奨:2022/09/02(金) 01:54:51
>>1077
検証ありがとうございます!
むむ…おま環みたいですね…。
こちらの環境との違いは、
Windows NT 10.0.22000 = Windows 11 21H2 なところ位でしょうか…?

私の方は、wmaで症状の発生を確認していました。
同一音源をwav・mp3に変換して、再度チェックしてみます。

その上で「SSP公式に相談」…というと、
「独立伺か研究施設 ばぐとら研究所」の「My View - Bug Tracking System for SSP」で、
登録例を参考に課題登録してみるといいよ、という理解でよろしいでしょうか…?

1079任意たん@age推奨:2022/09/02(金) 04:44:20
タスクマネージャで実行中のメモリの様子を見てもいいかも

1080任意たん@age推奨:2022/09/02(金) 14:27:14
>>1079
ご助言ありがとうございます!

問題発生時(プチプチノイズが混ざりはじめた時)から、
問題が悪化していく過程でのsspのプロセスメモリ使用量を見た限りでは、

・メモリの余裕は十分
 (トータル24GB、使用量17.4GB=79%、利用可能領域4.6GBくらいを維持)

・問題発生〜症状悪化時は徐々にsspのメモリ使用量が増えていく
・その後メモリ使用量が減っても、症状はもとに戻らず悪化の一途を辿る

 初期状態(00) 55.6MB ノイズ等無し
→問題発生(01) 57.2MB プチプチノイズが乗りはじめる
→症状悪化(02) 58.0MB プチプチノイズが大きさ・頻度ともに多くなってくる
→症状悪化(03) 58.1MB 聴感上(02)と大きな変化なし
→症状悪化(04) 58.0MB 聴感上(02)と大きな変化なし
→症状悪化(05) 58.2MB 頻度がやや増えて悪化してきた
→症状悪化(06) 57.3MB 使用量は減ったが、聴感上は(05)と変わらず悪化したまま
→症状悪化(07) 57.5MB 
→症状悪化(08) 54.4MB 使用量が大きく減ったが、聴感上は(05)と変わらず
→症状悪化(09) 63.3MB いったん別の処理に回って、多くの変数を処理
→症状悪化(10) 64.0MB 再度、音声を再生する処理に移行、ただし聴感上は(05)と変わらず
→症状悪化(10) 52.7MB 使用量が大きく減ったが、聴感上は(05)と変わらず
→症状悪化(11) 34.2MB 使用量がさらに大きく減ったが、ノイズがさらに増え、一気に症状が悪化した
→症状悪化(12) 39.7MB 再生が破綻した(ノイズが増えた上に再生ピッチが遅く不安定になり、まともに再生できなくなった)

という結果になりました。
もし何か「他にもここ見た方がいいよ」というところがあれば、ご教示いただければ幸いです。

なお、1078のレスの後「音声再生部分周辺の処理だけ抜き出したテストゴ」を作って、
wav・mp3・wmaの再生を繰り返してみたのですが、
そのゴでは問題が全く再現しない
(数十回再生・停止を繰り返しても、そもそもノイズが乗る事象が発生しない&メモリ使用量も変化しない)のに、
自分のゴや、処理の参考にさせて頂いたゴーストさん(例えばタドリハラさんの東京ライカンスロープ)で
数回再生・停止処理を繰り返すとやはり問題が発生し、上記のようなメモリ使用量の変化を経て症状の悪化が進みました。

なので、
「何か、音声再生部分とは別のとこが原因みたいだけれど、でもどこの何が問題なんだろう…」と頭抱えてる状態です…。
もう少し詳しく調査して、原因箇所を切り分けられないか試してみます。

1081任意たん@age推奨:2022/09/02(金) 23:32:38
>>1079
ご助言ありがとうございます!

問題発生時(プチプチノイズが混ざりはじめた時)から、
問題が悪化していく過程でのsspのプロセスメモリ使用量を見た限りでは、

・メモリの余裕は十分
 (トータル24GB、使用量17.4GB=79%、利用可能領域4.6GBくらいを維持)

・問題発生〜症状悪化時は徐々にsspのメモリ使用量が増えていく
・その後メモリ使用量が減っても、症状はもとに戻らず悪化の一途を辿る

 初期状態(00) 55.6MB ノイズ等無し
→問題発生(01) 57.2MB プチプチノイズが乗りはじめる
→症状悪化(02) 58.0MB プチプチノイズが大きさ・頻度ともに多くなってくる
→症状悪化(03) 58.1MB 聴感上(02)と大きな変化なし
→症状悪化(04) 58.0MB 聴感上(02)と大きな変化なし
→症状悪化(05) 58.2MB 頻度がやや増えて悪化してきた
→症状悪化(06) 57.3MB 使用量は減ったが、聴感上は(05)と変わらず悪化したまま
→症状悪化(07) 57.5MB 
→症状悪化(08) 54.4MB 使用量が大きく減ったが、聴感上は(05)と変わらず
→症状悪化(09) 63.3MB いったん別の処理に回って、多くの変数を処理
→症状悪化(10) 64.0MB 再度、音声を再生する処理に移行、ただし聴感上は(05)と変わらず
→症状悪化(10) 52.7MB 使用量が大きく減ったが、聴感上は(05)と変わらず
→症状悪化(11) 34.2MB 使用量がさらに大きく減ったが、ノイズがさらに増え、一気に症状が悪化した
→症状悪化(12) 39.7MB 再生が破綻した(ノイズが増えた上に再生ピッチが遅く不安定になり、まともに再生できなくなった)

という結果になりました。
もし何か「他にもここ見た方がいいよ」というところがあれば、ご教示いただければ幸いです。

なお、1078のレスの後「音声再生部分周辺の処理だけ抜き出したテストゴ」を作って、
wav・mp3・wmaの再生を繰り返してみたのですが、
そのゴでは問題が全く再現しない
(数十回再生・停止を繰り返しても、そもそもノイズが乗る事象が発生しない&メモリ使用量も変化しない)のに、
自分のゴや、処理の参考にさせて頂いたゴーストさん(例えばタドリハラさんの東京ライカンスロープ)で
数回再生・停止処理を繰り返すとやはり問題が発生し、上記のようなメモリ使用量の変化を経て症状の悪化が進みました。

なので、
「何か、音声再生部分とは別のとこが原因みたいだけれど、でもどこの何が問題なんだろう…」と頭抱えてる状態です…。
もう少し詳しく調査して、原因箇所を切り分けられないか試してみます。

1082任意たん@age推奨:2022/09/16(金) 13:10:52
disc-2の投稿欄が白くなっちゃったね…
伺かの間口だっただけに寂しい

1083任意たん@age推奨:2022/09/16(金) 16:49:04
>>1082
先日xreaサーバーのメンテナンスがあった影響で、
ログの部分だけが正常に表示されずエラーとなって、結果的に白くなってしまってるみたい。
管理人さんがどうこうした訳じゃないけど、これからどうなるんだろうね。

1084任意たん@age推奨:2022/10/29(土) 22:16:43
さとりすと2.0公開!!

http://ukananachi.blog98.fc2.com/blog-entry-1718.html

1085任意たん@age推奨:2022/11/01(火) 20:35:05
毎日着替えをするゴーストを作ってみたいのですが、
里々において起動毎にシェルまたは着せ替えをランダム変更、といった動作は可能なのでしょうか

1086任意たん@age推奨:2022/11/01(火) 20:39:50
>>1085
出来る。
ペネローペ探偵局が同じような事をやっていたと思うから、参考に。
https://nanachi.sakura.ne.jp/narnaloader/ghost.php?ghost=PenelopeDetective

1087任意たん@age推奨:2022/11/01(火) 20:52:39
>>1086
ありがとうございます!
実際のゴーストさんの紹介もとても助かります

1088任意たん@age推奨:2022/11/05(土) 10:56:14
>>1085です、再度の質問失礼します
その後自分なりに試行錯誤して着せ替えを設定してみましたが、
起動毎のランダム変更を行うために何を記述すべきかわからずにいます
せっかく参考になるゴーストさんを紹介していただいたのに申し訳ないのですが、
初心者なもので辞書を読み解くのに限界があり…
どなたか具体的な実装方法をご教示願えませんでしょうか

1089任意たん@age推奨:2022/11/05(土) 19:03:02
横から失礼します。
里々だとこんな感じになりますね。

以下は着せ替えの例です。
シェルの場合は「@着せ替え全部解除」を削除し、「@ランダムにしたい着せ替えパターン」に「\![change,shell,シェルの名前]」を列挙します。
【タブ】はキーボードでtabキーを押したときに出るタブ記号に変換してください。

#起動イベントを差し替える
#まず着せ替え処理してから起動処理や起動トークをする
#起動時に別のイベント入れてるなら、それも同じような修正がいる
#具体的には「*OnGhostChanged」と「*OnVanished」がある場合同じ修正をする

#----追加ここから
*起動
(set,着せ替えトーク無効フラグ,1)(着せ替え全部解除)(ランダムにしたい着せ替えパターン)(起動時の処理)(set,着せ替えトーク無効フラグ,)
#----追加ここまで

#今までの「*起動」の名前だけを「*起動時の処理」に変更する
*起動時の処理
>なんかイベント【タブ】(なんか条件)
>普通の起動

*普通の起動
:ようこそ

*普通の起動
ようきたな
:いらっしゃい

#----処理部追加ここから
#まずは着せ替えを全部解除した状態にしてから、付けたい着せ替えだけ装着させる

#カテゴリ名を空にすると、そのカテゴリ全てを操作できる
@着せ替え全部解除
\![bind,帽子,,0]\![bind,服,,0]#シェルに存在する着せ替えカテゴリ全部の解除記述をしておく

@ランダムにしたい着せ替えパターン
\![bind,帽子,ハット,1]\![bind,服,ジャケット,1]
\![bind,帽子,ヘルメット,1]\![bind,服,作業服,1]

#----処理部追加ここまで

#着せ替え時にトークしてる場合、一旦無効化しておく
#辞書に「*OnDressupChanged」がないなら以下は不要
*OnDressupChanged
>なにもしない【タブ】(着せ替えトーク無効フラグ)
>(R0)側が(R1)を装着【タブ】(R2) == 1

*0側がヘルメットを装着
:ご安全に!

*なにもしない
#処理を何も書かない

1090任意たん@age推奨:2022/11/05(土) 20:20:11
>>1089
詳しく教えてくださりありがとうございます!

ただ、>>1089をコピペさせていただき記述してみたのですが、
理解が足らないためか思うような挙動になりませんでした…
そこでお願いなのですが、「伺か投稿場」さんの汎用アプロダにゴーストのフォルダを丸ごとアップロードしたので
ファイルを直接見ていただいてアドバイスを頂戴することは可能でしょうか
重ね重ねのお願いになってしまい恐縮です…

1091任意たん@age推奨:2022/11/05(土) 21:55:19
>>1090
失礼しました。
「*起動」に「:」(全角コロン)をつけてください。
着せ替えは\0側にしか設定されていないのに、スコープ切り替えの「:」がないため、\1側を着せ替えようとしています。

*起動
:(set,着せ替えトーク無効フラグ,1)(着せ替え全部解除)(ランダムにしたい着せ替えパターン)(起動時の処理)(set,着せ替えトーク無効フラグ,)

1092任意たん@age推奨:2022/11/05(土) 22:05:32
>>1091
ありがとうございます。コロンをつけ足したところ無事理想の状態になりました!
この度は大変お世話になりました!

1093任意たん@age推奨:2022/12/07(水) 01:34:50
初心者質問ですみません。
loopを使ってユーザーからもらった単語をリストにしているのですが、
これに個別でお気に入りマークを付けたい場合どのようにしたらいいでしょうか…
クリックで☆→★と変化させたいのですが、個別に変更できず全て同じマークになってしまったり上手く動いてくれません。
分かりにくい説明で恐縮ですが、アドバイス頂けたら嬉しいです

1094任意たん@age推奨:2022/12/07(水) 09:03:51
里々を使っているとして回答します。
「*OnUserInput」があり、入力すると「*〜〜を教えてもらった」にジャンプすること前提です。

注意事項として、半角のカンマとアンダーバーが単語に入れられません。

「*テストメニュー」は任意の名前にしてください。
「*テストメニュー」へジャンプする処理が2箇所になるので変更を忘れないようお願いします。

「教えてもらった単語」にユーザが入力した単語を追加していく処理としています。
現在のユーザからもらった単語を格納している単語群の名前に置き換えてください。
単語群の名前のほか、3箇所にあります。

#----satori_conf.txt
#「*初期化」の一番最後の行に追加
*初期化
#既存の処理
$お気に入り単語=なし
#----satori_conf.txt

#----任意の辞書ファイル
*テストメニュー

_単語を教える
_単語のリスト

*単語を教える
:※半角のカンマと半角のアンダーバーは使えません。
\![open,inputbox,追加単語]

#半角のカンマが入ると処理がエラーになるので半角カンマを削除する
*追加単語を教えてもらった
(単語の追加、教えてもらった単語、(erase(バイト値,1)(追加単語)(バイト値,1),))
>テストメニュー

*単語のリスト
$単語群「教えてもらった単語」の重複回避=降順、トーク中
(loop,単語リスト化処理,(単語群「教えてもらった単語」の数))
$一時・単語=
_メニューに戻る テストメニュー

*単語リスト化処理
$一時・単語=(教えてもらった単語)
:(when,(count,(お気に入り単語),_(一時・単語)),★,☆)\q[(一時・単語),Onユーザが単語をお気に入りした,(一時・単語)]

*Onユーザが単語をお気に入りした
(when,(count,(お気に入り単語),_(R0))
,(set,お気に入り単語,(erase,(お気に入り単語),_(R0)))
,(set,お気に入り単語,(お気に入り単語)_(R0))

>単語のリスト
#----任意の辞書ファイル

選択肢と(R0)に関しては以下のukadocを参照してください。
http://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#_q_%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB,OnID,r0,r1,..._

(単語群「〜〜」の存在)では、単語群の中身まで確認できないため、
お気に入りにした単語を1つの変数「お気に入り単語」の中に持っています。
(お気に入り単語)の中身は、たとえば「いちごまぐろ」などの羅列となります。
その後、(count、(お気に入り単語)、いちご)として、存在すれば★を表示します。
(count関数のカッコ展開の結果が1以上になる場合存在)

ただし、区切り文字がないと誤ヒットする可能性があります。
たとえば(count、(お気に入り単語)、ごま)とすると、
「いちごまぐろ」に「ごま」が含まれるため誤ヒットしてしまいます。
そこで、「_いちご_まぐろ」とアンダーバーを区切りとします。
存在するか判定する際も、「_ごま」とアンダーバー込みで検索すると誤ヒットしません。

アンダーバーを頭につけて検索するため、$お気に入り単語の初期値の「なし」は絶対にヒットしません。
ユーザがあらためて「なし」を入力した場合のみヒットするようになります。

1095任意たん@age推奨:2022/12/08(木) 03:48:32
>>1094
丁寧にありがとうございます!
アンダーバーを使った判定は思いつかなかったので大変参考になりました。
お気に入りの表示は形だけのつもりだったのですがちゃんと運用できそうです、ありがとうございます!

1096任意たん@age推奨:2023/03/21(火) 22:40:20
イベント雑談スレの787-789のくだりを里々wikiに書きました。
ありがとうございます。
http://soliton.sub.jp/satori/?%E5%90%8D%E5%89%8D%E3%82%92%E8%A6%9A%E3%81%88%E3%81%95%E3%81%9B%E3%82%8B#u9f9ee02

1097任意たん@age推奨:2023/03/23(木) 09:20:38
ゴマカレーかなんかでトークが縦書きのゴーストっていなかったっけ?ググっても出てこないわ

1098任意たん@age推奨:2023/03/23(木) 21:33:29
>>1097
ゴマカレーじゃなくてこんうかだけど、あーるでぃーさん所のtcidelamが縦書きだね

1099任意たん@age推奨:2023/03/25(土) 23:32:23
>>1098
こんうかか!ありがとう
ゴマカレだと思いこんでたから一人じゃ一生辿り着けんかったわ

1100任意たん@age推奨:2023/04/08(土) 11:27:05
前いろいろあった者です。
もう一度あの頃みたいにやり直したいなと思い来ました。
もう一度、ゴーストを作らせてもらえませんでしょうか?

1101任意たん@age推奨:2023/04/08(土) 14:27:19
いろいろとか言われても知らないし
誰に許可とる趣味でもないんだから好きにやればいいんじゃないでしょうか。

1102任意たん@age推奨:2023/04/08(土) 22:30:02
>>1100
前いろいろとか、いちいちそういう断り文句を書く必要がまず無い。
好きにゴースト作って、出来上がったら然るべき場所で公開すればいい。
なにかゴースト制作関連で質問ができたら書き込んでおくれ。

1103任意たん@age推奨:2023/04/08(土) 23:28:31
違ったらごめんだけど察しはつく
余計なこと言わなきゃ誰も気づかんわ、識別だってないんだし

1104任意たん@age推奨:2023/04/09(日) 11:07:42
色々あって去ったデベとか数人しか思い浮かばんしな
なんにせよ昔の事だし気にすんな

1105任意たん@age推奨:2023/04/09(日) 17:26:59
最近問題を起こしたならやめておいた方が無難だが
なにを起こしたのかにもよるしここに言いに来る時点でなあ
好きにやればいいけどまた問題起こさないといいな

1106任意たん@age推奨:2023/04/10(月) 10:42:39
やっちまったもんはしゃーないしな、返してくれとも俺からは言わん
違ったらすまんな
戻ってきてくれて嬉しいよ

1107任意たん@age推奨:2023/04/12(水) 01:27:52
どうでもいいから早くお前のゴーストを見せてくれ
ゴーストなんて多ければ多いほどいいんだから

1108任意たん@age推奨:2023/04/13(木) 10:16:19
周りがどうしても気になるならゴーストマスカレードに匿名で出したら?
ランダム交代禁止とかゴースト内の制限はいろいろと多いけど
http://earlduant.blog.fc2.com/blog-entry-872.html

1109任意たん@age推奨:2023/04/13(木) 13:05:17
別にイベントに参加しなくても勝手に作って勝手に上げればいい

1110任意たん@age推奨:2023/05/11(木) 21:56:43

すみません、YAYAについてなのですがお助け下さいおねがいします。

wikiのマニュアル/基本/繰り返しにforの使い方が書いてありますが、これを紺野ややめに組み込んでも説明通りに動きません。
説明だと「0回目,2回目...9回目が改行しながら出力されます。」とあるのですが、〇回目が一つしか出ず、数字もランダムみたいなんです。

https://i.gyazo.com/bfa125b92202dce78eb857dada1d6316.png

OnKeyPressの中にwhen 'b'を追加して動かしているのですが、bを押せばとりあえず表示が出るのでここは合ってると思うのですが……。
何か大きなものを見落としているのかもしれませんが、それが何なのかさっぱりわかりませんorz

1111任意たん@age推奨:2023/05/12(金) 04:00:36
>>1110
1110さんの書き方だと、when 'b' の中身が配列として解釈され、ランダムな択一で出力されているようですね。
うまく説明できず申し訳ないのですが、以下のようにしてみてください。

####

when "b" {
for _result = "", _i = 0 ; _i < 10 ; _i = _i+1{
_result = _result + _i+"回目\n"
}
_result
}

1112任意たん@age推奨:2023/05/13(土) 07:00:48

>>1111
ありがとうございます、無事動きました。
……なのですが、やっぱりよくわかりませんでした。もしよろしければ、もう少しお助け下さい。

>>1111

1行目:when "b" {
これはキーボードの「b」が押されたら{}内部を実行する、ぐらいの意味。この場合は "b" でも 'b' でも特に違いは無い。

2行目:for _result = "", _i = 0 ; _i < 10 ; _i = _i+1{
forが繰り返し命令? 初期設定で_resultに空白入れて文字変数にして、_i = 0が初期値、i <10が終了条件、_i+1がループ毎に実行される。

3行目:_result = _result + _i+"回目\n"
_resultに空白と_i の数字と「回目」と改行を合体させて「〇回目」という文字列を作る。

4行目:}
2行目for の終点。

5行目:_result
3行目で作った文字列「〇回目」をここでバルーンに出力。

6行目:}
1行目when "b" の終点。

と、私は認識しているのですが、どうでしょうか? 
ただ、これだと、

謎1:i <10が終了条件
直前で _i = 0 が入るなら、即 0 < 10 成立で終わりそうに思うのですが……。
むしろ続行条件に見えます、謎です。

謎2:5行目の_result
forって、「 for 初期設定 条件 { 処理 } 」 って構造で、条件を満たすまで処理を{}の内部で繰り返すと思っていたのですが、そうだとすると5行目の_resultがforの{}の外側に居る理由がわかりません。
C言語?だとそういう処理なんでしょうか?

もし気が向いたらお答えください、おねがいします。
……YAYA、私には向いてなさそうですねorz

1113任意たん@age推奨:2023/05/13(土) 08:13:38
>>1112

*1行目
今回の場合は"b"でも'b'でも違いは無い、という理解で合っています。
(ごく短い、単なる文字列であるため)

""で囲む場合、変数や関数を内部に埋め込むことができます。
''で囲むと、それらが展開されません。

*2行目
_i<10は終了条件ではなく、式が真ではなくなったらループを脱出する、というものです。(脱出判定式)
この場合、_iが10より小さい場合はループが続行され、_iが10以上になったらループが終わります。

*3行目
2行目の脱出判定式が真である間、3行目の処理が繰り返されます。

具体的には、以下のようになっています。
脱出判定: _i<10は0<10で偽のため、続行
繰り返し1回目: 『_result(空の文字列変数)、_i(0の数値)、「回目\n」』を連結した文字列をローカル変数_resultへ代入
ループ毎に実行する式: _i=_i+1で、_iは1になる
脱出判定: _i<10は1<10で偽のため、続行
繰り返し2回目: 『_result(0回目\n)、_i(1の数値)、「回目\n」』を連結した文字列をローカル変数_resultへ代入
ループ毎に実行する式: _i=_i+1で、_iは2になる
脱出判定: _i<10は2<10で偽のため、続行
繰り返し3回目: 『_result(0回目\n1回目\n)、_i(2の数値)、「回目\n」』を連結した文字列をローカル変数_resultへ代入
ループ毎に実行する式: _i=_i+1で、_iは3になる
(以下略)

*4・5・6行目
その理解で合っています。

*謎1
2行目の解説でも書きましたが、その位置の式が「成立しなくなったら」終わり、というものです。

*謎2
5行目の文字列出力はforの繰り返し処理の後に実行されてほしかったので、forの後に書きました。
3行目の繰り返し処理で変数「_result」の中へ最終的に出力して欲しい内容を作り、
その後単体で変数の内容を出力しています。

以下の内容をOnKeyPressへ加えてCキーを押すと、
バルーンには変数「username」の中身である『ユーザーさん』が出ると思います。(紺野ややめの場合)
when "c" {
username
}

1114任意たん@age推奨:2023/05/13(土) 13:47:11
横から失礼。
>>1113
『繰り返し処理の後に実行されてほしかったので』とあるけど、要するに

計算→表示→計算→表示→……→計算→表示
とするより、
計算→計算→……計算→表示
とした方が処理が少なくていいよね、ということだと思う。

1115任意たん@age推奨:2023/05/13(土) 17:08:59

>>1113
ありがとうございます。5行目の_resultに10ループぶん溜め込んで纏めて出力していたのですね。
私は初心者なので、計算+出力を10回ループ、に拘って勉強していたので発想が追いつきませんでしたorz

>>1114
上記の通り、最適化よりも基本に忠実、で頭が固まっていました……。



本来目指していたものは、

when 'n' {
for _result = "", _rotate = "" , _i = 0 ; _i < 360 ; _i = _i+10{

_result = _result + _i+"度\n"

_rad = _i * 3.14159265358 / 180
_x = SIN(_rad) * 100
_xxx = TOINT(_x)
_rotate = "\![set,scaling,"+ _xxx+ ",100]\n\"

_rotate

}

}

これで、n押したらシェルが一回転するかな〜?と思ったんですがやっぱりダメでした。
>>1110同様ランダム動作にしかならんですorz
勝手に配列処理を禁止に出来たら上手くいきそうなのになぁ……。

1116任意たん@age推奨:2023/05/13(土) 17:19:58
あ、_result = _result + _i+"度\n"消すの忘れてた、ごめんなさい。

1117任意たん@age推奨:2023/05/13(土) 18:09:00
>>1115

文/YAYA wikiの「マニュアル/文法/7.フロー制御」のページのスクリプトの例を見る限り、
ループの内部で文字列を出力した時、ループの回数ごとを要素とした配列が結果として出てくるのは、仕様なのかもしれません。
ループ内部で出力確定子やallが効けば質問者さんの理想に近づく気がしましたが、自分の試した限りではできませんでした。

when 'n' {
for _rotate = "" , _i = 0 ; _i < 360 ; _i = _i+10{
_rad = _i * 3.14159265358 / 180
_x = SIN(_rad) * 100
_xxx = TOINT(_x)
_rotate = _rotate + "\![set,scaling,"+ _xxx+ ",100]\w1"
}
_rotate
}

########
ただし、独立した関数として書くなら、allが効きます。
//OnKeyPressのcase分岐の中にこれを書く
when 'n' {
Kururinpa
}

//独立した関数としてこれを書く
Kururinpa : all
{
for _i = 0 ; _i < 360 ; _i = _i+10{
_rad = _i * 3.14159265358 / 180
_x = SIN(_rad) * 100
_xxx = TOINT(_x)
"\![set,scaling,"+ _xxx+ ",100]\w1"
}
}

11181117:2023/05/13(土) 18:18:40
>>1117
出力にウェイトを噛ませています、というのを書き忘れていました。
(「\w1」がそれです)
無いと一瞬ですべてが行われてしまい、回転している感じにはならなかったので。

1119任意たん@age推奨:2023/05/13(土) 20:25:42

>>1117
ありがとうございます、無事上手くいきました。
ループの内部だと配列確定は仕様なのですね、YAYAって難しい……。

……正しくはSIN(_rad) じゃなくてCOS(_rad)だという事に気付かず、無駄に苦労しましたorz


後は、 里々から回転数・1描写あたりの角度・1描写あたりのウェイトをYAYA as SAORI に送って動くように出来たら、野望が達成できそうです。
ただ、YAYAよりもC言語を学ぶのが先になりそうです……。

1120任意たん@age推奨:2023/05/13(土) 21:07:50
>>1119
よかったです。陰ながら応援しています。

1121任意たん@age推奨:2023/05/14(日) 02:56:07
>>1120
ありがとうです、がんばります。

……>>1117で作って頂いたKururinpa、早速YAYA as SAORIに突っ込んでみたものの全く動かず、
色々考えてみたらSAORIが直接さくらスクリプトを実行するわけじゃないから、YAYA as SAORIから
RES.RESULTでさくらスクリプトを受け取って里々が実行しないとダメなんだな、と思いました。

YAYA as SAORIに計算全て任せると結果がRES.RESULTに配列で還ってくるので、
ループ部分は里々で作ってその都度YAYA as SAORIにさくらスクリプトを作らせる方針で逝こうと思います。

1122任意たん@age推奨:2023/05/14(日) 08:02:56
>>1121
余計なお世話でしたらごめんなさいなのですが、こういうことでしょうか。

◆yaya as saoriに追加する内容
Kururinpa
{
//引数0(1つめ):回転数を正の数で
//引数1(2つめ):1描写あたりの角度を正の数で
//引数2(3つめ):1描写あたりのウェイトをミリ秒単位の整数で
//すべて半角数字を想定

if ARRAYSIZE(REQ.ARGS) < 3 {
//引数が足りなかった
LOGGING("Kururinpa: 引数が不足しています")
-1
return
}
elseif ISREALSTR(REQ.ARGS[0])==0 || TOREAL(REQ.ARGS[0]) <= 0 {
//引数0に正の数以外が入っていた
LOGGING("Kururinpa: 引数1つめが正の数ではありません")
-1
return
}
elseif ISREALSTR(REQ.ARGS[1])==0 || TOREAL(REQ.ARGS[1]) <= 0 {
//引数1に正の数以外が入っていた
LOGGING("Kururinpa: 引数2つめが正の数ではありません")
-1
return
}
elseif ISINTSTR(REQ.ARGS[2])==0 && TOINT(REQ.ARGS[2]) < 0 {
//引数2に正の整数以外が入っていた
LOGGING("Kururinpa: 引数3つめが正の整数ではありません")
-1
return
}

_w = ''
if TOINT(REQ.ARGS[2]) > 0 {
//引数2が1以上ならさくらスクリプトでウェイトを入れる
_w = '\_w[' + REQ.ARGS[2] + ']'
}
//引数2が0なら何もしない(変数_wを空のままにしておく)

_a0 = TOREAL(REQ.ARGS[0])
_a1 = TOREAL(REQ.ARGS[1])
//里々からの引数は文字列型で来るので、数値型へ変更する

for _result='' , _i = 0 ; _i < ( _a0 * 360 ) ; _i = _i + _a1 {
_rad = _i * 3.14159265358 / 180
_x = COS(_rad) * 100
_xxx = TOINT(_x)
_result = _result + '\![set,scaling,' + _xxx + ',100]' + _w
}

RES.RESULT = _result
//変数「RES.RESULT」へ代入された内容が里々へ返る
}

◆里々に追加する内容
*nキーを押した
:(aya,Kururinpa,1,10,20)

11231122:2023/05/14(日) 08:09:41
すみません、>>1122には間違いが入っています。
//引数2に正の整数以外が入っていた の上の行は正しくはこうなります。

elseif ISINTSTR(REQ.ARGS[2])==0 || TOINT(REQ.ARGS[2]) < 0 {

1124任意たん@age推奨:2023/05/14(日) 14:33:58

>>1122
ありがとうございます、いろいろ間違えたり勘違いしながらも無事に動かせました。
ayasaori.logの中で

// request
EXECUTE SAORI/1.0
Charset: Shift_JIS
Sender: SATORI
SecurityLevel: Local
Argument0: Kururinpa
Argument1: 1
Argument2: 10
Argument3: 20

と書かれているのに、

REQ.ARGS[0]←Argument1が入る
REQ.ARGS[1]←Argument2が入る
REQ.ARGS[2]←Argument3が入る

なのがとても不思議な感じでした。

1125任意たん@age推奨:2023/05/27(土) 07:46:17

度々すみません、>>1124です。
>>1122さんに作って頂いたKururinpaを弄って色々作っているのですが、
シェルを縦に縮めて戻す関数を作っているのですが、上手くいかないですorz


gravity
{
//引数0(1つめ):伸縮の最小値を正の数で
//引数1(2つめ):1描写あたりの伸縮率変動値を正の数で
//引数2(3つめ):1描写あたりのウェイトをミリ秒単位の整数で

_a0 = TOREAL(REQ.ARGS[0])
_a1 = TOREAL(REQ.ARGS[1])
_w = '\_w[' + REQ.ARGS[2] + ']'

for _resultd='' , _id = 100 ; _id < _a0 ; _id = _id - _a1 {
_resultd = _resultd + '\![set,scaling,100,' + _id + ']' + _w
}

for _resultu='' , _iu = _a0 ; _iu > 100 ; _iu = _iu + _a1 {
_resultu = _resultu + '\![set,scaling,100,' + _iu + ']' + _w
}

RES.RESULT = _resultd + _resultu

}

これを紺野ややめに移植して、REQ.ARGSを数字に置き換えても何も起きないです。
何が間違ってるのかわかりません、どうかお助け下さい……。

1126任意たん@age推奨:2023/05/27(土) 12:34:35
>>1125
脱出判定式(条件に合致するとループ終了)が、
ループ処理1回目開始前から成立してしまっているのだと思います。

1つ目の判定式を「_id >= _a0」、
2つ目の判定式を「_iu <= 100」へ変えてみてください。

1127任意たん@age推奨:2023/05/27(土) 19:08:50
>>1126
ありがとうございます、無事動きました。
……また条件勘違いしてました、ごめんなさいorz

1128任意たん@age推奨:2023/06/10(土) 15:29:54
すみません、バルーンをシェルの裏側に表示させる方法ってありますか?
\![set,zorder,スコープID,スコープID,...]でシェル同士の優先は設定できるけど、
バルーンとシェルの設定は見当たらないのですが、無いんでしょうか?

1129任意たん@age推奨:2023/06/15(木) 15:08:50
>>1128
バルーンをシェルより奥に表示させる方法は、自分の見た限りでは今のところ無いと思います。
既存の仕様で疑似的に表現できないか試行してみましたが、
sticky-windowとzorderを組み合わせるだけではダメでした。

1130任意たん@age推奨:2023/06/15(木) 18:50:09
>>1129
ありがとうございました。やはり無いみたいですね……。

1131任意たん@age推奨:2024/03/13(水) 08:13:12
里々で、現在のサーフェスに応じてランダムトークを分岐させたいのですが方法はありますか?
会話時サーフェス戻しを無効にし、

*【タブ】(サーフェス0)==0
:なんちゃら。

*【タブ】(サーフェス0)==1
:かんちゃら。

というように記述してみたのですが動作しませんでした

1132任意たん@age推奨:2024/03/13(水) 17:01:01
>>1131
その記述単体に問題は無さそうです。
動作しないというのは、以下のどれでしょうか?
・何もランダムトークをしなくなる
・分岐を設定したトークが出てこない
・分岐を設定したトークが意図通りでない時に出てくる
(サーフェス0番の顔の時にサーフェス1番の分岐が出てくる、など)
・その他

1133任意たん@age推奨:2024/03/13(水) 17:58:01
>>1132
・分岐を設定したトークが意図通りでない時に出てくる
>>1131では省略しましたが、正しくは以下の辞書になっています(後出しで申し訳ありません)


*OnTalk
$サーフェス変化トークタイマ【タブ】(乱数30〜50)
>(R1)【タブ】(R0)
()

*サーフェス変化トーク
>ポーズ0【タブ】(乱数1〜2)==1
>ポーズ1【タブ】(乱数1〜3)==1
>ポーズ2【タブ】(乱数1〜5)==1
>ポーズ3【タブ】(乱数1〜7)==1

*ポーズ0
:(0)
*ポーズ1
:(1)
*ポーズ2
:(2)
*ポーズ3
:(3)

*【タブ】(サーフェス0)==0||1
:(0)なんちゃら。

*【タブ】(サーフェス0)==2||3
:(2)かんちゃら。


時間経過でランダムにサーフェスが変化する処理を入れつつ、
サーフェス0番か1番のときに「:(0)なんちゃら。」、サーフェス2番か3番のときに「:(2)かんちゃら。」とトークさせたいのですが、
現在のサーフェスとは無関係に「:(0)なんちゃら。」も「:(2)かんちゃら。」も出てきてしまいます

1134任意たん@age推奨:2024/03/13(水) 18:20:41
>>1133
条件を||や&&でつなげて複数書く時は、それぞれが式になるようにしてください。

*【タブ】(サーフェス0)==0||(サーフェス0)==1
:(0)なんちゃら。

*【タブ】(サーフェス0)==2||(サーフェス0)==3
:(2)かんちゃら。

1135任意たん@age推奨:2024/03/13(水) 18:49:22
>>1134
式を書き換えたら想定通り動作しました、ひどい凡ミスにつきあわせてしまいすみません…
ありがとうございました

1136任意たん@age推奨:2024/03/14(木) 15:55:57
>>1135
解決したようで良かったです。

1137任意たん@age推奨:2024/03/14(木) 18:20:27
それだけなら

*【タブ】(サーフェス0)<2
:(0)なんちゃら。

*【タブ】(サーフェス0)>1
:(2)かんちゃら。

これでも動きそうな気がする

1138任意たん@age推奨:2024/03/14(木) 20:07:51
>>1136
お手数おかけしました、ありがとうございます

>>1137
ありがとうございます
実際に使用予定のシェルではサーフェス番号が飛ぶ予定だったので||を使っていましたが、例の通りなら確かにその方がスマートになりますね
(本来のシェルで辞書を書いていてうまくいかなかったので、単純化した仮のシェルで原因を探っていました)
式の書き方の一つとして頭に入れておきたいと思います

1139任意たん@age推奨:2024/03/19(火) 14:31:26
すみません、質問させて下さい。
ゴーストのカラーピッカーを出して、¥1のうにゅうの色をカラーピッカーの色に替える、みたいなことをしたいのですが、どうすればいいのか分かりません。
ゴーストCOLORSのように色を反映させたいです。
imgctl_saori.dllというsaoriを使うのかな?と思うのですがどのようにすればいいでしょうか?

1140任意たん@age推奨:2024/03/20(水) 16:43:00
>>1139
この説明で行けそうでしょうか。


1. 普通のうにゅうの絵(以下、画像Aと略記)と、画像Aと同じ大きさの白一色の画像(以下、画像Bと略記)、画像Aと同じ大きさで色変えしたい箇所を完全な白、それ以外を完全な黒で塗りつぶした画像(以下、画像Cと略記)を用意する
※画像Cを作る際、アンチエイリアス(境界のぼかし)などがかからないように注意

2. 画像Cを「【画像Bのファイル名】.pna」というファイル名に変更する
pnaについて
https://ssp.shillest.net/ukadoc/manual/manual_shell.html#:~:text=%E3%81%AF%E5%88%B6%E9%99%90%E3%81%AA%E3%81%97%E3%80%82-,surface*.pna,-%E3%82%B5%E3%83%BC%E3%83%95%E3%82%A7%E3%82%B9%E3%81%AE%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1

3. 画像Aと画像Bをシェル定義して(画像Aの手前に画像Bがoverlayされるようにする)、ゴーストを起動し、白いうにゅうが表示されることを確認

4. さくらスクリプト「\![open,dialog,color,パラメータ]」でカラーピッカーを出す
https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#_!_open,dialog,color,%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF_

5. カラーピッカーで指定された色を取得する
https://ssp.shillest.net/ukadoc/manual/list_shiori_event.html#OnSystemDialog
※イベントIDをOn〜にした場合、そのIDのイベントが発生する

6. imgctl_saori.dllをSAORIとして読み込む

7. imgctl_saori.dllにて、画像BへToDIBコマンドを実行する
※里々の場合、(pwd)でsatori.dllのある場所の絶対パスが得られる
そこから末尾の「ghost\master\」を消して、末尾に「shell\【シェルのフォルダ名】\【画像Bのファイル名】.png」を足せば画像Bの絶対パスができる

8. imgctl_saori.dllにて、7で得られたDIBハンドルと、座標0,0で、PixelDIBコマンドを実行する

9. imgctl_saori.dllにて、7で得られたDIBハンドルと、8で得られた0x00BBGGRR形式の整数と、5で指定された色を0x00BBGGRR形式の整数に変換したもの(R+G×256+B×256×256)とで、RepaintDIBコマンドを実行する

10. imgctl_saori.dllにて、画像Bのパスと、画像BのDIBハンドルとで、DIBtoPNGコマンドを実行する

11. さくらスクリプト「\![reload,shell]」でシェルを再読み込みする
https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#_!_reload,shell_

12. 成功すればうにゅうの色が変わっている

13. imgctl_saori.dllにて、画像BのDIBハンドルへ、DeleteDIBコマンドを実行する

14. 再度色変えする時は、4〜13の手順を再び行う

1141任意たん@age推奨:2024/03/20(水) 16:46:51
>>1140 のURLリンクが不完全になってしまいました。
必要であれば、手動でコピペして飛んでください。

11421139:2024/03/20(水) 21:41:03
>>1140-1141
詳しく書いてくださりありがとうございます!!
多分できそうです!!やってみます!!

11431139:2024/03/22(金) 05:24:36
おかげさまでうにゅうの色を変えることができました。
ありがとうございます。
ですが、うにゅうの色が何度作り直しても白くならず黒いシルエットのうにゅうになってしまいます。
画像bを直接開いてみて色が変わったことは確認できました。
どのようにすればうにゅうの色が白くなりますでしょうか?
surfaces.txtにはこのように書いています。
surface10
{
element0,base,A.png,0,0
element1,overlay,B.png,0,0
}

11441139:2024/03/22(金) 05:30:56
一行目、間違えてうにゅうの色と書きましたが、
実際は色を変えることができました、でした。すみません。

11451139:2024/03/22(金) 07:00:42
何度もすみません、
どうやら真っ白一色の画像だと透過色だと判定されるので左上1ドットを違う色にすればいいことが分かりました
ただ、この場合、ユーザさんが左上の色と同じ色を偶然指定した時にまたおかしくなりそうです
確率としては低そうですが…

1146任意たん@age推奨:2024/03/22(金) 14:27:22
>>1145
色々と想定が抜けていました。すみません。
色変え用画像とシェルで使う画像を分け、imgctl_saori.dllのToneDIBで色変えすると良いかもしれません。

以下、具体的な手順です。

2-1. A.pngにうにゅうを白〜黒のグレースケールで描く。透過用の色は白黒以外でもよい。
白い部分ほど色が乗る。

2-2. B.pngの色変えしたい部分をrgb値(1,1,1)の黒、
それ以外は白(255,255,255)で塗りつぶした画像を、
B.png(シェル合成に使う用)およびC.png(色変更の元の素材)として保存する。
左上1ピクセルは白(255,255,255)にすること。
※ほんの少し不正確だが、真っ黒(0,0,0)だと指定された色によっては乗算がおかしくなる。

2-3. surfaces.txtでB.pngをoverlayしている箇所を、overlaymultiplyに書き換える。
例:
surface10
{
element0,base,A.png,0,0
element1,overlaymultiply,B.png,0,0
}

色変えは >>1140 の手順4〜13のうち、7〜10の代わりに以下を行う

2-4. imgctl_saori.dllにて、C.pngへToDIBコマンドを実行する

2-5. imgctl_saori.dllにて、3で得られたDIBハンドルと、
カラーピッカー後のOnSystemDialogのReference2とで、ToneDIBコマンドを実行する

2-6. imgctl_saori.dllにて、B.pngのパスと、3で得られたDIBハンドルとで、DIBtoPNGコマンドを実行する

11471139:2024/03/22(金) 22:10:32
>>1146
ありがとうございます。無事に動作確認しました。

11481139:2024/03/28(木) 17:14:55
何度もすみません。
\![reload,shell]でシェルをリロードした後にイベントの続きを書きたいのですが、うまくいきません。

*シェルのリロード
(imgctl_saori,DeleteDIB,(DIBハンドル))
\![reload,shell]
>色を教えたあとのトーク

こんな風に書いているのですが、シェルリロード前に「色を教えたあとのトーク」が一瞬表示された後シェルチェンジ→何も言わない
になってしまいます…。
シェルリロード後はどこに飛ぶのでしょうか?

1149任意たん@age推奨:2024/03/29(金) 08:42:16
\![reload,shell]では、シェルリロード後に喋りを書いても中断されてしまいます。
また、リロード後に喋れるイベントが来ることもありません。

そのため、\![change,shell,現在のシェル名]で同じシェルへ変更しましょう。
「*OnShellChanged」が来ます。(ここでゴーストが喋れます)

「*シェルのリロード」で変数に何かを入れておいて、
「*OnShellChanged」で通常時のシェル変更後の反応と分岐させてください。

喋り終わったら、変数を消すか中身を分岐しない内容に書き換えるかをしてください。

11501139:2024/03/29(金) 14:03:32
>>1149
ありがとうございます。
一度シェルチェンジするのですね。
OnSecondChangeで拾うしかないかなと考えていました。
ご助言助かりました。

1151任意たん@age推奨:2024/04/22(月) 23:10:42
どなたか助言をお願いします。

里々を使用しています。
ユーザから検索ワードを入力してもらい、Xで完全一致検索をする方法はありますか?

例)
\j[https://twitter.com/search?q=&quot;(検索ワード)"&src=typed_query&f=live]

結果)
Xで"(検索ワード)"と検索したページが開く
検索ワードは引用符で囲われている

完全一致検索がしたいのですが、さくらスクリプトで " を使用する方法はありますでしょうか?
SSP 2.6.62までは
\j[https://twitter.com/search?q=%22(検索ワード)%22&src=typed_query&f=live]
のような書き方で動いていたのですが、SSP 2.6.63のバージョンアップでURL内の%が%25に置換されるようになり、
想定した動作をしなくなってしまいました。。。

1152任意たん@age推奨:2024/04/23(火) 16:58:33
>>1151
さくらスクリプトでダブルクォーテーションを引数に含める方法は、現状では無さそうです。
https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#notes_escape

SSPのバージョンアップによる変更では、URLを取り扱うとき、URLエンコードされていない文字列(全角文字など)が含まれていると、自動的にURLエンコードされるようです。
なので文字列をURLエンコードできれば問題なくなるのですが、里々単体では少し困難です。
AKARI as SAORIなどを導入するのが比較的簡単な方法かと思います。
AKARI as SAORIの配布ページ: https://github.com/nikolat/akari-as-saori
※右側の「Releases」→「akari-as-saori.zip」からDLできます。(上ほど新しい)


この下に、AKARI as SAORIを用いた実装例を書いておきます。
※タブ文字を【タブ】と表記しています。
※区切り字問題を避けるため、vncallを使用しています。
〜〜〜〜
*検索テスト
$検索ワード【タブ】ユーザの入力した文字列
$検索ワード【タブ】(vncall,akari,URLエンコード実行1,検索ワード,URLエンコード実行2)
\j["https://twitter.com/search?q=%22(検索ワード)%22&src=typed_query&f=live"]

@URLエンコード実行1
urlencode
@URLエンコード実行2
utf8

1153任意たん@age推奨:2024/04/23(火) 23:19:25
>>1152
ご教授ありがとうございます!
ご指摘の方法で、希望の動作をするようになりました。
URLエンコード出来るSAORIを探してもみたのですが、灯の中に含まれていたとは気付きませんでした……伺かの奥深さを思い知りました。
実装方法までご案内くださり、大変助かりました。
ありがとうございます。

1154任意たん@age推奨:2024/04/26(金) 08:17:37
SAORIを使わずにダブルクオートを引数に含める方法がドキュメントに追記されました。
(謝辞:Donさん)
https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#notes_escape

1155任意たん@age推奨:2024/04/26(金) 09:07:51
>>1154
ありがとうございます、助かります。
(検索ワード)にダブルクオートが連続で奇数個(1、3、5〜)入っているとおかしくなるので、
検索用URLを開く前に取り除いておくなど対処の必要がありますね。

〜〜〜〜
*検索テスト
$検索ワード【タブ】ユーザの入力した文字列
$検索ワード【タブ】(vncall,erase,検索ワード,ダブルクオート)
\j["https://twitter.com/search?q=&quot;&quot;(検索ワード)""&src=typed_query&f=live"]

@ダブルクオート
"

1156任意たん@age推奨:2024/04/27(土) 23:15:23
>>1155
色々な方法があるのですね。
AKARI as SAORIで先にURLエンコードするのが一番安全かな?と思い、こちらの方法を採用しました。
SAORIを増やさない対応方法も、今後活用していきたいです。

今回の件と直接は関係ないのですが、*sakura.recommendsites で
ジャンプ先URLに()を含めるとジャンプ時に表示される会話文が再生されないようでした。
もし理由や回避方法をご存知だったら教えていただけますでしょうか。
お気に入りメニューから機能実行→URLジャンプとトーク再生、といった方法で何とかなってはいるのですが…

1157任意たん@age推奨:2024/04/29(月) 13:01:12
>>1156
後半の件、自分の所でも試してみました。
れしばを見つつ実際に動作させると、URLジャンプは動作する&スクリプト(会話)が空、の状態でOnRecommendsiteChoiceが来ますね。
現状でできる回避方法は、おっしゃられている通りの方法(URLにスクリプトを入れて別の関数に飛ばす)のが一番簡単かつ簡潔に済みそうです。
この現象が里々の不具合なのか仕様なのかはわかりませんでした。

1158任意たん@age推奨:2024/05/01(水) 05:02:18
yayaテンプレの紺野ややめが起動できない(正確にはそれに同梱されているyaya.dllが動かない)…
SSPは最新2.6.64です

1159任意たん@age推奨:2024/05/02(木) 21:40:29
>>1157
確認いただきありがとうございます。
やっぱり、現段階では難しそうですね…
里々Mc169-4で今回の件を対応してくださったようなのですが、完全ではないようなので、現状の処理が一番安全かな…となりました。
自分が大事な記述を見落としてるだけ…とかではなかったので、ひとまずホッとしています。
ご協力ありがとうございます。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板