繼續聊技術思維與設計思維的mix

  • 2019 年 10 月 8 日
  • 筆記

本文繼續聊設計思維與技術思維的mix,基於志榮做的訪談《第三期採訪:設計師如何在智慧化時代持續學習和成長?》,mixlab社區重新梳理了4個內容跟大家分享下。

作者們

ML04-00

產品設計師/數字極客/跨界學習者

公眾號:HackHYourself

ML01-TVB

獨立開發者/交互設計師

公眾號:薛志榮

ML00-shadow

無界社區發起人/設計師/程式設計師


1 編程思維與設計思維

編程思維可以幫助非理工科背景的設計師了解什麼是抽象、復用、結構化和參數化,這些都是編程的思考方式。比如說設計師要搭建組件庫或者整理設計規範的時候,要考慮怎麼把最開始看起來很雜亂的元素抽取出來形成多種模式,這些思維就非常重要了。

——結構化的思維往往是技術思維,例如平面設計領域,平面設計師最後設計完成的是一張設計圖,而在電腦/技術的思維角度看,其實是一份結構化的數據。

例子:

svg格式的圖,看起來跟我們傳統的圖片沒啥區別。例如mixlab的logo:

實際上,svg的文件形式保存了圖形的群組關係及位置、區域、色彩等數據,如:

svg這種文件格式,從技術的角度可以通過數據操作反推設計,而設計可以無縫轉化為結構化的數據。

再看我們設計師常用的photoshop,其psd文件也是結構化的數據:通過程式碼可以解釋成:

{ children:    [ { type: 'group',        visible: false,        opacity: 1,        blendingMode: 'normal',        name: 'Version D',        left: 0,        right: 900,        top: 0,        bottom: 600,        height: 600,        width: 900,        children:         [ { type: 'layer',             visible: true,             opacity: 1,             blendingMode: 'normal',             name: 'Make a change and save.',             left: 275,             right: 636,             top: 435,             bottom: 466,             height: 31,             width: 361,             mask: {},             text:              { value: 'Make a change and save.',                font:                 { name: 'HelveticaNeue-Light',                   sizes: [ 33 ],                   colors: [ [ 85, 96, 110, 255 ] ],                   alignment: [ 'center' ] },                left: 0,                top: 0,                right: 0,                bottom: 0,                transform: { xx: 1, xy: 0, yx: 0, yy: 1, tx: 456, ty: 459 } },             image: {} } ] } ],    document:        { width: 900,          height: 600,          resources:           { layerComps:              [ { id: 692243163, name: 'Version A', capturedInfo: 1 },                { id: 725235304, name: 'Version B', capturedInfo: 1 },                { id: 730932877, name: 'Version C', capturedInfo: 1 } ],             guides: [],             slices: [] } } }

可以使用psd.js來解釋psd文件

https://github.com/meltingice/psd.js

解釋psd後能做什麼?得到了設計圖的結構化數據,用機器來做設計就變得容易多了(後續更新此部分內容)

2 掌握技術原理對設計的幫助

如果你知道深度學習的一些原理,它到底能實現什麼,不能實現什麼,它的能力範圍到底在哪裡,當你以後用到深度學習,就大概知道你要做的設計界限在哪。比如說,基於一個人臉影像庫,用GAN(生成對抗網路)來自動生成人臉。這個看起來應用的範圍蠻廣的,但真正做過一遍以後,你可能會有更多的考慮。比如說數據集從哪裡來?是有現成的數據集還是手動獲取一批?如果你手動獲取的數據集樣本量很少,基本不用想自動生成人臉這事了;即便數據量很大,當你發現最終結果人臉是歪的,你就會知道這套技術還沒成熟,沒法達到要求,那你可能不會把它用到設計里。

所以,深度學習需要考慮數據集是否夠多、設定的目標和打分規則是否明確,這些因素都會直接影響設計目標的實現。真正動手學習以後,才會更加清楚深度學習能不能解決設計問題。

——關於數據量大小的問題,現實中,我們很多需要解決的問題都是基於小數據來進行的,例如,做一些卡通人臉的生成,如果採用GAN的方式,得具備大量的卡通頭像數據,生成效果見圖:

但,我們不採用GAN的方式,還有其他方法嗎?有!

通過預設大量的五官影像,通過機器隨即組合成一個卡通人像:

通過預設五官就可以生成人臉,而GAN的方法,更多的還停留在研究階段。

中場休息,推薦基本深度學習的書:

3 AI對交互設計的影響

AI技術對交互流程的影響,在往期的文章也有所提及,例如《TensorFlow.js、遷移學習與AI產品創新之道

這裡再補充一些例子。

例如,之前需要用戶填寫一些必填資訊才能跳到下一步,但如果通過AI技術基於用戶的歷史數據做分析和判斷,整個資訊填寫可能就不需要了,這就會影響到整個交互流程。

——還有個例子,我們比較常見的製作海報的方式,可能是簡化版的PS工具,需要我們添加圖片,文字,還要挪動圖片跟文字的位置,設置大小等等,而AI的技術,可以讓我們僅輸入幾個文案就可以生成海報(例如ARKIE智慧設計),這個對交互的流程也是產生比較大的改變的。

再有目前mixlab正在連載的《從Storyboard到DIY實現一個漫畫生成器-02》也是利用技術,簡化交互流程,達到用戶只需輸入一張圖片,即可製作漫畫的目的。

4 藝術也是可以被機器所創作的

這裡舉AI與音樂的例子,如果用工程的角度去看待音樂,它其實跟數學還有編程有密切的關係。如果把聲音還原為一種物理現象,它更多是力學研究的對象,甚至跟電學和光學的原理有不少相通之處。從這個角度出發理解聲音跟音樂之後,你可以嘗試加入一些新的元素,例如AI,做出更多有趣、可以互動的聲樂裝置。用演算法生成音樂,正如用演算法做設計,需要的是把音樂結構化,然後運用機器創造新的音樂~

——此部分,可以看00的更新:

MakeNoise01 – 聲音是什麼?

MakeNoise02 – 頻率和音高

MakeNoise03 – 振幅/響度/音量/增益 大亂斗

近期mixlab也會更新演算法作曲相關的內容,敬請期待哦~