邱誠 田青 沈九美
(1.南京信息工程大學計算機學院、軟件學院、網絡空間安全學院,江蘇南京 211800;2.南通理工學院傳媒與設計學院,江蘇南通 226002)
2021年以來,加密藝術受到越來越多的關注。NFT,一種新型加密技術,作為加密藝術的重要組成部分,開始走進人們的視野。自其2020年誕生以來至今發展勢頭迅猛[1]NFT全稱Non-Fungible Token[2],意為非同質化貨幣,是一種用于表現數字資產的技術。NFT的火爆“出圈”,吸引了國內藝術界的大量關注[3]。其基于區塊鏈技術的唯一性與不可更改性使得它成了一種極具權威性的防偽數字憑證,又具備買賣的交易特性。然而當前過熱的NFT市場也意味著NFT市場即將迎來一次產業革新,如何制作出優質精良的NFT成了NFT從業者需要考慮的首要問題。
基于加密技術的特性,鑄造NFT會消耗寶貴的區塊資源,勢必會過濾大量劣質的NFT,因此能夠使有創作實力的創作者花費更少的開銷將其作品部署到區塊鏈上。然而,由于NFT現在主要作為一種投機資產,對社會產生的實際價值十分有限,不過隨著加密技術與區塊鏈技術的不斷發展,可以預見在不久的將來,NFT的交易會像日常購物一樣簡單便捷。根據對Opensea平臺的長期調查,目前市面上流行的NFT藝術作品大致上有兩種類別,一是單幅的藝術大作,二是成套的頭像合集。第一種NFT在創作上沒有技術門檻。這里重點講述第二種NFT的制作過程。這種NFT流行的原因就是其負載了身份標識的作用,某個NFT集合的消費者可以與該NFT集合的其他消費者進行圈內交流,該NFT就相當于其社交圈的通行證。這類NFT的特點就是,規模巨大,一個NFT頭像系列的合集通常包含10000個不同的NFT圖片,大規模的制作就涉及如何自動化生成的問題。這類NFT的制作可以分為作家個人理念的創作與程序自動化生成兩部分。
NFT的首要屬性應該是作為藝術品[4]在理念創作階段創作者需要將設想中的作品拆分成多個模塊,并分別為每個模塊創作大量獨特的方案,之后采用編程的手段來自動挑選各個模塊中不同的方案隨機生成完整的畫作。
主題釋義:2025年,一塊隕石從月亮掉落到地球,在高溫的末日,所有的人類都不幸被摧毀,但幸運的是每個人都只有失去了他們的皮膚。我們把其稱為“火箭人”,他們保存了完整的骨骼和人類的智慧,為了呈現最好的畫面效果,我們聚焦與“火箭人”的胸部以上的部位,展示他們區別于現代人的另類頭像。
對于原始巫師來說,如果想要進入神圣世界,最關鍵的一步就是必須將身體精簡至骨骼狀態[5]。古代先民有頭顱崇拜的觀念,他們認為死者的頭骨具有某種神秘的力量[6]。
“白骨觀”作為佛教的重要修行方法之一,歷來被顯密各宗所重視和尊奉。主體骨架的造型設計參考了真實世界中的人類骨骼,分為頭部和身體兩部分。
頭骨模板有四種類型,分別為真實型,類人型,惡魔型與科技型。真實型顧名思義,就是參考真實人類頭骨設計出來的模板,保留了額骨,顳骨,鼻骨,上頜骨和下頜骨等特征。其設計的初衷就是要貼近真實頭骨,其次是由于作者對一個名叫異星迷航的游戲中穿著宇航服的骷髏主角印象尤其深刻,故萌生了設計太空骷髏的想法。
類人性的設計靈感來源于人類的面容。由于在項目創建之初,致敬大衛鮑威的初稿效果不錯,因此保留該設計作為第二類模板。其著重刻畫了人的唇部特征,鼻孔與鼻梁,比較貼近真實人類的面部模樣。
惡魔型的設計參考了恐龍和惡魔造型的圖樣,眼部類似惡魔的眼睛,鼻孔的造型則是取自一種原始恐龍,最后呈現的效果就是亦正亦邪,桀驁不馴的造型,以彰顯當代青年的狂傲個性。
科技型的設計靈感來源于一種激光發射裝置,鼻孔呈長條狀,是源于散熱孔的設計。可以看出眼部設計的一大細節,就是眼眶的內部展現出的星云圖案。
選擇四種不同的面部模板是為了避免多面部模板可能造成的疊加沖突,太過復雜的面部組合可能會造成五官的沖突,對后期的完整作品容易產生不小的影響。
(1)固定部位的骨骼設計
制作這種合集式NFT,需要其具備一些基本屬性,就是每一件NFT圖片上都會有的相同特征,以至于能與其他同類型NFT一起產生規模效應。作者的“火箭人”NFT其普遍特征就是均以骷髏為主體。
身體部分的設計理念就是要貼近真實的人體骨架,在本作品中保留了人體骨骼中的胸椎、鎖骨、肩胛骨、肋骨、肱骨和胸骨。由于希望作品盡可能地呈現出凌厲,個性化的效果,所以作者在對真實骨架的設計方面采取簡化處理,最明顯的就是肩胛骨和鎖骨的設計。省略了絕大部分細節,而只呈現出大致的形狀。
身體部分的模板就不如頭部那樣多了,只是在材質和顏色部分做出了調整,目的是保持骨架的穩定性。有以下幾種模板:金屬型、類骨型和拼接型。金屬型就是采用金屬的材質,選擇粉灰色作為材質底色。類骨型就是采用骨頭的材質,采取了8種顏色設計,分別是深藍色、紫色、銅色、灰色、淡粉色、天藍色、暗綠色和土紅色。拼接型就是采用類骨型的不同顏色模板進行水平拼接而成,有8種設計。以上接近30種骨架模板,既保證了基礎的骨架特征,使其產生視覺上相似性,又保證了多樣性和獨特性,在后面的作品拼接時有助于產生頗具個性的NFT作品。
(2)非固定部位的設計
非固定的部位就是每位火箭人身上的衣著和飾品,這些非固定的元素會在接下來的合成中起到區分作品,彰顯每個NFT獨特性的作用。
(1)服裝
由于衣服的款式過于繁雜,下面列舉主要幾種比較典型的款式進行介紹。
①西裝
西裝的設計采用兩層結構,一是外部的西裝,二是從西裝領口露出來的內襯。外部的西裝設計采用了擬真的手法,選取了現實世界中的棉麻面料,采用了運動夾克型的西裝款式,沒有明袋。
內襯則是分為兩種,毛衣型和襯衫型,均沒有設計領帶。
西裝有助于塑造出一種都市青年的形象,具有大氣的特征,比較貼近真實世界。
②布雷澤
布雷澤是西裝的一種款式,在本NFT作品中是一種占比極大的衣著款式。靈感來源于1998年的日本動漫《星際牛仔》中男主史派克的著裝。設計理念講究隨性,這點從領帶沒有刻意打好,左側領片沒有外翻,內部襯衫的領子也沒有打理整齊就可以看出。該服裝有助于塑造一種生活精致卻又玩世不恭的都市青年形象。
③阿基拉的夾克
之所以叫阿基拉的夾克是因為該服裝的設計靈感來源于1988年大友克洋指導的動畫電影《阿基拉》中男主角金田身著的服裝。該服裝是一種高領運動夾克,原設計顏色為紅色,后改為多種顏色。作者希望通過該夾克的前衛感塑造出未來的個人形象。
④桶
這里的“桶”不是真正的桶,只是單純為該服裝的形取一個相近的名字。這件衣服的設計靈感來自各種前衛的服飾。同上面的阿基拉的夾克一樣,作者希望通過這件衣服可以塑造出未來的個人形象。
⑤宇航服
宇航服是本NFT的設計初衷,從該NFT的名字“火箭人”就可以看出該服裝的重要性。靈感就取自真實的宇航服。作者在設計該宇航服時,發覺單純的對一整件宇航服做區分容易造成趨同的問題。于是將一件完整的宇航服拆分成7個模塊,分別為脖子、管、面罩、手臂、頭盔、胸甲和胸口面板,每個模塊都有9種不同的模板可以選擇,以實現宇航服的多樣化。
⑥宇宙服
宇宙服和宇航服均屬于太空的風格。不過,宇航服偏寫實,宇宙服更像想象出來的產物。宇宙服的設計靈感源自1972年艾爾頓·約翰演唱的歌曲《火箭人》。該服裝的設計初衷是鼓勵當代青年人能有星辰大海的目標,去追求自己的理想。
(2)發型
本NFT為每個人物設計了頭發模塊,由于一些衣服的特殊性,導致一些頭發不得不單獨為該服裝設計模板,剔除掉這些頭發,總共的頭發模板包括54種,其中包含25種發型,29種頭飾。頭飾有角、棒球帽和耳機。發型則有爆炸頭、大衛鮑威的鯔魚頭、蘑菇頭、大背頭、星際牛仔的爆炸頭和搖滾明星的長卷發。
隨著主體骨架、發型、服飾、配件的設計,NFT的主要元素設計完成,最后留下的設計任務就是背景了,由于主體造型比較復雜,顏色也比較豐富,所以背景的設計大多比較簡單,如:單色、漸變色、簡單明了的天空等低調風格的背景,這些背景基本百搭。由于這套NFT作品還有太空、懷舊、前衛的設計元素,所以也設計了幾款比較炫酷的背景,如太空場景、手繪絢爛的夕陽美景,還有滿滿節奏感的特效墻面。
使用Python作為開發語言,圖片處理主要使用Pillow函數庫。合成NFT的原理比較簡單,先生成隨機數,用于各模塊的隨機組合。然后確定各種模塊的疊加次序。例如,骨架應該作為初始的模塊,在該模塊的上面疊加衣服、飾品模塊,最后將整體疊加到背景模塊上,實現完整的作品。另外,為了防止產生重復的組合方案,需要采用哈希的數據結構來存儲每次生成的不同序列號,保證了所有方案的唯一性。
while i !=2001:
skull=random.randrange(1,30,1) #產生每個模塊的隨機數
hair=random.randrange(1,55,1)
cloth=random.randrange(1,58,1)
beard=random.randrange(1,10,1)
background=random.randrange(1,54,1)
accessories=random.randrange(1,106,1)
if judge(skull,hair,cloth,beard,background,accessories): # 判斷是否和之前的組合重復
continue
img1=Image.open("C:\Users\Ke\Desktop\NFT\骨架\"+skull.str()+".png")
img2=Image.open("C:\Users\Ke\Desktop\NFT\頭發\"+hair.str()+".png")
img3=Image.open("C:\Users\Ke\Desktop\NFT\衣服\"+cloth.str()+".png")
img4=Image.open("C:\Users\Ke\Desktop\NFT\胡子\"+beard.str()+".png")
img5=Image.open("C:\Users\Ke\Desktop\NFT\背景\"+background.str()+".png")
img6=Image.open("C:\Users\Ke\Desktop\NFT\服飾\"+accessories.str()+".png")
img5.paste(img1,mask=img1) #將不同的模塊進行疊加
img5.paste(img2,mask=img2)
img5.paste(img3,mask=img3)
img5.paste(img4,mask=img4)
img5.paste(img6,mask=img6)
img5.save("C:\Users\Ke\Desktop\NFT\成品\"+i.str()+".png") # 保存圖片
i=i+1
經過編程即可生成成千上萬的NFT作品,風格相似卻各不相同,如圖1所示。

圖1 各不相同的NFT作品
本文詳細介紹了“火箭人”系列NFT的設計理念與制作方法。制作這樣一款NFT合集對作者來說意義重大,是對藝術創作和自動化編程的雙重考驗。該項目當前還停留在二維圖片的形式。在未來的規劃中,作者會嘗試探索元宇宙方向的造型設計,可能會設計三維形式的NFT作品。“火箭人”系列NFT可以用作消費者的身份ID,來凸顯出與眾不同的個性,或者作為一般的藝術畫作用來鑒賞。然而,局限于當前NFT技術的不成熟,NFT的交易給普通消費者設置了門檻,用于保證唯一性和不可更改特性的資源開銷仍然巨大,如果未來區塊鏈的技術使得這一切變得更加便利和便宜,那么NFT或許就真的可以成為日常交易物品,受到廣大消費者的青睞。