最近Switch上的《動物森友會》可謂是炙手可熱,它幾乎算是任天堂版的《模擬人生》了,它的最新游戲《集合啦!動物森友會》(以下稱“動森”)在發售後,取得了不錯的媒體評價和首發成績。 動森火起來有大部分原因是因為它的細節做的很到位,例如最受好評的:玩家可以自己手工DIY。(說實話,如果不是動森,我的N ...
最近Switch上的《動物森友會》可謂是炙手可熱,它幾乎算是任天堂版的《模擬人生》了,它的最新游戲《集合啦!動物森友會》(以下稱“動森”)在發售後,取得了不錯的媒體評價和首發成績。
動森火起來有大部分原因是因為它的細節做的很到位,例如最受好評的:玩家可以自己手工DIY。(說實話,如果不是動森,我的NS可能還在積灰~)
我們可以先看看別人的DIY:
《火影》
《銀魂》
《神奇寶貝》
感覺都做的很棒唉!其實做這些DIY主要就是如何設計這些卡通圖片,如果大家不怎麼會設計,那下麵我就來帶著大家使用Python來生成DIY設計圖!
首先我們準備一張圖片:
下麵我們就來對這個圖片進行處理,我們主要使用matplotlib來處理圖片,使圖片馬賽克化。
首先安裝對應的模塊:
pip install numpy
pip install matplotlib
附上代碼:
import numpy as np from matplotlib import pyplot as plt # jupyter環境 %matplotlib inline # 指定圖片大小 plt.figure(figsize=(40, 40)) # 讀取圖片 pic = plt.imread('./349.png') # 指定馬賽克程度,數字越大越模糊 pic = pic[::15, ::15] # 設置坐標軸,方便對照取色 plt.grid(axis="y") plt.grid(axis="x") # 設置坐標軸取值0-41是範圍,0.5是單位長(精度) plt.xticks(np.arange(0, 41, 0.5)) plt.yticks(np.arange(0, 41, 0.5)) # 坐標顯示,起始值顛倒對圖片有旋轉效果 plt.xlim(0,40) plt.ylim(40,0) plt.imshow(pic) #保存圖片 plt.savefig("鬼斯.png")
(代碼中具體的數據大家都可以繼續調整,可能我的數據也不是最優的,例如鬼斯的眼睛可能還需要自己在手工作圖的時候加上)
效果:
再來換一張小豬佩奇試試:
主要代碼我都寫上註釋了,這邊主要說一下,imread方法讀出的對象是一個numpy的數組:
[[[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] ... [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] ... [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] ... [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] ... [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]]
我們馬賽克的過程其實就是將數組壓縮的一個過程,這個其實和list的切片的步長(list[::x])是一個道理。
最後,在動森上作圖的時候,有一點需要註意一下,動森面板的馬賽克格子密度比較低,我們取色的時候可以按照四個格子取一個色(畢竟都是眼球取色,也沒有RGB取色,我是將就湊合著取了,還有就是動森中一張圖片最多只能使用 16 種顏色,大家選擇圖片的時候也要註意一下,儘量選擇和我差不多的一些無背景的圖片。馬賽克圖片應用在平面和衣服上的效果可能會有差距(畢竟衣服是曲面的),所以邊緣線可能還需要大家自己酌情調整一下。
如果你處於想學Python或者正在學習Python,Python的教程不少了吧,但是是最新的嗎?說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2020最新的Python教程。獲取方式,私信小編 “ 資料 ”,即可免費獲取哦!