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

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

1任意たん@age推奨:2017/07/02(日) 21:33:32
ゴーストをつくりたいんだ

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="(検索ワード)"&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=""(検索ワード)""&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です


新着レスの表示


名前: E-mail(省略可)

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

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

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

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