【學習筆記】FPS-手部模型處理

  • Post category:筆記
  • Reading time:2 mins read
  • Post author:

製作第一人稱遊戲時,如果使用的是現成的角色及動畫,可能會需要把手部獨立出來顯示,某些情況下不要顯示角色的其他部分,以免遮到鏡頭之類的問題。但是一個模型,要只顯示部分就必須用到材質、繪製貼圖(手部不透明、其他透明),但前提是你要知道這個模型的UV,不然也無從畫起。 今天就來分享我們的處理方法-直接把手部模型拆開。因為手上剛好沒有FPS遊戲用的角色,就先拿其他角色代替了。在Blender中,可以看到模型是骨架的子物件,也就是說,就算拆成多個模型,還是能受骨架影響(權重不會跑掉)。 這是原本的動畫: 現在選取手部,按P分離物件,將手部模型獨立成一個Mesh。 現在播放動畫,手部還是能順利動作~就算隱藏手或身體都不會影響。

Continue Reading【學習筆記】FPS-手部模型處理

【學習筆記】Blender to Unity 匯出設定

  • Post category:筆記
  • Reading time:4 mins read
  • Post author:

整理模型 Apply Modifler,因為Unity沒有修改器,所以必須先全部套用、轉成普通的模型。檢查法向,打開Viewport Overlays下拉式選單,勾選Face Orientation,藍色的是正面,紅色是反面(這點很重要,因為blender是雙面渲染,從背面還是能看到模型,但Unity是單面)。 整理的方法是:選擇要轉向的面 -> Shift+N。 整理Transform 1.將每個物件都Apply Transform,讓旋轉量歸零、尺寸歸一。 也就是說,以當前尺寸作為Unity中scale的「1」。 (在這裡可以查看) 2.將每個物件都Set Origin to Geometry,將軸心移到物件的中心點(如果有特殊需求就Set Origin to 3D Cursor將軸心移到想要的位置)。 整理Texture 如果預設是用路徑載入貼圖,而非直接匯入圖檔,要特別將貼圖打包到一個資料夾,這樣才能在Unity中調整材質。 點選File→External Data→Unpack All Into Files,Blender就會自動建立一個textures資料夾存放所有貼圖。 匯出設定 1.將fbx匯入Unity後會發現所有物件全都變成一個同檔案名稱的空物件的子物件,簡單來說,並不會記錄Outliner中的分層,要讓他能保持階級關係,匯出時要將Batch…

Continue Reading【學習筆記】Blender to Unity 匯出設定

Unity Rendering Note5 – Renderer Feature & X-Ray Effect

  • Post category:筆記
  • Reading time:6 mins read
  • Post author:

今天來學習如何在Unity中做出透視效果。 當然透視效果有許多做法,今天用的是最容易理解、步驟也相對較少的方法-Renderer Feature。 簡介 大致流程就是「當目標物件被其他物件遮住時,直接渲染出來並指定新的材質;沒被遮住時也渲染一次,使用原本材質」。 目標是讓這個Sphere能一直被看到,就算被牆擋住還是能渲染出來。 Renderer Feature 先了解一下什麼是Renderer Feature,它的功能在Unity官方網站中是這樣解釋的:在URP的Renderer上加上額外的渲染途徑。 能讓使用者自由設定渲染的對象、順序、材質……等,也就是說,可以指定「在渲染整個畫面之後,再將特定物件渲染一次特定材質」之類的指令。說得白話點,就是用來覆寫渲染的結果。 以下簡單介紹一下Renderer Feature中幾個重要的部分。 Event 這裡可以選擇渲染的順序,選單中的順序就是URP的Render Pass。 Filters 可以選擇目標渲染物件,Queue選擇是否為透明、Layer Mask指定對象Layer。 Overrides 選擇完渲染的時間點跟目標後,再來就是要對其進行的動作了。 Material:用來覆寫的材質。 Depth:決定如何影響深度緩衝區(Z-Write)。 Write Depth:決定是否更新深度緩衝區。 Depth Test:深度測試,畫面從離攝影機最遠處往攝影機移動,用碰到的先後順序來決定物件的前後。 Camera:覆寫攝影機的某些屬性。 實作 製作材質…

Continue ReadingUnity Rendering Note5 – Renderer Feature & X-Ray Effect

Unity Rendering Note4 – Reflection Probe

  • Post category:筆記
  • Reading time:6 mins read
  • Post author:

Reflection Probe是Unity中時常使用、十分重要的工具,但它的功能卻常常被誤會,在剛接觸到Reflection Probe時,我對它的理解是「在其範圍內的物件,可以反射周遭靜態物件」,甚至自作聰明的把它掛在角色下成為子物件,跟著角色移動...這樣的解釋其實並非全錯,只是差在反射的原理不構清楚。Unity中的反射並非物理意義上的反射,簡單的說,是將環境變成貼圖,貼在物件上,一般來說,這個環境貼圖就是Skybox。如果將這個環境貼圖稱作反射球,Reflection Probe的功用是改變反射球。 在Unity,所有物件都會無條件的反射Environment Reflections中的Source,也就是說即使是在室內中的物體依然會反射Skybox,這樣會很不自然。 因此,在室內、或不該被天空照射到的地方,要使用Reflection Probe將反射球改變。 先用Cube搭出簡單的室內場景,可以看到中間的Sphere雖然有變暗,但依然反射Skybox。 加了Reflection Probe後,物件就會反射Reflection Probe範圍內的靜態物件。 至於反射的方法,可以想成是將方形範圍的六個面,變形壓縮成一個球型,並貼在物件表面。(如果對詳細原理有興趣,可以搜尋Cubemap,Skybox本身也有用到差不多的原理。) 當物件一進入Reflection Probe,反射球就會立刻被改變,因此Reflection Probe的範圍十分重要,如果範圍太大,物件還沒完全進到室內就會先碰到,換成室內的反射球。 因此可以多複製幾個,讓反射球從室外到室內是漸變的。 補充一下物件同時碰到多個Reflection Probe時,該如何處理。 物件的Mesh Renderer中有4個選項可以選。 Off:不受Reflection Probe影響。Blend Probes:混合,但不包含Skybox,一般用於室內。Blend Probes And Skybox:混合,包含Skybox,一般用於室外。Simple:只使用權種最高的一個Reflection Probe。 Blend Probes…

Continue ReadingUnity Rendering Note4 – Reflection Probe

Unity Rendering Note2 – Basic Lighting Setting

  • Post category:筆記
  • Reading time:6 mins read
  • Post author:

最近看了一些網路文章、影片教學,發現Unity的初始場景其實包含了許多渲染相關設定,把這些設定一一拿掉後,就能看到場景最原始的樣子(只有模型、光影、材質...等基本資訊)。 這是開一個新3D專案、建立一個Plane、一個Sphere,並指定了純色的標準材質球後的場景,並未進行任何渲染設定。 1.Color Space Color Space可以想成是電壓及亮度的曲線,Linear是符合物理原則的線性關係,較接近現實世界;預設的Gamma則是顯示器上的曲線(非正比,亮度為電壓的2.2次方),較接近人眼所看到的顏色。 在Unity中,Linear是經過校正,讓顏色符合物理、接近現實,計算量較大、較吃資源;Gamma則不會做校正處理,由於2.2次方的關係,整體環境會偏暗(黑色為0、白色為1,因此亮度在暗處增加較緩)。 Gamma Linear Reflection Lighting中的Environment Reflections是指物體反光時反射的顏色,也就是周遭的環境,可以想像成把環境「貼」在物件上。 將Source設為Custom並不指定任何Cubemap,就會看到物體還有反光,但會變成純色的明暗漸層。 (這裡有刻意將材質的Smoothness調高,讓反光更明顯。 Before(Skybox) After(Custom) Environment Lighting Environment Lighting顧名思義就是環境光,先前的場景都在Skybox的「照射」下,可以看到影子也有分明暗,就跟現實世界一樣。 將Lighting中的Environment Lighting的Source改成Color,這樣這個場景就不再受Skybox的「照射」了,陰影自然就只有一種顏色。 將Ambient Color改成純黑,陰影就會變成完全沒有漸層的全黑了。 這裡改回預設材質球會看得更清楚(黃黃的是因為預設Directional Light的顏色)。 Skybox 將環境光跟反射的Skybox都改掉後,現在Skybox就只是一個背景了,不會對物件的顏色有任何影響。 直接在Lighting中將Skybox設為none,場景除了背景消失外沒有其他變化。 Other…

Continue ReadingUnity Rendering Note2 – Basic Lighting Setting