はじめに
こんにちは。gyoxiです。
4月になってからまーーー忙しいわ朝が早いわ眠いわで大変、大変でございますが、まあなんとか生きております。
さて最近のことですが、ニコニコ動画にて趣味のクソ動画漁りをしていたところ、このような動画を見つけました。
ほえーー!!!めっちゃ素敵!俺もやってみてぇ!
でもいきなり動画弄るの難しそうだよなぁ...
じゃあ画像の方からやってみっか!
てな感じで私、グリッチアートに手を出しました。
というわけで今回は、私自身もド素人ではありますが、自分が調べて知ったグリッチアートのアレやコレやをご紹介したいと思います。
グリッチアートってなんだ?
とりあえずご覧頂きましょう。こういうやつです。
はい、なんというかこう、バグった感じのやつですね。
我らが名作同から発売・配信された「机上の空中散歩」のジャケットもある意味グリッチアートなんじゃないかと思います。
ただまぁ、バグった感じのやつとひとまとめにするのもアレなので、自分がなるほど!と思ったグリッチに関する文書を引用させていただきます。
2 グリッチ表現の在り方は、正しい方法に忠実なソフトウェアが間違った一つのビットを扱う、その無能性に依っている。その意味で「グリッチ」という語は、単になんらかの失敗を引き起こす要因を意味するのではなく、不適切なデータが適切に処理されたその結果をも意味するのである。一個の問題に遭遇し、そしてソフトウェアは落ちるのではなく、なにかを吐き出しつづける。別の言い方でいうと、それは間違ったデータに遭遇したときに<十全に失敗する>という、プログラムに与えられた天性の欠陥であり、それがグリッチが存在する余地を生んでいる。そのような欠陥による撹拌を推し進めること、グリッチアートと呼ばれる手法の難解な箇所はその点なのである。
https://gist.github.com/ucnv/35d8ff75ef46e1a16f11
なるほどね、なるほど。
この文書のなかで私が特になるほどと思った部分は
「不適切なデータが適切に処理されたその結果をも意味する」
という部分です。
たとえば「glitchartisbutiful(グリッチアートは美しい)」という文字列があるとしますね。では、入力した文字を印刷してくれるロボット君にこの文字列を打ち込んでみましょう。文字列を入力してやると、ロボット君は正しく文字列を打ち出し、我々は「glitchartisbutiful」というメッセージを読み取ることができます。
さて、ここで我々がロボット君にいたずらをして打ち込まれたアルファベットを日本語として認識するように変えてしまいましょう。先ほどと同じように文字列を入力すると、ロボットくんが打ち出した文字列は「gぃtちゃrちsぶちふl」。はい、とたんに何が書いてあるか分からなくなりました。ロボット君はなにも悪くありません。やったことは「入力された文字列を日本語として処理するように改造した」ということです。この改造こそがグリッチアートを作る際に行うことであり、改造の手法の違いによって様々なバグった文字列が錬成されるというのがグリッチアートづくりのひとつの面白さなんだと思います。
じゃあやってみようぜ
と、いうことでやってみましょう。グリッチアートづくり。
インターネット上を調べると、簡単かつ様々な手法でグリッチアートの制作方法が載っていますが、とりあえず今回は自分が色々調べてやってみたことをご紹介したいと思います。
1.画像をバイナリで読み込めるようにしてみる
私は「グリッチアートづくりというのは、どうやら画像の元データをアレコレ弄って作っているらしい」ということだけ知っていたので、ネット上に落ちていたフリーソフトでその元データを読み込めるようにしました。使用したのはこちらのソフト。
このソフトで名作同のロゴを読み込んでみると...
????????
初っ端から訳が分かりませんね、どういうことでしょうか。
パソコン上のデータというものは0と1の信号であります。ただそれを0と1で表現しようとするとクソ長くなってしまいます。そこで0と1の文字列を8文字ごとに区切り、その8文字を16進数で表したものが上の文字列という訳であります。
いやそんなこと言われても何が書いてあるか訳わかんねぇよ!
2.jpegを理解してみる
ただ文字列を見ているだけでは訳分からんので、画像のことについて調べることにしました。名作同のロゴ画像はjpeg形式なので、jpegの画像データの解説を調べます。こちらも色々と解説してくれているページが見つかりました。
正直読んでも訳分からんかった部分は多いですが、このページを読んで分かったことは
- jpeg画像は「セグメント」なるパーツの組み合わせから成っている
- セグメントの頭の数字は「FF**(**は各セグメントごとの固有の数字)」
- セグメントの中には触っちゃいけない部分、特定の数字しか入らない部分がある
- つまりグリッチは触っていいところを弄り回して画像を改造している
てな感じでした。
で、たくさんある「FF**」の中で「FFDA」は「スキャン開始セグメント」といい、要は「ここから先画像を読み込むためのデータが入ってるぞ!」って感じの部分らしい。すなわち、「FFDA」から先の文字列を良い感じにぶっ壊せば良い感じに画像がグリッチされるということなのだ!
あとはとっても簡単、壊してもいい部分の文字列を削除してみたり、コピペしまくってみたり、文字の置換をしてみたり。ただし、あまりにも弄りすぎると画像を読み込まなくなるのでご注意を。画像データは生かさぬよう、殺さぬよう...
3.実際にやってみる
実際に上の手法で作ってみたものがこちら。
途中、あまり変化がみられなかったり、画像が読み込まなくなったりしてしまったが、試行とUNDOを繰り返した結果、どれも良い感じの画像が生成されました。やったね。
おわりに
と、いうわけで今回はグリッチアートの作り方について説明しました。今回はjpeg形式の画像破壊をしましたが、gif形式やpng形式など、各画像の形式によっても壊れ方は異なり、形式ごとに違った美しさが見られます。また、動画は動画でデータモッシュという手法があり...
と、このようにグリッチは奥が深くとても面白く感じております故、これからもちょくちょく勉強していこうかな、と思っている次第であります。
休校でヒマしてるそこの君!
外出を控えよ!うちで過ごそう!
そしてグリッチ画像を作りまくれ!
それではまた!