文章

創建一個簡單的3D角色

創建一個簡單的3D角色是製作3D遊戲的重要步驟。以下是如何在 Unity 中創建和設定一個基本的3D角色的過程,並添加基本的控制和動畫。

1. 創建3D角色模型

步驟 1:使用內建3D物件創建角色

  1. 創建角色的基礎物件
    • Hierarchy 視窗中,右鍵選擇 3D Object > Capsule 來創建一個新的膠囊體(這將作為角色的基本形狀)。
    • 將膠囊體重命名為 Player
  2. 調整角色外觀
    • 使用 Transform 組件調整膠囊體的大小和位置。例如,將 Scale 調整為 (1, 2, 1) 以使其更像人形。
    • 如果需要,可以添加其他基本形狀(如 CubeSphere)來構建更複雜的角色模型。

步驟 2:添加角色的材質和顏色

  1. 創建材質
    • Assets 資料夾中右鍵選擇 Create > Material,並將其命名為 PlayerMaterial
    • Inspector 視窗中選擇顏色(如綠色或藍色)來為角色著色。
  2. 應用材質到角色
    • PlayerMaterial 拖放到 Player 膠囊體上,為其應用材質。

2. 添加角色控制

步驟 1:創建角色控制腳本

  1. 創建角色控制腳本
    • Assets 資料夾中右鍵選擇 Create > C# Script,命名為 PlayerController
    • 編輯腳本以實現基本的移動功能。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    using UnityEngine;
    
    public class PlayerController : MonoBehaviour
    {
        public float moveSpeed = 5f;
        public float rotateSpeed = 200f;
    
        void Update()
        {
            // 移動角色
            float move = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;
            float rotate = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
    
            transform.Translate(0, 0, move);
            transform.Rotate(0, rotate, 0);
        }
    }
    
  2. 將腳本附加到角色
    • PlayerController 腳本拖放到 Player 物件上。

步驟 2:設置角色的碰撞體和剛體

  1. 添加剛體(Rigidbody)
    • Inspector 視窗中點擊 Add Component,選擇 Rigidbody
    • 確保 Use Gravity 選項被勾選,使角色受到重力影響。
  2. 調整碰撞體(Collider)
    • 默認情況下,膠囊體會有 Capsule Collider,確保其大小覆蓋整個角色模型。
    • 如果需要,根據角色的形狀調整碰撞體的大小和位置。

3. 添加角色動畫

步驟 1:創建基本動畫(例如行走、跑步)

  1. 導入動畫素材(可選)
    • 如果有外部的動畫素材,可以將其導入到 Assets 資料夾中。
  2. 創建 Animator Controller
    • Assets 資料夾中右鍵選擇 Create > Animator Controller,命名為 PlayerAnimatorController
    • PlayerAnimatorController 拖放到 Player 物件的 Animator 組件上。
  3. 創建動畫狀態
    • Animator 視窗中打開 PlayerAnimatorController
    • 添加新的動畫狀態(例如 IdleWalkRun),並將對應的動畫片段拖到每個狀態中。

步驟 2:設置動畫過渡

  1. 設置動畫過渡
    • Animator 視窗中,右鍵點擊 Idle 狀態並選擇 Make Transition,將其連接到 Walk 狀態。
    • 為每個過渡設置條件,如 speed > 0 切換到 Walkspeed == 0 切換到 Idle
  2. 控制動畫播放
    • 編輯 PlayerController 腳本,使用 Animator 組件控制動畫播放。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    using UnityEngine;
    
    public class PlayerController : MonoBehaviour
    {
        public float moveSpeed = 5f;
        public float rotateSpeed = 200f;
        private Animator animator;
    
        void Start()
        {
            animator = GetComponent<Animator>();
        }
    
        void Update()
        {
            float move = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;
            float rotate = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
    
            transform.Translate(0, 0, move);
            transform.Rotate(0, rotate, 0);
    
            // 設置動畫參數
            animator.SetFloat("Speed", Mathf.Abs(move));
        }
    }
    

4. 測試和調整角色

  1. 播放測試
    • 點擊 Play 按鈕,檢查角色是否能夠正常移動和播放動畫。
  2. 調整控制參數
    • 根據測試結果,調整 PlayerController 腳本中的移動速度、旋轉速度等參數。
    • 修改動畫過渡的條件和參數,確保角色動作流暢。

5. 小結

這些步驟提供了一個簡單的3D角色創建和控制的基礎。你可以根據遊戲需求進一步擴展角色的功能,例如添加跳躍、攻擊、更多的動畫狀態和更複雜的控制邏輯。通過反覆測試和調整,你可以創建出一個符合遊戲風格和玩法需求的3D角色。

本文章以 CC BY 4.0 授權