2015-02-22

【製作進度】3D技術研究2-輔助工具

(這篇同時發在巴哈姆特)

如上次所說,這一次要研究生產素材的流程,也就是輔助工具型電子妖精登場。
鈷寶,出來跟大家打個招呼吧。
鈷寶:那個……,大家好。



把生產素材到正式放進遊戲裡的過程跑一遍,看有什麼要注意的地方,有時也需要自己製作工具。即使素材不是自己做,也要了解一些細節才能給美術人員指示。
這次該從哪裡開始呢?
鈷寶:主人……那個……三視圖。
對,想起來了,先用Inkscape畫三視圖,鈷寶,準備Inkscape。
鈷寶:嗯。

-1.建模-

參考一本教學書來做個模型。
就照一般建模的流程,三視圖→建模→UV展開→畫貼圖,用Blender、Inkscape、GIMP這三個軟體作業。

-Inkscape畫三視圖-
鈷寶:(……C物件要和D物件對齊X坐標,算一下位置……)


-Blender建模、UV展開-
鈷寶:(……從4號面延伸出去,側面貼上新的面……)
(鈷寶專心工作的時候別吵她)

形狀建出來了


素材最好在製作的軟體裡就能看到實際在遊戲裡的樣子,這樣製作時可以據此調整,不用拿到遊戲裡測試才看得出來。
要研究一下怎麼設定Blender讓它接近引擎本體畫出的樣子。

例如視角,這次測試將Y方向視角設為30°,畫面800×600。
鈷寶:唔……好像不行,Blender是用較長的方向設定視角。
那要求出X方向了,算一下這個式子裡的xFov: tan(15°)/tan(xFov/2)=600/800。
鈷寶:……大約39度。
所以想在Blender看遊戲裡的樣子,就把鏡頭解析度設成800×600,視角設成39°。


鈷寶:請問……tilemap和3D的坐標怎麼換算?
先暫定tilemap捲動600px相當於鏡頭移動1單位吧。
因為想把3D背景和2D其他物件放在一起,程式裡會有2D和3D兩個坐標系,tilemap以像素為單位,3D坐標可以任意縮放,兩者之間怎麼換算要有個標準。

-Inkscape和GIMP畫貼圖-
鈷寶:(……現在要做mulitply混色……)


完成


因為只是測試功能而不是用在正式作品裡,做得很簡陋。

-2.輸出、修改模型-

Blender沒有內建輸出PMD的功能,不過有很多別人寫好的擴充,這次用pymeshio。
鈷寶:(執行擴充)……好了。
鈷寶:主人,這兩個PMD有,但Blender沒有:材質ambient顏色、和修改頂點法線。
只好輸出模型後再用PMXEditor編輯了。雖然已經知道每個3D軟體和遊戲引擎的演算法不會完全一樣,建好模型後通常還要用專用的工具修改。
查一下好像有其他plugin讓Blender可以編輯PMD、PMX專屬資料,這次先不用,以後再試。

鈷寶,我要開PMXEditor了。
鈷寶:是新工具,我試試看……
調整一下材質顏色


Blender和PMXEditor上看到的樣子不是完全準,因為我幫艾莉兒寫的shader跟這兩個軟體不一樣,調好要實際放進引擎裡跑才看得出來。
資料收集得差不多了,以後開需求給美術人員時要講清楚這些規格。
先做到這樣,之後拿給艾莉兒測試。



鈷寶:咦,做好了?這麼快?
鈷寶:對了……這次都是用現有軟體,所以……。
這次工具剛好都有現成的,不用自己做,鈷寶只要幫忙操作軟體就好了。以前有的功能要開發新工具,例如tilemap有做一個檔案格式轉換器。
鈷寶:可惜……,想多幫主人一點忙。

還需要一個測試用tilemap,tilemap的生產線在做Cyber Sprite的時候已經完成,可以直接用。
開Tiled這個軟體畫地圖,圖拿Cyber Sprite的來用。

然後請鈷寶轉換成艾莉兒能用的格式。
鈷寶:把素材交給姊姊,再來看姊姊表現了。

下一回:整合測試

沒有留言 :

張貼留言