2017/04/09(日) [n年前の日記]
#1 [dxruby][ruby] ドット絵モドキを自動生成するRubyスクリプトを少し手直し
ドット絵モドキを自動生成するソレを Ruby + DXRuby で試しているところ。
_先日の実験 では、乱数でテキトーにドットを打っていくという安易なやり方でも、
結果はこんな感じに。前回は3倍表示してたけど、コレは原寸表示。(16x16 を Scale3x で3倍に拡大して生成。
意外とイケそうな…でもないかな…どうなんだ…ちと判断が難しい微妙な結果に。
ちなみに、8倍に拡大するとこんな感じに。
これはこれで味わい深い…のかな…どうなんだ…。
_先日の実験 では、乱数でテキトーにドットを打っていくという安易なやり方でも、
- 生成サイズを 8x8 〜 16x16ドットぐらいに小さくしておく。
- 輪郭と言うか、型と言うか、シルエットを大まかに決めておく。(今回はsinカーブで決めている)
- 境界線(黒い縁)をつける。
- 使う色数を少なくしておく。
結果はこんな感じに。前回は3倍表示してたけど、コレは原寸表示。(16x16 を Scale3x で3倍に拡大して生成。
意外とイケそうな…でもないかな…どうなんだ…ちと判断が難しい微妙な結果に。
ちなみに、8倍に拡大するとこんな感じに。
これはこれで味わい深い…のかな…どうなんだ…。
◎ ソースについて。 :
ソースは以下。tinypixelartgen_take3.rb と scalenx.rb の2つが必要。
_tinypixelartgen_take3.rb
_scalenx.rb
Ruby + DXRuby がインストールされてる環境で、ruby tinypixelartgen_take3.rb を実行すると生成される。スペースキーを押せば次々に生成し直し。
_tinypixelartgen_take3.rb
_scalenx.rb
Ruby + DXRuby がインストールされてる環境で、ruby tinypixelartgen_take3.rb を実行すると生成される。スペースキーを押せば次々に生成し直し。
◎ ライセンス面での問題。 :
惜しむらくは、Scale2x、Scale3x がGPLなので、Scale2x、Scale3x を利用してるこのドット絵自動生成スクリプトも GPL になるあたりが厳しいなと。いわゆるGPL汚染。
このスクリプトを何かに組み込んで利用したいと思っても、おそらくはそのアプリ全体までGPLで配布しないといけないのだろうと…。MIT License や CC0 / Public Domain に比べると、GPLは不便と言うか不自由だなと。
ん? 待てよ? 自分は _Scale2xのアルゴリズム解説ページ を参考にしてソースを書いたけど、 _Scale2x の exe のソース は一切見ないでソースを書いたわけで…。それでもこのスクリプトはGPLになるんだろうか?
いや、でも…。処理の肝心要の部分を解説ページ中から丸々コピペしてるのだから、コレはやっぱり GPL になるのかしらん。どうなんだろう。
まあ、ニアレストネイバー(Nearest neighbor)で拡大したほうがドットが強調されてドット絵らしさが増すのでは、という気もするので、いざとなれば Scale2x を使ってるあたりをゴッソリ削除してもいいんじゃないか、そうなれば自由に使えるやろ、と思ったりもしますが。
このスクリプトを何かに組み込んで利用したいと思っても、おそらくはそのアプリ全体までGPLで配布しないといけないのだろうと…。MIT License や CC0 / Public Domain に比べると、GPLは不便と言うか不自由だなと。
ん? 待てよ? 自分は _Scale2xのアルゴリズム解説ページ を参考にしてソースを書いたけど、 _Scale2x の exe のソース は一切見ないでソースを書いたわけで…。それでもこのスクリプトはGPLになるんだろうか?
いや、でも…。処理の肝心要の部分を解説ページ中から丸々コピペしてるのだから、コレはやっぱり GPL になるのかしらん。どうなんだろう。
まあ、ニアレストネイバー(Nearest neighbor)で拡大したほうがドットが強調されてドット絵らしさが増すのでは、という気もするので、いざとなれば Scale2x を使ってるあたりをゴッソリ削除してもいいんじゃないか、そうなれば自由に使えるやろ、と思ったりもしますが。
◎ 課題というか別の疑問。 :
「5x5ドットぐらいなら横方向3ドット分を作ってミラーするだけでもそれっぽくなるよ」てな方法があるのだけど。
_Space Invader Generator | The 8Bit Pimps Pixel Mine
たしか、GitHubのアイコンも同様の手法で生成されてたと思ったけど。
_Identicons!
それらの各1ドットに、事前に用意した8x8ドットのパターンをランダムに置いていったらどうなるかなと疑問が。例えば以下のようなパターンを使って…。
_mieki256's diary - DXRubyでキャラグラエディタを作ってみた
どうなるんでしょうね。
_Space Invader Generator | The 8Bit Pimps Pixel Mine
たしか、GitHubのアイコンも同様の手法で生成されてたと思ったけど。
_Identicons!
それらの各1ドットに、事前に用意した8x8ドットのパターンをランダムに置いていったらどうなるかなと疑問が。例えば以下のようなパターンを使って…。
_mieki256's diary - DXRubyでキャラグラエディタを作ってみた
どうなるんでしょうね。
[ ツッコむ ]
以上です。