- 1 :任意たん@age推奨 :2017/07/02(日) 21:33:32
- ゴーストをつくりたいんだ
- 1144 :1139 :2024/03/22(金) 05:30:56
- 一行目、間違えてうにゅうの色と書きましたが、
実際は色を変えることができました、でした。すみません。
- 1145 :1139 :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コマンドを実行する
(省略されました・・全てを読むにはここを押してください)
- 1147 :1139 :2024/03/22(金) 22:10:32
- >>1146
ありがとうございます。無事に動作確認しました。
- 1148 :1139 :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」で通常時のシェル変更後の反応と分岐させてください。
喋り終わったら、変数を消すか中身を分岐しない内容に書き換えるかをしてください。
- 1150 :1139 :2024/03/29(金) 14:03:32
- >>1149
ありがとうございます。 一度シェルチェンジするのですね。 OnSecondChangeで拾うしかないかなと考えていました。 ご助言助かりました。
全部読む
最新50
1-100
メール受信
掲示板トップ
リロード
|