聊天視窗

AI驅動的虛擬偶像創作與運營:從概念到舞台 - 第 3 章

第3章 角色設計與 3D 建模流程

發布於 2026-03-06 02:52

# 第3章 角色設計與 3D 建模流程 在本章中,我們將從 **概念草圖** 走到 **完整的 3D 虛擬偶像模型**,說明每一步所需的思考、工具與最佳實踐。章節安排依照「概念 → 設定 → 2D 設計 → 3D 建模 → 骨架綁定 → 渲染」的順序,兼顧創意發想與技術落地,讓讀者在實作時能有清晰的工作指引。 --- ## 3.1 角色概念與劇本 | 項目 | 說明 | 範例 | 參考工具 | |------|------|------|----------| | **目標族群** | 定義偶像的核心受眾(年齡、興趣、地域) | 15‑25 歲的二次元次文化粉絲 | 市場調查報告、Google Trends | | **角色定位** | 歌手、舞者、主播、跨界藝人等 | 桌上遊戲解說型虛擬偶像 | Persona Canvas | | **核心價值** | 角色要傳遞的情感或理念 | "勇敢追夢、正向能量" | 360°品牌定位模型 | | **故事背景** | 出生地、成長經歷、未來目標 | 來自虛擬星系「Luna‑X」的星際音樂大使 | Scrivener、Notion | > **實務建議**:在概念階段即完成 **角色設計簡報(One‑Pager)**,包括 3–5 張關鍵視覺與文字說明,作為跨部門溝通的基礎。 --- ## 3.2 視覺風格與參考收集 1. **風格定位**:寫實 vs. 次元風、未來感 vs. 復古、光影強度 etc. 2. **參考板(Moodboard)**:使用 **Pinterest、Milanote** 或 **Figma** 整理角色、服裝、光效、配件的參考圖。 3. **色彩系統**:確立主色、輔色、點綴色,並建立 **色票(Swatch)**(如 HEX、Pantone)。 4. **字體與 LOGO**:角色標誌與字體風格需與視覺風格一致,建議使用 **Google Fonts** + 自訂手寫字體。 > **小技巧**:將 Moodboard 匯出為 PDF,納入角色設計檔案夾,作為後續 2D/3D 設計的統一參考。 --- ## 3.3 概念草圖與 2D 設計 ### 3.3.1 手繪草圖 - 使用 **紙本或 Procreate、Clip Studio Paint** 逐步迭代。 - 先畫 **正面、側面、背面** 三視圖(Silhouette Sketch),確保輪廓辨識度。 ### 3.3.2 數位稿件 - 完成線稿後,再上色建立 **平面設計檔**(PSD、AI)。 - 建議在 **Photoshop** 中使用 **Smart Objects**,以便後續調整服裝層次。 ### 3.3.3 輸出規格 | 檔案類型 | 推薦分辨率 | 色彩模式 | 用途 | |----------|-----------|----------|------| | PNG (透明) | 2048✕2048 | sRGB | 社群貼圖、Icon | | PSD (分層) | 4096✕4096 | Adobe RGB | 後續 3D 參考 | | SVG | 矢量 | N/A | 標誌、字體 | --- ## 3.4 角色設定檔(性格、背景、視覺語言) ```json { "Name": "星瀾·曦夢", "Age": 17, "BirthPlanet": "Luna‑X", "Personality": ["活潑", "好奇心旺盛", "正向"] , "VoiceTone": "清亮且稍帶金屬感", "PreferredColors": ["#FF6EC7", "#00C1D4", "#FFFFFF"], "SignatureItem": "發光的星屑耳環", "Catchphrase": "讓星光指引我們前行!" } ``` *以上 JSON 範例可直接匯入角色管理系統(如 Notion API)作為資料庫,供後續腳本、對白與 AI 語音生成參考。* --- ## 3.5 3D 建模前的準備 1. **比例參考**:在 Blender 中設定 **單位系統(Metric)**,使用 **人物比例參考圖(Reference Image)**(如 8 頭身比例)作為背景。 2. **拓撲規則**: - **四邊形優先**,避免三角形與 Ngon。 - **邊環(Edge Loop)** 應分布於關節、面部輪廓與服裝褶皺位置。 3. **檔案組織**:建立專案資料夾結構,建議如下: ``` ProjectRoot/ │ README.md ├─ 01_Concept/ │ ├─ Sketches/ │ └─ Moodboard.pdf ├─ 02_2D/ │ └─ CharacterDesign.psd ├─ 03_3D/ │ ├─ Blender/ │ │ ├─ BaseMesh.blend │ │ └─ Textures/ │ ├─ Unity/ │ └─ Unreal/ └─ 04_Doc/ └─ Specification.xlsx ``` --- ## 3.6 Blender 建模流程 ### 3.6.1 建立基礎網格(Base Mesh) ```python import bpy # 清空場景 bpy.ops.object.select_all(action='SELECT') bpy.ops.object.delete() # 新增立方體作為頭部基礎 bpy.ops.mesh.primitive_cube_add(size=2, location=(0,0,1)) head = bpy.context.active_object head.name = 'Head_Base' ``` - 使用 **Mirror Modifier** 以對稱方式建模。 - 透過 **Subdivision Surface** 增加細分,確保模型在高多邊形時仍保持平滑。 ### 3.6.2 雕刻(Sculpt) - 進入 **Sculpt Mode**,使用 **Dynotopology** 開啟動態細分。 - 常用筆刷:**Clay**, **Crease**, **Smooth**, **Inflate**。 - 目標:先完成 **頭部輪廓、眼窩、嘴型**,再逐步雕刻髮型與細節。 ### 3.6.3 UV 展開(UV Unwrap) 1. 進入 **Edit Mode**,選擇 **Smart UV Project** 作快速展開。 2. 針對高頻區域(臉部、服裝裝飾)手動 **Mark Seams**,確保接縫不會在可見區域。 3. 使用 **UV Packmaster**(付費插件)優化 UV 空間佈局,提高貼圖解析度利用率。 ### 3.6.4 材質與貼圖 - 建議採用 **PBR(Physically Based Rendering)** 工作流程。 - 基本貼圖套件:**Albedo**, **Normal**, **Metallic**, **Roughness**, **Ambient Occlusion**。 - 使用 **Substance Painter** 或 **ArmorPaint** 產出貼圖,然後回到 Blender 連結材質節點(Shader Editor)。 ```shader # PBR 套件(Principled BSDF)範例 ShaderNodeTree = bpy.data.materials['StarHalo'].node_tree principled = ShaderNodeTree.nodes.new('ShaderNodeBsdfPrincipled') principled.inputs['Base Color'].default_value = (1,0.8,0.9,1) # 粉色基底 principled.inputs['Metallic'].default_value = 0.0 principled.inputs['Roughness'].default_value = 0.3 ``` --- ## 3.7 骨架綁定(Rigging)與權重繪製(Weight Painting) ### 3.7.1 建立骨架 - 使用 **Armature** 物件,先建立 **Root → Spine → Neck → Head** 主幹。 - 為四肢自行添加 **Upper / Lower / Hand** 骨骼,並確保 **Parent‑Child** 關係正確。 ### 3.7‑7.2 自動綁定(Automatic Weights) ```python bpy.ops.object.mode_set(mode='OBJECT') mesh = bpy.data.objects['Character_Mesh'] arm = bpy.data.objects['Armature'] # 以自動權重方式綁定 bpy.ops.object.parent_set(type='ARMATURE_AUTO') ``` - 之後使用 **Weight Paint** 逐步修正關節區域的權重,避免 **肩部穿模** 與 **膝部拉伸** 問題。 ### 3.7.3 表情控制(BlendShapes / Morph Targets) - 在 **Object Data → Shape Keys** 中新增 **Base**, **Smile**, **Angry**, **Blink** 等表情形狀鍵。 - 每個 Shape Key 應保留 **0% → 100%** 的線性過度,可在 Unity 中透過 **Animator** 或 **BlendTree** 控制。 --- ## 3.8 Unity 與 Unreal Engine 中的匯入與設定 | 功能 | Unity | Unreal Engine | |------|-------|----------------| | 支援檔案 | FBX, OBJ, glTF | FBX, glTF, Alembic | | 骨骼系統 | Mecanim Animator | Control Rig / Animation Blueprint | | 材質 | Standard / URP / HDRP | PBR (Material Instance) | | 表情 | BlendShape 支援 (Mecanim) | Morph Target 支援 | | 即時渲染 | SRP (URP/HDRP) | Nanite + Lumen | ### 3.8.1 匯入 FBX 的基本步驟(Unity) ```csharp using UnityEngine; public class AvatarLoader : MonoBehaviour { public string fbxPath = "Assets/Models/StarHalo.fbx"; void Start(){ GameObject avatar = Instantiate(Resources.Load<GameObject>(fbxPath)); avatar.transform.position = Vector3.zero; } } ``` - **注意**:在 **Import Settings** 中開啟 **Read/Write Enabled**、**Import BlendShapes**,並設定 **Scale Factor** 為 0.01(根據 Blender 單位調整)。 ### 3.8.2 匯入至 Unreal(使用 Data Table) 1. 把 FBX 拖入 **Content Browser**,勾選 **Import Mesh**, **Import Animations**, **Import Morph Targets**。 2. 建立 **Skeleton Asset**,將 **Retarget Manager** 設定為 **Humanoid**(若模型非標準骨骼,需手動對應). 3. 在 **Material Editor** 中使用 **Base Color**, **Normal**, **Metallic**, **Roughness** 四張貼圖連接至 **Material node**。 --- ## 3.9 渲染與材質優化(PBR、Shader、光源設定) ### 3.9.1 PBR 基礎概念 - **Albedo**:物體本色,與光照無關。 - **Metallic**:金屬度,金屬材質的反射光色與環境光相同。 - **Roughness**:表面粗糙度,決定鏡面反射的散射程度。 - **Normal Map**:細節凹凸感,提升視覺解析度而不增加多邊形。 ### 3.9.2 常用 Shader 範例(Unity HDRP) ```shader Shader "Custom/StarHaloShader" { Properties { _BaseColor ("Base Color", Color) = (1,1,1,1) _Metallic ("Metallic", Range(0,1)) = 0.0 _Smoothness ("Smoothness", Range(0,1)) = 0.5 _NormalMap ("Normal Map", 2D) = "bump" {} } SubShader { Tags { "RenderPipeline" = "HDRenderPipeline" } Pass { HLSLPROGRAM #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" // 省略實作細節 ENDHLSL } } } ``` ### 3.9.3 燈光與環境設置 - **三點光源**(Key, Fill, Rim)是最基本的渲染布局。 - 使用 **HDRI 環景圖**(如 **HDRI Haven**)提供自然環境光,提升金屬質感的真實度。 - 在渲染實驗階段,建議關閉 **Bloom**、**Depth of Field**,以便快速迭代模型與材質。 --- ## 3.10 常見問題與調適技巧 | 問題 | 可能原因 | 解決方案 | |------|----------|----------| | **UV 接縫明顯** | Seam 標記不當或 UV 展開比例錯誤 | 重新 **Mark Seams**,使用 **Pack Islands** 優化布局 | | **關節穿模** | 權重分配不均或骨骼長度錯位 | 在 **Weight Paint** 中加強關節附近的影響範圍,或調整 **Bone Roll** 方向 | | **材質顏色偏差** | Albedo 貼圖色彩空間設定錯誤(sRGB vs Linear) | 在 **Texture Import Settings** 中設定 **Color Space** 為 **sRGB**(Albedo)或 **Linear**(Normal) | | **動畫卡頓** | 多邊形過多或骨骼數量過高 | 使用 **Decimate Modifier** 減面,或 **Level of Detail (LOD)** 系統分層載入 | --- ## 3.11 案例實作:從概念到成品的完整工作流程表 ```mermaid gantt title 虛擬偶像角色設計與建模流程(8 週) dateFormat YYYY-MM-DD section 概念發想 市場與角色定位 :a1, 2024-04-01, 5d 創作 Moodboard :a2, after a1, 3d 角色簡報(One‑Pager) :a3, after a2, 2d section 2D 設計 手繪草圖(4 方向) :b1, after a3, 7d 數位上色與分層 :b2, after b1, 5d 輸出參考圖 (PSD) :b3, after b2, 2d section 3D 建模 基礎拓撲建模 :c1, after b3, 10d 雕刻細部(臉部、髮型):c2, after c1, 7d UV 展開與貼圖 :c3, after c2, 5d PBR 材質設定 :c4, after c3, 4d section 骨架與表情 Rigging(骨骼) :d1, after c4, 5d 權重繪製 :d2, after d1, 4d BlendShape 表情製作 :d3, after d2, 3d section 匯入與測試 匯入 Unity :e1, after d3, 3d 動作測試與修正 :e2, after e1, 4d 匯入 Unreal :e3, after e2, 2d 最終渲染驗證 :e4, after e3, 3d section 發布與文件 完整角色資料夾整理 :f1, after e4, 2d 角色設定檔 (JSON) :f2, after f1, 1d 官方發布(網站/社群) :f3, after f2, 1d ``` > **重點提醒**:每個階段都應至少保留 **版本快照(Version Snapshots)**,使用 Git LFS 或 Perforce 進行大檔案追蹤,以免因重複迭代而遺失關鍵資產。 --- ## 3.12 小結 - **角色概念** 必須先透過市場定位、人格設定與視覺 Moodboard 鎖定核心價值,才能在後續的 2D/3D 工作中保持一致性。 - **3D 建模** 從 **拓撲**、**雕刻**、**UV** 到 **PBR 材質**,每一步都有明確的技術標準與檢查點,確保模型在 Unity、Unreal 兩大實時渲染引擎中皆能即插即用。 - **Rigging & BlendShapes** 為後續動態表演與 AI 動作驅動奠定基礎,建議在建模完成前即完成骨架設計,以免后期重工。 - **跨平台匯出** 需注意 **座標系統、單位、貼圖路徑** 的一致性,並在目標引擎內完成一次完整的動畫與渲染測試,才能保證最終上線品質。 - **工作流程表**(甘特圖)提供了可操作的時間排程範例,讀者可依照自身規模與資源進行適度調整。 透過本章的系統化方法,您將具備將抽象的角色概念轉化為可供即時互動、直播與商業變現的完整 3D 虛擬偶像資產的能力。接下來的第 4 章,我們將探討 **動態表演與虛擬直播技術**,讓角色活起來!