在 FXHASH 上開發 P5 作品的習慣(randomSeed & saveFrames篇)
前言:
在 fxhash 上,genart token 如何保持畫面呢?
通常我們會透過 random/noise 來產生隨機的數值,以產生多樣性的畫面。
每個 token 每次都能保持同樣的畫面,原因是 fxhash 在產生 token 時會產生唯一的 hash 值,每次程式運行會讀取這個 hash 值當成 seed 固定下來。
這就好像每個 token 在產生時就獲得了一個身分證,每次執行作品的程式時都會讀取這個身分證,並將其轉化為參數去產生一個獨一無二的畫面。
收藏 genart 有點像抽扭蛋的概念,也是從此而來。
I.
在 p5 中,透過宣告 Random seed/noise seed,能保持每次執行程式時,即使使用了隨機,隨機產生的值都會相同,也能保持每次產生的畫面一致。
如果不使用這個特性,每個 token 的程式可能每次打開都會產生不同的畫面結果。
我在程式最開始的Setup時會這樣做
_r = fxrand(); _hash = fxhash; print("fxrand(0,1) : "); print(_r); print("fxhash(string) : "); print(_hash); //random noise setup seed = _r * 10000; randomSeed(seed); noiseSeed(seed);
但如果我要檢查特定畫面時 我會調整成這樣
//_r = fxrand(); //_hash = fxhash; //demo: check for both mobile and desktop no difference between each other _r = 0.7078199288807809; _hash = "ooGYcY2ve1TXjer42LKodNHzabUfYpkeVR5dGQYkgie85ZaJBoc"; print("fxrand(0,1) : "); print(_r); print("fxhash(string) : "); print(_hash); //random noise setup seed = _r * 10000; randomSeed(seed); noiseSeed(seed);
II.
透過上面提到這個方式,在開發時,我們可以針對特定的畫面細節做出修改,以了解對畫面的影響性。例如,可以調整顏色、筆畫大小、攝影機位置,或者是觸發某個條件的機率。
還有一個很實用的點是測試在手機、不同裝置上你的程式運作得如何,同樣的seed有沒有跑出一樣期待的畫面。
( 如果沒有的話可以檢查有在Seed後使用Random或是避免使用到Math.random() )
III.
"我感覺"這樣的表達雖然很直覺,但在創作中仍具有重要的意義。不過,創作並非僅靠直覺就能完成,透過紀錄畫面去修改細節是非常有幫助的。
在p5中可以使用save()
來保存畫面。這個功能通常在許多作品完成時都會提供,讓收藏者可以下載圖像觀賞或提供印刷。但在創作過程中,也可以多加使用,去比較畫面的差異,甚至在開發的不同週期都有不同畫面的韻味。若有做好版本管理,也可以將過去的部分參數重新啟用,作為其中一種多樣性。
我的話會在截圖的檔案名稱上保留作品名稱、程式的版本和seed,
這樣有助於你從截圖中獲得更多資訊,也方便日後管理。
let _r,_hash; let workName = "HelloWrold"; function fxsetup() { _r = fxrand(); _hash = fxhash; print("fxrand(0,1) : "); print(_r); print("fxhash(string) : "); print(_hash); //random noise setup seed = _r * 10000; randomSeed(seed); noiseSeed(seed); } function keyPressed() { if (key == 'S' || key == 's') { save(_r+"-"+_hash+"-"+workName + ".png"); } }
IV.
我通常在程式有了一個基本框架和固定的繪製步數後,就開始使用save()
。但其實,越早開始保存畫面越好,甚至只要保持截圖的習慣就可以了。
透過保存的畫面,我們可以製作出過程gif,提供更好的觀賞性質和帶入感。具象化後的作品過程能讓觀者欣賞到你在創作上的投入和心力。
我會使用這個製作gif的網站,訣竅上是統一圖片尺寸,並讓最後一個完成版的 frame 時間稍長,以便觀眾有足夠的時間欣賞。
V.
"Mood board"是一個非常實用的概念工具,它可以幫助我們從效率和邏輯中脫離出來,回歸到創作的方向上。我會推薦使用"PureRef"這個軟體來製作你的mood board,這樣你可以輕鬆地把想法化一些你喜歡的圖片快速蒐集。
蒐集過程其實就是創作的一個縮影,你會被各種吸引你的元素所吸引,或者你會想出用某種方式來呈現這個畫面。建議你設定一個舒適的時間限制,讓你的想法可以在這段時間內完整收斂。
以上是這次的分享~希望有幫助到你
如果有任何問題都可以留言或是連絡我的Twitter
這次的分享也是Caddy找我討論時的產出,謝謝Caddy~
如果是正在籌備第一次發行需要初始資金的創作者也可以了解:
Supporter.tez 種子藝術基金,由自己發行 NFT 的好幫手 - 豆泥 (@mashbean) (matters.news)
我的Akaswap現場 : akaSwap - tz1LZA9Lpn4G1gv4BfXPFNV5Fptx3uNEgaWq
我的FXHASH現場 :fxhash — CHOUCHIAWEI profile
我的Linktree : @chouchiawei | Linktree