同學,初一數學就能編程的蹦迪動畫了解下?
來自專欄演算法藝術實驗室4 人贊了文章
上次看完我們對Unity大拿Keijiro的介紹,有沒有被圈粉呢?
什麼?!你說你還沒有看過?趕緊戳我們之前的推送補補課啦!??
這個人不知道養活了多少Unity系VJ今天呢,我們帶來了Keijiro在github上的另一個項目——用程序寫出蹦迪動畫。
他幾年前嘗試過用程序生成舞蹈動畫,大概是對蹦迪動畫有一些執念,這是他的第二次嘗試做這樣的事情了。
整個程序不是一個完整的演算法,也沒有用到人工智慧的技術,這些蹦迪的小人是由正弦波和波林雜訊函數(Perlin Noise)控制的。(正弦波和波林雜訊函數是啥?看不懂?快搬好小板凳拉到後面聽葉師傅給你講啦)
每一個小人的模型動畫則是用了Unity官方的人形方向動力學建模方法humanoid IK rig。
給小人們設置隨機的參數,組合在一起就變成了群魔亂舞的效果~
附上github地址傳送門:
https://github.com/keijiro/PuppetTest
一起搬好小板凳,來前排圍觀吧
!!!你以為到這裡就結束了嗎?
剛才沒看懂正弦波和波林雜訊函數的小盆友們,葉師傅給你們開小灶發福利來啦~
波林雜訊函數:一般的隨機函數是在指定範圍內隨機產生一個數字,多次隨機結果列在一起看,也還是離散的。而Perlin Noise(波林雜訊)演算法,則是連續的,自然的。
專業擼貓數十年選手葉師傅分享了自己的經驗之談:
傳統隨機函數和波林雜訊函數,可以拿來寫逗貓的地面投影程序,離散函數寫出來的投影程序貓貓是不會玩的,但貓貓會玩連續的柏林雜訊函數寫的投影程序。
怕文字語言描述不清楚,葉師傅還特地寫了兩個實常式序。
第一個程序用了普通的隨機函數,可以看到,畫布上畫出來的點都是離散的。
第二個程序用的就是我們今天介紹的波林雜訊函數啦,接上投影儀投影到地面上,高端懶人逗貓法get√
而正弦波呢,就是初一的數學內容sin()函數啦,還不懂的小盆友可以自行查閱初中數學課本啦。
在演算法藝術實驗室往屆的沙龍里,我們也有分享過Perlin Noise演算法的應用。??
演算法藝術沙龍Vol.06 Perlin Noise波林雜訊演算法在新媒體藝術和遊戲動畫電影里的應用以及學校介紹是乾貨滿滿的沙龍噢~感興趣的話下次沙龍join us!
對啦,關於蹦迪,演算法藝術實驗室還做過一個嗨到爆的跨年交互投影趴,真的不來了解一下???
和自己尬舞 | 演算法藝術實驗室Wigwam2018跨年趴交互投影——
演算法藝術實驗室探索數學與編程在設計與藝術中一切之可能
用運算和美學讓你變更酷
——
推薦閱讀:
※一個計科小白的每日編程打卡18.07.25
※計算機科學與計算機編程
※「設計賞析」:可編程縫紉機
※怒刷 LeetCode 100 道 (49)
※2.1 鏈表(coding)