画像処理というか簡単なフィルタ処理を行ってみた結果(備忘録)です.
・同じ素材が用いられたゲームとの差別化
・目新しさの提供
等々,実用化できればそれなりに有用なのではないかと感じた次第ですが・・・
「面白そうだから手を付けてみた」が正しい理由となります.
まずは結果から.
画像にポインタを重ねると簡単な説明が出てきますが,
要はマップチップをぼかして表示しただけです.
◆◆◆結果はここまで◆◆◆
(以降は思ったことを書き連ねるだけなので,興味ない方は回れ右でお願いします)
今回行ったものは平均化フィルタと呼ばれる処理です.要はモザイク.
周囲の画素値との平均値をとる処理で,右上の画像は3x3領域の平均値
左下の画像は5x5領域の平均値をとっています.
ん・・・ウディタで画像の画素地を取得できたっけ?
と感じた方,鋭いご質問です.
ウディタでは画像の画素値を変数上に取得できないので,今回はマップチップを
画素ごとに分割して表示し,背面が真っ黒な位置に不透明度や拡大率を調整して表示しています.
つまりは「平均化されているように見えるだけ」ということ.
実用化についてですが,正直難しそうです.理由としては以下の3点.
・画素毎に表示しているので,表示するマスの数によってはピクチャの数が膨大になる
・(自分が知らないだけかもしれないが)マップタイルを画像としてゲーム中に取得できない
・画像分割は分割数を10000以内に納めなければならない
(▼読まなくていい場所)
今回の処理を用いて自分がやりたかったことは,
「画面周囲のマップチップのみぼかして,主人公の特殊な心理状態等を表す」
「マップチップを画素単位でゆっくり揺らして,水中等特殊な場所であることを示唆する」
というようなことだったので,必然的に画面全体に処理を行う必要がありました.
640x480の画面に表示される32x32のマップチップは300枚.それ一マスごとに1024枚の
ピクチャを表示しようとすると,たった1画面の処理だけでピクチャ枚数が30万枚を超えてしまいます.
また,汎用的な処理を行うためには,指定座標に存在するマップチップの画像を呼び出す必要が
ありますが,マップタイルを画像として呼び出す方法がデフォルトでは存在しないとなると
専用のDB等を作成しなければならず,仮にタイルを画像として呼び出せたとしても
画像の最大分割数は10000ですので,それに納めようとすると10マス以上の情報を持ったタイルを呼び出した時点で画素ごとに画像を分割することができなくなります.
やりようによってはできるのかもしれませんが,そこに労力を割くくらいなら
もっと優秀で使いやすいフォグ素材や,効果的な演出法がありそうですよね・・・
ということで今回はここまで(その2は高確率で無さそう)
よい方法をご存じの方や,方法を思いついたけどめんどくさくて自分でやりたくない方など
ぜひわたくしに知恵を貸してください.
「ウディタ上で汎用的なフィルタ処理してみたい!」
次はこちら(その2