プレイ日記
スー thanks_0u0
スーGRPエディタ、バージョンアップ作業中です!( `・ω・´ ) フィルタ機能により、GB風画像などが作れます!現在、透明色のRGB値を揃える、グレースケール、セピア、色反転、白黒2値、GB風、の6種類。 そんなわけで、どんなフィルタを増やしたら良いか、お聞きしたいです!っていう投稿ですー。 また、ミバには画像加工系ツールの先駆者様が沢山いらっしゃるので、なにかアドバイスなどもいただけると嬉しいですー、よろしくお願いいたします!( ´ u ` )ノ
25そうだね
プレイ済み
返信[1]
親投稿
イスターリャ arduinotexter
「透明度の値を元に2値化画像作成」 AzPainterにも付いている機能ですが、例えばあの「すまいるごーるど」君の光り輝くシルエット的なグラフィックを描くのに役立つと思います。
2そうだね
プレイ済み
返信[2]
親投稿
イスターリャ arduinotexter
他には… 「縁取り」透明度値の境目を描画色で縁取る。 「エンボス」絵に斜め方向に陰影を付け、立体的にする。透明度値の境目に処理を行う。 とかですかね。
1そうだね
プレイ済み
返信[3]
親投稿
スー thanks_0u0
早速のコメントありがとうございます!( ´ ▽ ` )ノ 透明度の〜、って言うのはアルファ値が0or255のプチコンでは単純にシルエット化でしょうか?? それなら白黒2値化の閾値を目一杯上げるか下げるかすれば、白一色、黒一色、になりますよー( ´ ω ` ) 縁取りは、、うーん、透明じゃないドットにぶつかったら再帰で周りを囲む感じ?それが画面全体で複数あるとすると、走査済みのところを記憶しないと二重に囲ったりしちゃう? エンボスはきっと縁取りの方向を限定したものですよね。むむむ、方法が思いついたらやってみます!ありがとうございます!( `・ω・´ )
1そうだね
プレイ済み
返信[4]
親投稿
ish owlis1
ドット打った後、一括で色味を操作したいことがあるので輝度がいじれるフィルタがあると嬉しいです。 ..... ふと、フィルタをプラグインとして別途開発できると嬉しい方も多いのかなぁと。 ネタフィルタとか作ってくれる人も現れるかも、とか。 デカ目補正フィルタとか、集中線フィルタとか。
2そうだね
プレイ済み
返信[5]
親投稿
スー thanks_0u0
FCカラーに変換するフィルタを作ってみましたけど、1dotにつき52色のFCカラーとの距離を全て比較しているのでものすごく重いです。普通に数分待たされます。しかも1キャラ3色とかそういう賢いことはしてくれないので、実用範囲かどうか微妙なところです(・~・) >ishさん 輝度ってことは明るさ系のフィルタでしょうか。私が基本的にRGBで色作りをする人なので明るさってどう計算するか謎い?ちょっと調べてみます! 確かにプラグイン形式に出来たら良いような気もしますねー。ただ別ファイルを扱うとなるとスロット余分に使っちゃったり、普通に色々変更や整備がめんどかったりでやらない気がします!とりあえず現時点では処理を書いたファイルをくれたらコピペで実装するかもです、ってくらいでお許しくださいー( ´ ω ` )ノ
2そうだね
プレイ済み
返信[6]
親投稿
ish owlis1
特定の拡張子のファイルがエディタと同じプロジェクトにあったら、ファイルを文字列として読み込んで余ったスロットに出力、useをしてくれるとかで実装できそうでしょうかねぇ 「ファイル名やら関数名がぶつかっても保証しない」「エディタの内部変数は操作できず、フィルタはグラフィック画面を直接操作する」とか色々と制限が必要でしょうけど。 .....あれ、フィルタじゃなくて、汎用の外部機能ですね、こりゃ。 思いつきなので余り気にさらなぬようゥー 輝度フィルタとは書きましたが、明るさやら色味が一括で操作できれば私の用途では満足なので、現在開発されているもので事が足りそうな気が^^; スピード面の話は「選択された範囲」のみ、フィルタを有効にするとか
1そうだね
プレイ済み
返信[7]
親投稿
myu314 myu314
僕も色合いよく弄るので、色相・彩度・輝度あたりがあるとほっとします:) なんか地味になって彩度あげるのがよく。 RGBをHSLに変換してからそれぞれ数値いじってからまたRGBに戻すって感じですかね。 あともしメモリに余裕があるようでしたら、GLOAD/GSAVEを使ってある程度高速に処理できるかもしれないです。 具体的にはGRPが1面と、PAL%[65536],IMG%[512,512]がぐらい。 1ピクセルずつ同じ計算式で変換していくタイプの処理限定ですけども… (セピアとかはできるけどぼかしたりは無理) ちょっと簡単なサンプルつくってみます。
1そうだね
プレイ済み
返信[8]
親投稿
myu314 myu314
512x512の画像をグレイスケールに変換するサンプルです。 【BXVQQ34J】 FC変換処理もこの方法+作ったパレットをファイルに保存で高速化できないかなぁと。
1そうだね
プレイ済み
返信[9]
親投稿
スー thanks_0u0
>ishさん 外部ファイルの取り込みは、今ですらバグ報告が相次いだりしているので結構不安があるんですよね(ノ´∀`*) 範囲限定はやりたいような気もするんですけど、今のところそういう作りにはなっておらず。。。範囲選択中だとメニューすら開けない体たらくです(´=ω= ` ) 殆どのフィルタは透明を無視するので、作業用のGRP面に必要な部分だけ貼り付けてからフィルタをかけることで早くなったりはしますけれど。。。 >myu314さん HSL系というか色相変換は私も欲しいので、難しそうですが調べて何とかどうにかしたいです……!( ´・ω・` ) 高速化サンプルありがとうございます!目からウロコでしたすごい!すごく早そうなのでこの方法でやってみますありがとうございます!!( ´ ▽ ` )ノ
0そうだね
プレイ済み
返信[10]
親投稿
スー thanks_0u0
myu314さんの方法でやったら爆速です!やった、ありがとうございます!( ´ ▽ ` )ノ プレビュー表示でも使うので、起動時にファイルをチェックして、なければ出力するようにしました。 閾値を変えたりするタイプのも、512x512を変換するよりパレットにした方が早かったりするのでしょうか。早そうな気はしますよね、変えようかなぁ( ´ u ` )
0そうだね
プレイ済み
返信[11]
親投稿
スー thanks_0u0
色々やってみて、プレビュー(64x64)は1dotずつ計算、実際の処理はパレット方式、が早そうな感じでした! ちょっとお休みして他の方のゲームで遊んだりしてからHSL調べるぅー( ´ ω ` )
0そうだね
プレイ済み
返信[12]
親投稿
スー thanks_0u0
そういえば以前、レトロ感の再現のためにGBC実機を見て作った色があったなぁ、って思ってフィルタに入れておきました!( `・ω・´ ) 初代、ポケット、light、スーパーゲームボーイ、など他機種の色情報がございましたら教えてくださると嬉しいです!
0そうだね
プレイ済み
返信[13]
親投稿
スー thanks_0u0
もう一度実機を見て微調整しました!このレトロ感、テンションあがるよー!\(( °ω° ))/
1そうだね
プレイ済み
返信[14]
親投稿
myu314 myu314
ちょっと遅くなったけどパレットを使うやり方、画像サイズで考えると256x128分の処理になります。 (16bit 65536色 から透明色を除くと32768色=256x128) なので64x64の場合はその場で処理するほうがいいですねー。
1そうだね
プレイ済み
返信[15]
親投稿
スー thanks_0u0
使うサイズの目安まで教えていただいてありがとうございますー( ´ ▽ ` )ノ これで迷わずにパレット方式と使い分けられますね!正方形なら181x181くらいまではその場処理が早い感じ?みたいですね。 全然思いもよらなかった方法なので、ちょっと昨日から感動しています!( ´ ω ` )
0そうだね
プレイ済み
返信[16]
親投稿
スー thanks_0u0
うーんー?wikipediaの変換式を入力してみましたが、RGBに戻したときにマイナスが出てしまったり31を超えてしまったりして。。。 何とか収めるように場合分けしたりしましたが、それでもちゃんとした対応は取れないみたい…?( ´・ω・` ) 小数の誤差なのでしょうか。そういうものなのか、何かちゃんとする方法があるのか。。。むむむ(´=ω= ` )
1そうだね
プレイ済み
返信[17]
親投稿
イスターリャ arduinotexter
WHILE R%<0 R% = R% + 32 WEND でR%を0からの整数に変換。 後はR% MOD 32え超えちゃった分を削れば大丈夫です。
0そうだね
プレイ済み
返信[18]
親投稿
イスターリャ arduinotexter
>後はR% MOD 32え超えちゃった分を削れば大丈夫です。 後はR% MOD 32で超えちゃった分を削れば大丈夫です。
1そうだね
プレイ済み
返信[19]
親投稿
スー thanks_0u0
ありがとうございますー。 単純に範囲内に収めるだけならそれで良いのですけれど、一応HSLからRGBの変換でそれだと思った値にならないので、最小がマイナスなら最大と足して最小を0にする、最大が31より大きいなら最大-31を最小に足して最大を31にする、っていう感じにしておきましたー(・u・) 今は、RGBから変換したHSLとHSLから変換したRGBの値が1:1で対応していないのが気持ち悪い感じですー…(´=ω= ` )
1そうだね
プレイ済み
返信[20]
親投稿
イスターリャ arduinotexter
WikipediaのHSLの項目、値の範囲が書いてないっぽい。 Wikipedia以外を参照した方がいいかも。 例えば http://www.peko-step.com/tool/hslrgb.html
1そうだね
プレイ済み
返信[21]
親投稿
スー thanks_0u0
ありがとうございますー!一応そのサイトもチラ見していましたけれど、ちゃんと見てなかったかもなのでよく読んでみます!( ´ ▽ ` )ノ
1そうだね
プレイ済み
返信[22]
親投稿
スー thanks_0u0
よく読んだら、多分そのサイトは円柱モデル?っぽい?? 今は一先ず計算式が単純な円錐モデルでやろうとしているので、もうちょっとお勉強してみますー。むずい。。。( ´・ω・` )
1そうだね
プレイ済み
返信[23]
親投稿
スー thanks_0u0
HSL変換はまだいまいちうまくいきませんが、なんとスーパーゲームボーイが発掘されました!一応目でテキトーに合わせて追加はしてみたものの、あんまりレトロ感はでなかったので残念。。。(・д・) やっぱりTV画面のにじみとかが欲しいー。
1そうだね
プレイ済み
返信[24]
親投稿
スー thanks_0u0
結局BIG_TEXTERさんのリンクみたいな式が一般的みたい?? ソース丸ごと載ってるサイトがあったので例外処理も含めて真似っこしてみたら、もしかしたら大丈夫になったかも?しれません?もうちょっと見てみますー。 これでちゃんとなったらフィルタが作れる……!頑張ろう(・u・)
0そうだね
プレイ済み
返信[25]
親投稿
myu314 myu314
HSL(円柱モデル)ちょっと試してみたんですが、RGB[0-31]と1対1かつ整数にしようとすると H[0-135] L[0-62] S[0-31]な範囲でうまくいきました。 Lも31までにしたかったんですけど、どうにもうまくごまかせない… まだPCでしか試してないんですが、今晩プチコン版も作ってみようかと思います。
1そうだね
プレイ済み
返信[26]
親投稿
スー thanks_0u0
ありがとうございますー! 私も最初Lを31までにしたら上手くいかず、範囲がおかしいな、って思ってLを100にしたらある程度対応取れるみたいでしたー。 100で良いかなって思っていましたけれど、ちゃんと対応が取れる範囲を教えていただけたので後で範囲を変えてみます!Hも範囲少なくて良かったんですね、角度だからだめかも?って思ってました! myu314さんいつも私のやりたいことを的確に教えてくださって感謝感謝です!とても有益な情報ありがとうございますー!\( ; ω ; )/
0そうだね
プレイ済み
返信[27]
親投稿
スー thanks_0u0
はっ、もしかしたらHって186必要、なんてことはないでしょうか? Lが62必要なのは、L0〜31ではRが0〜31まで増えて、L31〜62ではGBが0〜31まで増えるから、ですよね。 同じように、H0〜60度ではGが0〜31まで増える、60〜120度ではRが31〜0まで減る、って考えると、31*6=186で1:1の対応になるのかもー? まだふと頭で考えただけなので、後でちゃんとプチコンしながら考えてみますー(・u・)
0そうだね
プレイ済み
返信[28]
親投稿
myu314 myu314
0度が赤、60度が黄、120度が緑って進みますが、Gが31のときってもう黄色ですよね。 つまり0と31は前後の領域と重なってます。 だから各領域31段階必要で31x6=186段階、0から始まるから185までになります:)
1そうだね
プレイ済み
返信[29]
親投稿
myu314 myu314
ってあれなんで135って書いてるんだろう… 今出先なんでかえって確認します、すみません!
1そうだね
プレイ済み
返信[30]
親投稿
スー thanks_0u0
今やってみました! H0〜185、S0〜31、L0〜62、でバッチリでしたありがとうございます!( ´ ▽ ` )ノ これでエディタの方に移植出来るー!でもとりあえず食休み。。。(・u・)
1そうだね
プレイ済み
返信[31]
親投稿
myu314 myu314
うまくいったようでよかったです! というか混乱させてしまってすみません…135は打ち間違いです、カッコわるい; 一応今更ですが僕の作ったのRGBとHLSの変換はこんな感じっす 【 C3ANEJ4X 】 wikipediaの式を割とそのままなんですが、絶対値を使った彩度の式はなかなかトリッキーですね。 変形したら納得したけれど、何やってるかはわかりにくい… バージョンアップ楽しみにしてます:)
1そうだね
プレイ済み
返信[32]
親投稿
MIKI ifconfig
二値画像について ・8近傍セル(と中央セル)の値から中央セルの値を決定するフィルタ があるといいですね。これを使えば ・破線をつなげるフィルタ ・ライフゲーム一世代適用するフィルタ などが簡単に作れます。 同じく二値画像について ・連続領域の画素数を数える ・連続領域画素数が閾値以下ならクリアする ・連続領域の外接長方形を求める ・連続領域の外接長方形の縦横比が閾値に入っていないものはクリアする ・ラベリング(連続領域にそれぞれ識別番号をつける) とかあるといいですね。
1そうだね
プレイ済み
返信[33]
親投稿
MIKI ifconfig
最初のやつですが、8近傍セルに例えば以下の重み付けをします。 1|2|4 8|256|16 32|64|128 で、重み付けした値を合計して、その値とルールとして与えた値が同じだったら、次世代の中央セルを 1 とし、そうでなければ 0 とします。 ルールは単に 0 から 511 の数値を書いておけばいい。 例えばライフゲームの「周囲の生きているセル数が 3 ならば、そのセルは次世代生存」というルールは 1+2+4, 1+2+8, 1+2+16, 1+2+32, 1+2+64, 1+2+128, 1+4+8, 1+4+16, ..., 32+64+128 といった感じの数値を並べておけばいいわけです。 破線を埋めるだったら、1+128, 2+64, 4+32, 8+16, 1+16, 4+8 あたりをルールとして与えればいい。
1そうだね
プレイ済み
返信[34]
親投稿
スー thanks_0u0
連続領域とかはゴミ取りとかに使う感じでしょうか?(・u・) 二値画像を特別に扱うシステムにはなっていなかったりドット絵的に使い道が薄そうな感じはするのですが、重み付けをしたり周囲のセルから何かをするのは応用が利きそうかもですね!ありがとうございます!( ´ ▽ ` )ノ
0そうだね
プレイ済み