brickrパッケージを利用してあつ森のマイデザインを作った

ネタ記事です。

最近、「あつまれ どうぶつの森」にハマっているのですが、
その中でマイデザインという機能があって、
自分でデザインした絵を飾ったり、服を着たりできます。
(この方、上手すぎですね)



ゲーム中でこれをどうやって作っているかというと

f:id:tsuyu_pon:20200410160234p:plain

こんな感じに32×32のキャンバスに1マスずつ色を塗って作っていきます。

これが思った通りにいかないのなんのって…。



簡単に描くいい方法ないかなーと思っていたところ、TwitterのTLで

こちらが流れてきて、「これ使えるじゃん!」と思い、実際にやってみました。



brickrパッケージ

github.com

もともとは画像や行列からLEGOブロックの構造を算出し、出来上がり画像や作るのに必要なLEGOブロックの部品を教えてくれるパッケージです。


READMEを見ればすぐ使えると思います。



使ってみた

今回は来週16日に第7回が開催されるspoana*1のロゴを使ってみます。

f:id:tsuyu_pon:20200410164432p:plain

最もきれいに出力する方法は、下記コードのピクセル幅と高さ(img_size)を元画像と同じものに指定する方法ですが、 マイデザインは32×32と小さいので、極力近づくよう今回は96×64(つまりマイデザイン6枚分)にしました。

# install.packages("brickr", dep=T)
library(brickr)

img <- png::readPNG("spoana.png")

mosaic <- list(c(1,2,3), c(1,3,2), c(2,1,3), c(2,3,1), c(3,1,2), c(3,2,1)) %>% # RGBの組み合わせ 
    purrr::map(~ img %>% image_to_mosaic(img_size = c(32*3,32*2), brightness = 1.1, warhol = .x) %>%
    build_mosaic())

patchwork::wrap_plots(mosaic)
# 色の調節が簡単に出来なそう…。別途行列のスケーリングを調整する必要がある。
# 簡単にできる範囲だと上段2番目の画像がよさそうなのでこれを採用した

f:id:tsuyu_pon:20200410162806p:plain

ちょっと潰れちゃってますね…。



ちなみに今回は使わないですが、必要なLEGOブロックも簡単に出せます。

img %>% 
    image_to_mosaic(img_size = c(32*3,32*2), brightness = 1.1, warhol = c(1,3,2)) %>%
    build_pieces()

f:id:tsuyu_pon:20200410163015p:plain



結果

微調整はしたものの10分ほどですぐ出来ました。

f:id:tsuyu_pon:20200410155429p:plain

f:id:tsuyu_pon:20200410155414p:plain


きれい!!…とはなりませんでしたが、読めますね。

ちなみに後ろの球場もマイデザインで作りました!

カミツキガメバッテリーです。



まとめ

  • brickrパッケージを使ってあつ森のマイデザインの下地を作りました
  • カラフルな画像やサイズの大きい画像は調節が必要ですが、参考にする程度であれば十分でしょう

以上、トリビア記事でした。


ENJOY!