怎么通过程序控制unity3d人物动作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么通过程序控制unity3d人物动作相关的知识,希望对你有一定的参考价值。

请问怎么通过程序直接调用人物模型各个部分的参数,来实时控制它的动作,而不是通过调用事先做好的动画片段,unity能实现这个功能吗,还是只能用Mecanim。项目有这方面的要求。

类似用代码直接调用或更改红圈里面的参数

完全可以 3d动画的原理无非是存储了每一帧骨骼的位置信息和蒙皮信息 也就是说用3d动画软件制作的骨骼动画模型导入到u3d时 只是导入了模型 蒙皮以及动画信息 所以如果你已经有了一个带有骨骼蒙皮的模型 完全可以用程序控制每一个骨骼的运动 但是为了使骨骼能够比较连贯 您就需要了解骨骼算法并应用到您的程序中,如果你有一个kinect这类的设备 还能录制真实人的动作 绑定到u3d的模型中。从实现上来说 您可以通过transform的查找函数找到模型下的所有骨骼,继而控制他们
ps:无论使用新的还是老的动画系统都是无法完美达到实时自由控制动画的目的
参考技术A 用代码直接搞的话基本上就是体力活了。
得楼主您自己封装一个算法来模拟人物的骨骼运动这些物理效果,想想都可怕。
当然很简单的还是很好实现的,但是把人物各部分串接好,这个没有几千行代码我估计不得行哦。

建议还是把模型在三维软件中做好动画吧。mecanim和老的animation动画都可以。看项目需求。

unity第一人称控制器怎么使用鼠标点击

参考技术A Unity——第一人称控制器的实现
一、功能描述
在一个场景中实现人物的前后左右移动和跳跃功能;其中前后左右移动通过W、A、S、D方向键实现,跳跃功能通过空格键实现,并且考虑到重力作用,来调节跳跃功能。

二、功能实现
2.1创建一个Character Controller
先创建一个新的GameObject,并重命名为Player

并为其添加一个Character Controller组件

在Player下,创建一个Cylinder物体(代替人物),并将场景中的主相机(Main Camera)放于Player下

将Cylinder物体中的Capsule Collider组件删除,解决碰撞问题。

2.2实现相机(第一人称视角的旋转,左右)的移动
相机的视角通过鼠标mouse进行控制

Assets文件夹下创建Scripts文件夹,用来保存代码文件;并在Scripts文件夹下创建CameraMove的C#文件并打开;

直接放代码,相关解释在代码里:

以上是关于怎么通过程序控制unity3d人物动作的主要内容,如果未能解决你的问题,请参考以下文章

unity3d怎么控制优先级

unity3d中怎么给带骨骼的人物模型摆个姿势?

Unity3D:实现人物转向与移动

请问如何在3dmax中设计人物动作的名称,如run,walk,我想在unity3d中调用。

Unity3d中的人物移动

unity3d 第三人称视角的人物移动以及相机控制