【问题标题】:Turning an avatar into a 3rd person character将化身变成第三人称角色
【发布时间】:2015-06-17 11:50:50
【问题描述】:

我刚刚了解到只需将第三人称角色控制器预制件(来自 Unity 的标准资产包)拖放到层次结构中是多么容易。

使用 WSAD 和 Space 键感觉很自然,所以我想知道是否可以将相同的角色控制器应用于自定义头像。

使用免费的 AutoDesk Character Generator (https://charactergenerator.autodesk.com/) 我创建了一个(fbx 文件)并将其导入 Unity,所以现在我有了自己的角色预制件。

然后,我像第三人称角色控制器一样搜索动画它的步骤,首先出现以下文章,但我想知道我是否总是必须完成所有步骤?

http://blogs.unity3d.com/2014/04/14/turn-your-character-into-a-player/

一旦您以 Unity 预制件的形式定制了角色,仍应完成所有这些步骤,或者是否有更简单的方法为您的头像设置动画;例如添加基本​​的必要脚本?

【问题讨论】:

    标签: animation unity3d


    【解决方案1】:

    那篇文章很好地概述了所需的内容。

    但是,使用 Autodesk 字符生成器时,您基本上可以跳过几乎所有这些步骤。

    这是一个快速的方法:

    1. 将您的 FBX 设置为机械类人形机器人
    2. 将一个 mecanim 动画控制器拖到它上面
    3. 编写代码来设置动画状态(例如:速度、跳跃等)

    这样做:

    • 从 Autodesk 导出为“Unity FBX”格式以获取 YourCharacter_Unity.fbx
    • 将 FBX 拖入统一项目文件中
    • 单击项目中的 YourCharacter_Unity FBX(蓝色立方体),在检查器中选择“RIG”选项卡,并将动画类型更改为“人形”(将其映射到 Mecanim 系统)。
    • 将 FBX 从项目拖到场景中。
    • 进入 Asset Store 并导入“Mecanim Locomotion Starter Kit”(其中包含一个基本的运动控制器和一组动画)
    • 将“Locomotion Setup/Locomotion/Locomotion.controller”拖到角色的 Animator 组件上的“controller”变量上。
    • 取消勾选“应用根运动”

    现在,如果你点击运行,你会看到你的角色以空闲动作站在那里。如果您双击角色上的动画控制器,它将打开 Mecanim Animtor 窗口,您可以手动设置动画状态。尝试将速度更改为 1.0,您会看到他走路/跑步。

    注意:在角色的 Animator 组件中,如果勾选“Apply root motion”,则脚部动画将导致角色在速度 > 0 时自动移动。

    你说你使用的是CharacterController,所以这里有一个非常简单的脚本,引用角色控制器获取当前速度,然后在Animator上设置速度:

    using UnityEngine;
    using System.Collections;
    
    public class CharacterAnimator : MonoBehaviour {
    
        public CharacterController controller;
        public Animator animator;
        private int speedid;
    
        void Start () {
            animator = GetComponentInChildren<Animator>();
            controller = GetComponent<CharacterController>();
            speedid = Animator.StringToHash("Speed");
        }
    
        void Update () {
            float speed = controller.velocity.magnitude;
            animator.SetFloat(speedid, speed);
        }
    }
    

    【讨论】:

    • 非常感谢,peterept。我完全实现了我想做的事情,并且在这个过程中学到了很多东西。干杯!
    • 嗨,peterept,你以前用过Raw Mocap data for Mecanim (link) 吗?而不是导入您在回答中提到的Mecanim Locomotion Starter Kit,而是使用 Mocap 有什么区别?谢谢
    • 嘿。动作捕捉数据只是一堆动画。您可以使用它们,但它们不会取代运动动画师,而是您编辑动画师并拖入您想要的新动画。 (或者扩展动画状态,比如添加跳转,并从 mocap 包中设置动画)。例如,如果您打开 locomotion animator,并找到 Idle 状态并选择它,那么 motion 属性就是动画。使用动作捕捉中的一个更改该动画。现在你会得到一个新的空闲动画!
    • 嗨,peterept,我正在尝试跟随你的脚步创建自己的动画师,但是一旦我将新创建的(因此为空白的)动画师拖到化身的控制器字段上并按下播放,所有突然间,人物半入地下。位置没有变化,等等......当我删除它并且控制器字段再次为空时,一切正常。你以前遇到过这种情况吗?
    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 2015-05-19
    • 2021-07-14
    • 2022-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多