2019年2月24日 星期日

程式不想收到的美術圖(下)

 其實現在手上的專案以2D為主,3D的部分接觸較少
 雖然也有收到幾個有問題的3D圖檔,但更大部分會講「美術和企劃們不要把Unity想得太萬能」這件事——沒裝插件的Unity可是很多事情都做不到的
 但在探討這個之前,show一下手上不太想面對的FBX www

 首先,不要把四個攝影機包在物件裡(親身經歷)
 每次收到一些個別要更換的model時,裡面總會出現4個攝影機和4個攝影機Target,然後就要選取全部再刪掉
 幾秒鐘的動作,但很煩
 #超級煩

 void PleaseGiveMeACorrectModel(){
  print("在這地方消磨掉程式的耐性,就別怪他功能寫不好了")
 }

 接著要說的是:希望能把model歸位
 甚麼意思?

 這個意思
 (上面只是模擬一下當時情況ww)
 明明外層的空物件座標在(0, 0, 0),但裡面的model位置就各種神奇各種怪
 基本上我收到model的全部都是這樣子(遠目
 如果model只有一個的話就算了,假如包住的是結構較複雜的多重物件,那我還要再調正確位置……
 PleaseGiveMeACorrectModel();

—————
 手上能說的問題圖檔就這些,接下來就是「別把Unity當繪圖軟體!」的部分
 在開始之前先說一下,我是以原本Unity的功能,意則沒有使用插件為基準來說的
 畢竟有時請款買插件也可能不會過(咦#

 先來第一點:Unity沒法調model的頂點
 (插件ProBuilder好像可以,但現在主力做2D,所以還沒有空研究)
 事源是某天,美術丟了個FBX給我,那是一個平行四邊體
 然後想說讓我在Unity裡自行縮放做些效果
 但想當然,一拉長的話,最左右兩側的頂點也會拉寬,導致整個變形
Like This

 把這情況告訴美術之後,他問我:
 「不能調點的嗎?」
 「對,不能調點。」
 我誠懇地點頭。

 所以,最後他拆了個三角形和長方形給我,讓長方形在伸縮的同時,三角形跟著移動
 這種做法不是問題,問題是他長方形的軸心沒調好#
 要解釋這個,先來個gif一下

 這是Unity生成的四方體,軸心在正中間,縮放的話會上下一起拉長(美術給我的就是這種)
 然後,假如把軸心放在模型底部的話,縮放起來像這樣:


 要動態伸縮做效果,軸心在底部時程式們才好處理
 但如果美術不想改時,除了暴走和離職之外有甚麼辦法呢?
 那就土法煉鋼:改Scale時,同時改Position
 又或者,自行生成一個空物件,強制改變模型的軸心

 把空物件放在模型底部,再把模型拖進去,成為空物件的子物件
 至於空物件的位置要怎樣調好——嗯,考你眼力w ((喂#
 所以,美術呀……PleaseGiveMeACorrectModel();


 第二點:Unity不能拆UV (同樣地ProBuilder好像可以#)
 事源,企劃問:「你能不能把貼圖只貼在四方體的其中一面?」
 我:「那要美術拆UV,又或者給我一星期來研究Shader。」
 企:「Oh……所以是不行哦……」
 然後走掉了。
 所以就真的不能給我一星期來研究Shader嗎qwq

 總之,沒有任何外力幫助的情況下,Unity裡生成的3D物件,材質貼起來時都是一個整體


 第三點:沒辦法調個別材質的對比度啦!
 某天在試貼圖,因為對比不太明顯,企劃試著問:
 「有沒有辦法調一下對比,讓陰影更明顯……」
 「NO!」
 除非你給時間我來研究Shader
 ……嗯,第三點就這樣XD
 真的不要把Unity當繪圖軟體啦((吶喊


 第四點:
 「有沒有辦法在Unity內,直接做出物件彎曲的動畫?」
 「有,Shader。不然就美術出圖。」
  所以企劃就跑去騷擾美術了。所以我說Shader呢?
 (其實也可以用C#來讀取模型的Mesh,獲得頂點後再自行調整……但這操作太高端我不會#)
 然後,美術出了一個動畫,但丟到Unity時卻沒有彎曲……那是因為,Unity不支援調整頂點的動畫,只會吃物件本身的Transform以及骨架動畫
 (當然,這世界上沒有插件解決不了的事情。有不少插件就是讓你能夠調頂點w)
 Unity不吃頂點動畫……稍為算是個注意事項吧?
 如果辛苦調出來的頂點動畫不能用,要不重做,要不研究插件,那真的會崩潰www

 理論上,較簡單的物件扭曲(比如在架上飄的衣服),我是推薦用插件,或是寫Shader
 但如果趕時間,那就直接上骨架吧w
 畢竟畢製時,優化這種事是在有充足時間,又或是等你效能爆炸時才會做的#


 最後,再來一點點心得(?)
 假如程式拿到不好的美術圖時,不要立即爆氣,儘量和美術講解一下「圖不能用」的理由。知道原理的話,說不定下次出圖會好一點
 (但美術能不能理解程式們的解說,那就另一個故事w)
 然後美術聽到圖不能用時,也不要覺得「一定是程式的問題」
 很多時候,圖不是真的「絕對不能用」,而是要用的話,會消耗更多效能和時間和耐心
 為了整個專案著想,圖片修正後才能加快開發進度

 總而言之……就算美術和程式互看不順眼,但表面上還是得來個良好溝通。出圖的規範儘量統一好
 不然遊戲進度一直卡死,最後爆炸的話就真的GG了
 如果你有心專案爆掉那例外

 就這樣,以上owo/

沒有留言:

張貼留言