Unity3d中多足怪的物理RagDoll实现

Unity3d中多足怪的物理RagDoll实现Unity3D4 5 中的物理只支持双足人形的 RagDoll 对于非双足人形的怪物 需要自己动手在每根骨骼上添加物理关节 joint 具体做法是 1 在 3DsMax 中创建怪物模型及骨骼 2 使用 NVIDIA PhysX For Autodesk 3ds Max 插件生成怪物模型的 RagDoll 设置骨骼碰撞体参数及关节约束 JointConstra 参数 3 将生成的

Unity3D 4.5中的物理只支持双足人形的RagDoll,对于非双足人形的怪物,需要自己动手在每根骨骼上添加物理关节(joint)。具体做法是:

1.在3DsMax中创建怪物模型及骨骼;

2.使用NVIDIA_PhysX_For_Autodesk_3ds_Max插件生成怪物模型的RagDoll,设置骨骼碰撞体参数及关节约束(Joint Constraint)参数;

3.将生成的RagDoll导出生成.FBX和.xml文件,导出的路径名不能包含中文,否则导出.xml文件失败,xml是用来描述生成的物理信息,记录物理材质,碰撞体及约束参数;

4.将.FBX和.xml文件导入到Unity3D场景中,可看到怪物模型的骨架信息;

5.对怪物模型的每根骨骼添加Configurable Joint或Character Joint组件和RigidBody组件(加载joint时自动加入),以及Collider组件;

6.解析xml文件,将碰撞体和关键约束的参数设置到对应的骨骼中。

这样Unity3D中多足怪的物理便设置好了。

 

下面说一下设置参数时需要注意的一些问题。首先,Max的坐标系和Unity中的坐标系不同,在导入模型后发现两个坐标系间的对应关系是:

      Unity  x  ==>  Max  -x

      Unity  y  ==>  Max   z

      Unity  z  ==>  Max  -y

设置时需要注意变换。其次,在设置Collider参数时需要注意Max中是以cm为单位,而Unity中是以m为单位,因此xml中Collider的参数需要在Unity中乘以0.01。另外,一定需要注意的是如果需要该Collider生效,一定要把Collider中的IsTrigger属性选为false,否则Collider不会生效,碰撞时会穿过去。

最后需要测试一下添加RagDoll后的效果,创建一个空场景,在场景中添加一个Cube作为地面,为Cube添加RigidBody组件,将做好的带物理的多足怪模型放置在地面上方,勾选每根骨骼RigidBody的UseGravity参数,使重力影响生效。将地面RigidBody组件的UseGravity参数选为false,将IsKinematic设为true,保证地面不会受碰撞移动。

 

转载于:https://www.cnblogs.com/elvisxu/p/4090490.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224980.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:25
下一篇 2026年3月17日 上午10:25


相关推荐

  • Qwen API调用时如何处理限流错误?

    Qwen API调用时如何处理限流错误?

    2026年3月13日
    1
  • 实战教程 | Coze Studio AI智能体开发:从零构建低代码+RAG驱动的多模型AI助手

    实战教程 | Coze Studio AI智能体开发:从零构建低代码+RAG驱动的多模型AI助手

    2026年3月14日
    1
  • IOS_OC_地图与定位

    IOS_OC_地图与定位知识点介绍一.定位实现一次定位CLLocation对象介绍实现持续定位请求用户授权二.地理编码正地理编码反地理编码三.地图的基本使用显示用户位置设置地图显示类型根据用户位置显示对应的大头针信息设置以用户所在位置为中心点监听地图显示区域改变iOS9新特性-显示交通状况/显示比例/显示指…

    2022年7月26日
    6
  • 手把手教你 SSM 整合(非常非常非常非常非常详细)

    手把手教你 SSM 整合(非常非常非常非常非常详细)SSM整合  整合的思路是:   Spring管理持久层的mapper。   Spring管理业务层的service,service可以调用mapper接口。Spring进行事物控制。   Spring管理表现层的Handler,handler可以调用service接口。工程创建   创建Maven工程–>createforarchtype–>webapp创建项目结…

    2022年6月12日
    26
  • 没有sln文件怎么打开「建议收藏」

    没有sln文件怎么打开「建议收藏」没有sln文件怎么用相信这个问题应该是初学者,对.net了解不深的同学会发问的一、很多人学习.net网站开发的时候,使用MicrosoftVisualStudio工具,却没使用过IIS配置网站,我学习的时候就没用过IIS。二、.net网站有个website和webApplication区分,估计很多初学者都不了解这个。可以点击这个了解下三、网站分层架构估计也不是很了解。…

    2022年4月30日
    372
  • 剖析RT-Thread中console与finsh组件实现(2)[通俗易懂]

    剖析RT-Thread中console与finsh组件实现(2)[通俗易懂]接上一章剖析RT-Thread中finsh组件实现(1),rt_device具体定义如下:其中内核基类定义如下:所以刚才串口1初始化后名称被初始化为了“usart1”,与刚才设置终端时入参刚好可以匹配。而这个标志是类型标志,串口类型即为RT_Object_Class_Device,同时也是一个静态类,所以会或上0x80其实rt_device中最重要的是传入了设备回调与操作函数指针,这些指针此时指向的是串口1的一系列操作函数。这些函数被初始化在串口1初始化的rt_hw_serial

    2022年5月12日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号