3D建模

A collection of 1736 posts
3D建模

Cocos Creator3D:物理事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 物理事件 Cocos Creator 3D 的物理事件有触发事件和碰撞事件。 触发器和碰撞器 当碰撞时,触发器不会产生物理行为,而碰撞器会产生物理行为。 因此触发器是只进行碰撞检测的Collider,犹如幽灵一般。而碰撞器是既进行碰撞检测,又进行物理模拟的Collider。 两者的区别 * 触发器不会与其它触发器或者碰撞器做更精细的检测。 * 碰撞器与碰撞器会做更精细的检测,并会产生碰撞数据,如碰撞点、法线等。 注:isTrigger属性决定Collider组件是否为触发器。 触发事件和碰撞事件 触发事件 触发事件由触发器生成,目前分为三种 onTriggerEnter、onTriggerStay、onTriggerExit,分别代表着触发开始,触发保持,触发结束。 监听触发事件,需要通过注册事件来添加相应的回调: 1. 通过this.getComponent(Collider)获取到Collider 2. 通过Collider的on或者once方法注册相应事件的
2 min read
Cocos Creator3D:刚体组件
3D建模

Cocos Creator3D:刚体组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 刚体组件 获取刚体组件 TypeScript的代码示例:const rigidBody = this.getComponent(RigidBody); 刚体类型 刚体一般分为三种类型,static,dynamic,kinematic. * static,表示静态刚体,犹如质量巨大无比的石头,具体为质量为0的,或者只有碰撞组件的物理元素。 * dynamic,表示动力学刚体,能够受到力的作用,具体为质量大于0并且isKinematic为false的。 * kinematic,表示运动学刚体,由用户来控制该刚体的运动,具体为质量大于0并且isKinematic为true的。 刚体质心 目前质心固定在刚体组件绑定的节点上,质心和碰撞体是相对关系。通过调整形状的偏移center,可以使质心在形状上进行偏移。 注:为了使碰撞体更方便的贴合模型,未来可能会增加改变质心的方法,以及动态计算质心的机制。 休眠和唤醒 代码示例: if (rigidBody.isAwake) {
4 min read
3D建模

Cocos Creator3D:物理材质

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 物理材质 在 Cocos Creator 3D 中物理材质是一种资源,它记录了物体的表面信息,这些信息用来计算碰撞物体受到的摩擦力和弹力等。 属性 物理材质属性如下图所示: 属性解释friction摩擦系数restitution回弹系数 当与其它表面接触时,这些系数用于计算相应的摩擦力和弹力。 创建 物理材质可以通过两种方式创建: 1. 编辑器内创建 2. 代码实例化 用编辑器创建的方式如下图所示: 代码中实例化: let newPmtl = new PhysicMaterial(); newPmtl.friction = 0.1; newPmtl.restitution = 0.1; 应用 目前物理材质以碰撞体为单位进行设置,每个Collider都具有一个material的属性(不设置时,Collider将会引用物理系统中的默认物理材质)。 应用到Collider同样也分编辑器操作和代码操作两种方式。 编辑器内操作,只需要将资源拖入到cc.PhysicMate
2 min read
Cocos Creator3D:碰撞组件
3D建模

Cocos Creator3D:碰撞组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 碰撞组件 获取碰撞器组件 Cocos Creator 3D 目前支持两种语言进行开发,分别为JavaScript和TypeScript。 注:TypeScript具有良好的语法分析和类型提示,推荐使用。 以获取BoxCollider为例,在JavaScript中获取Collider组件: 1. this.getComponent('BoxCollider') 2. this.getComponent(BoxCollider) 在TypeScript中获取Collider组件: 1. 上述JavaScript使用的方式 2. this.getComponent(BoxCollider) (推荐使用,提示导入时,注意导入位置为cc) 注:若无智能导入提示,请检查工作目录是不是在工程的顶层,以及是否使用较新的VSCode编辑器。 碰撞器和触发器 Collider组件具有isTrigger属性,当isTrigger为true时,表示为触发器,反之为碰撞器。 注:关于碰撞器和触
6 min read
3D建模

Cocos Creator3D:使用物理

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 使用物理 为了更好的介绍如何使用物理,将通过以下模块进行介绍: 模块描述碰撞组件介绍了Collider组件的设计,以及与RigidBody组件的关系物理材质介绍了 Cocos Creator 3D 中的物理材质资源刚体组件介绍了RigidBody组件的一些代码使用示例物理事件介绍了 Cocos Creator 3D 中的物理事件分组掩码介绍了物理过滤检测中分组掩码的使用射线检测介绍了对物理碰撞器的射线检测功能 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:物理组件 (mvrlink.com) 下一篇:Cocos Creator3D:碰撞组件 (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:物理组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 物理组件 Cocos Creator 3D 目前为用户提供了多种碰撞器组件和通用的刚体组件,以及工具类的恒力组件。 注:更多功能组件将会在后续版本持续发布,请留意版本更新公告。 碰撞器组件 碰撞器组件用于表示刚体的碰撞体形状,不同的几何形状拥有不同的属性。 注:以下属性名称的首字母在实际代码中都为小写。 注:目前在builtin中只支持盒、球、胶囊体。 盒碰撞器组件(BoxCollider) 属性解释material碰撞器引用的物理材质(为空时引用物理系统的默认物理材质)isTrigger是否为触发器,触发器不会产生物理反馈center本地坐标系下形状的原点size盒的大小,即长、宽、高 球碰撞器组件(SphereCollider) 属性解释(其它参考盒碰撞器)radius球的半径 圆柱碰撞器组件(CylinderCollider) 属性解释(其它参考盒碰撞器)direction圆柱延申方向的参考轴height圆柱的总高度radius圆柱两端圆面的半径 胶囊碰撞器组件
5 min read
3D建模

Cocos Creator3D:物理系统

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 物理系统 物理系统(PhysicsSystem)用于管理所有物理相关的功能,目前它负责同步物理元素、触发物理事件和调度物理世界的迭代。 物理世界 物理世界迭代时会对物理元素进行物理计算,比如计算各物体是否产生碰撞,以及物体的受力情况。当计算完成后,物理系统会将物理世界更新到场景世界中,从而使游戏对象产生相应的物理行为。 目前 Cocos Creator 3D 的物理执行流程:触发物理事件 -> 场景同步到物理 -> 物理世界迭代 -> 物理同步到场景。 注:目前只有单一的物理世界,后续会探讨多物理世界的功能支持。 场景世界与物理世界: 部分属性 目前物理系统的属性暂时只能通过代码进行设置,后续将会增加设置面板,请留意更新公告。 注:获取物理系统实例: PhysicsSystem.instance 属性解释enable是否开启物理系统,默认为truegravity物理世界的重力值,默认为 (0, -10, 0)allowSleep是否允许物理系统自动休眠,默认为truemaxSu
2 min read
Cocos Creator3D:选择适合你项目的物理系统
3D建模

Cocos Creator3D:选择适合你项目的物理系统

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 选择适合你项目的物理系统 在编辑器中选择 项目->项目设置->模块选项 中,您可以选择适合项目需求的物理引擎进行开发。 注:默认为cannon.js物理引擎。 注:开发过程中物理引擎可随意切换。 碰撞检测:builtin builtin 仅有碰撞检测的功能,相对于其它的物理引擎,它没有复杂的物理模拟计算。如果您的项目不需要这一部分的物理模拟,那么可以考虑使用builtin ,这将使得游戏的包体更小。 若使用builtin 进行开发,请注意以下几点: * builtin只有trigger类型的事件。 * RigidbodyComponent无效。 * Collider中的isTrigger无论值真假,都为触发器。 物理引擎:cannon.js cannon.js 是一个开源的物理引擎,它使用 js 语言开发并实现了比较全面的物理功能,如果您的项目需要更多复杂的物理功能,那么您可以考虑使用 cannon.js。cannon.js模块大小为141KB。 物理引擎:ammo.js
2 min read
3D建模

Cocos Creator3D:缓动系统

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 缓动系统 为了全面兼容和保持 Cocos Creator 2D 缓动系统的使用体验,在v1.1版本 Cocos Creator 3D 移植了所有的 Cocos Creator 2D 功能实现。 注:action已经被废弃了,请使用tween; 注:在v1.0.3版本开始将不再依赖tween.js,如果使用了tween.js的相关特性,请注意及时适配; 注:在v1.0.4版本开始,to和by的可选属性中增加了onStart,onUpdate,onComplete回调; 与此前tween.js不同的地方主要是可选属性,为以下内容: * easing 的值定义变动了(这里做了兼容性处理) * 除了 easing、onStart、onUpdate、onComplete,其它属性暂不支持(
4 min read
Cocos Creator3D:骨骼动画
3D建模

Cocos Creator3D:骨骼动画

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 骨骼动画 骨骼动画是一种常见但类型特殊的动画,我们提供两套系统,针对不同方向的需求,分别优化。 这两套系统的唯一开关就是 SkeletalAnimation 上的 useBakedAnimation 开关, 启用对应预烘焙骨骼动画系统,禁用后对应实时计算骨骼动画系统,运行时也可以无缝切换。 预烘焙骨骼动画系统 这个系统的压倒性目的是性能,部分表现力的牺牲也被认为是可以接受的。 我们针对性地做了很多底层优化,目前的运行时流程大致如下: * 所有动画数据都会按照指定帧率提前预采样、烘焙到全局复用的骨骼动画贴图合集上; * 根据运行平台是否支持浮点纹理,会对应使用 RGBA32F 或 RGBA8 格式的 fallback;(这层用户不必关心,不对最终表现有影响,只是低端平台最后的保底策略) * 每个骨骼动画组件(SkeletalAnimation)负责维护当前的播放进度,以 UBO(一个 vec4)的形式存储; * 各蒙皮模型组件(SkinnedMeshRenderer)持有预烘焙蒙皮模型
7 min read
3D建模

Cocos Creator3D:动画剪辑

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 动画剪辑 动画剪辑是一组动画曲线,包含了所有动画数据。 动画曲线 动画曲线描述了某一对象上某一属性值随着时间的变化。 在内部,动画曲线存储了一系列时间点,每个时间点都对应着一个(曲线)值,称为一帧,或关键帧。 当动画系统运作时,动画组件根据当前动画状态计算出指定时间点应有的(结果)值并赋值给对象,完成属性变化;这一计算过程称为采样。 以下代码片段演示了如何程序化地创建动画剪辑。 import { AnimationClip, animation, js } from "cc"; const animationClip = new AnimationClip(); animationClip.duration = 1.0; // 整个动画剪辑的周期。任何帧时间都不应该大于此属性。 animationClip.keys = [ [ 0.3, 0.6, 0.9 ] ]; // 该动画剪辑所有曲线共享的帧时间 animationClip.curves
9 min read
3D建模

Cocos Creator3D:动画组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 动画组件 动画组件控制动画的播放。 像其他组件一样为结点添加动画组件: import { Animation, Node } from "cc"; function (node: Node) { const animationComponent = node.addComponent(Animation); } 动画组件管理了一组动画剪辑。 动画组件开始运作前,它为每一个动画剪辑都创建了相应的 动画状态 对象。 动画状态控制某个动画剪辑在结点的播放过程,一个动画剪辑可以同时为多个动画状态所用。 在动画组件中,动画状态是通过名称来标识的。 每个动画状态的默认名称就是其动画剪辑的名称。 动画的播放与切换 play() 使得动画组件开始播放指定的动画: animationComponent.play('idle'); // 播放动画状态 'idle' 在播放时,旧的动画将立即被停止,这种切换是非常突兀的。 在某些情况下,我们希望这种切换是“淡入淡出”的, 此时应当使用 c
3 min read
Cocos Creator3D:拖尾模块(TrailModule)
3D建模

Cocos Creator3D:拖尾模块(TrailModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 拖尾模块(TrailModule) 属性作用modeParticle在每个粒子的运动轨迹上形成拖尾效果。LifeTime拖尾的生命周期。MinParticleDistance粒子每生成一个拖尾节点所运行的最短距离。Space拖尾所在的坐标系,World在世界坐标系中运行,Local在本地坐标系中运行。ExistWithParticles拖尾是否跟随粒子一起消失。TextureMode贴图在拖尾上的展开形式,Stretch贴图覆盖在整条拖尾上,Repeat贴图覆盖在一段拖尾上。WidthFromParticle拖尾宽度继承自粒子大小WidthRatio拖尾宽度,如果继承自粒子则是粒子大小的比例ColorFromParticle拖尾颜色是否继承自粒子ColorOverTrail拖尾颜色随拖尾自身长度的颜色渐变ColorOvertime拖尾颜色随时间的颜色渐变 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:Particle Renderer (mvrlink
2 min read
3D建模

Cocos Creator3D:Particle Renderer

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Particle Renderer 粒子渲染部分由 ParticleSystemRenderer 控制,ParticleSystemRenderer 分为 CPU 渲染器和 GPU 渲染器,CPU 渲染器通过一个对象池来维护所有粒子,根据粒子当前状态来生成对应的 vb、ib 数据,持有粒子需要渲染的材质,并且保存相关渲染状态。GPU 渲染器目前版本是在 CPU 端生成粒子,只提交初始参数的 vb, ib 数据,但是模块相关的计算则是通过预采样数据的形式,初始化时提交一次数据,后续的模块系统则是在 GPU 端对数据进行提取模拟运算,减少 CPU 端的计算压力,目前版本不支持 TrailModule 和 LimitVelocityOvertimeModule, 后续版本仍将持续对粒子系统进行优化改进。 属性作用renderMode设置一个粒子面片的生成方式,billboard 粒子始终面向摄像机,stretchedBillboard 粒子始终面向摄像机,但会根据相关参数进行拉伸,
2 min read
Cocos Creator3D:贴图动画模块(TextureAnimationModule)
3D建模

Cocos Creator3D:贴图动画模块(TextureAnimationModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 贴图动画模块(TextureAnimationModule) 属性作用modegrid一张贴图包含一个粒子播放的动画帧。numTilesXx方向动画帧数。numTilesYy方向动画帧数。animationwholeSheet播放贴图中的所有帧,singleRow只播放其中一行。frameOverTime一个周期内动画播放的帧与时间变化曲线。startFrame从第几帧开始播放,时间为整个粒子系统的生命周期。cycleCount一个生命周期内播放几次循环。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:加速度模块(ForceOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:Particle Renderer (mvrlink.com)
1 min read
Cocos Creator3D:加速度模块(ForceOvertimeModule)
3D建模

Cocos Creator3D:加速度模块(ForceOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 加速度模块(ForceOvertimeModule) 属性作用space加速度在哪个坐标系中计算。x,y,z三个方向上的加速度分量,可采用不同的计算模式。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:限速模块(LimitVelocityOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:贴图动画模块(TextureAnimationModule) (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:限速模块(LimitVelocityOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 限速模块(LimitVelocityOvertimeModule) 属性作用space速度在哪个坐标系中计算。limit速度下限,当速度超出该值时,将当前速度与该速度做线性插值,当separateAxes为false时有效。dampen当前速度与速度下限的插值。separateAxes是否三个轴分开限制。limit X,Y,Z三个轴的速度下限,当separateAxes为true时有效。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:速度模块(VelocityOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:加速度模块(ForceOvertimeModule) (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:速度模块(VelocityOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 速度模块(VelocityOvertimeModule) 属性作用space速度在哪个坐标系中计算。x,y,z三个方向上的速度分量,可使用不同的计算模式。speedModifier速度修正系数。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:旋转模块(RotationOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:限速模块(LimitVelocityOvertimeModule) (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:旋转模块(RotationOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 旋转模块(RotationOvertimeModule) 属性作用separateAxes是否三个轴分开进行旋转。X Y Z旋转随时间变化的曲线,可对三个坐标轴设置不同旋转,可采用不同计算模式,X,Y仅当separateAxes为true时有效。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:大小模块(SizeOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:速度模块(VelocityOvertimeModule) (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:大小模块(SizeOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 大小模块(SizeOvertimeModule) 属性作用separateAxes是否三个轴分开进行缩放。size大小随时间变化的曲线,可采用不同计算模式,当separateAxes为false时有效。X Y Z大小随时间变化的曲线,可对三个坐标轴设置不同缩放,可采用不同计算模式,当separateAxes为true时有效。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:颜色模块(ColorOvertimeModule) (mvrlink.com) 下一篇:Cocos Creator3D:旋转模块(RotationOvertimeModule) (mvrlink.com)
1 min read
3D建模

Cocos Creator3D:颜色模块(ColorOvertimeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 颜色模块(ColorOvertimeModule) 属性作用color颜色随时间变化的参数,可采用不同的颜色变化模式 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator3D:发射器模块(ShapeModule) (mvrlink.com) 下一篇:Cocos Creator3D:大小模块(SizeOvertimeModule) (mvrlink.com)
1 min read
Cocos Creator3D:发射器模块(ShapeModule)
3D建模

Cocos Creator3D:发射器模块(ShapeModule)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 发射器模块(ShapeModule) 公有属性: 属性作用position相对于挂载节点的位置rotation相对于挂载节点的旋转scale相对于挂载节点的缩放sphericalDirectionAmount表示当前发射方向与当前位置到结点中心连线方向的插值randomPositionAmount表示与当前发射位置的偏移 * 方块(Box) 属性作用shapeTypeBoxemitFrom粒子从方块的哪个部位发射,edge:边框;shell:表面;volume:内部 * 球、半球(Shpere\Hemisphere) 属性作用shapeTypeShpere\Hemisphereradius球体半径radiusThickness0表示从球表面发射,1表示从球体内部发射,0~1之间表示从表面到球心之间发射 * 圆(Circle) 属性作用shapeTypeCircleradius圆的半径radiusThickness0表示从圆周发射,1表示从圆内部发射,0~1之间表示从圆周到圆心之间
3 min read
Cocos Creator3D:主模块(ParticleSystem)
3D建模

Cocos Creator3D:主模块(ParticleSystem)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 主模块(ParticleSystem) 属性功能duration粒子系统运行总时间capacity粒子系统能生成的最大粒子数量loop粒子系统是否循环播放playOnAwake粒子系统加载后是否自动开始播放prewarm选中之后,粒子系统会以已播放完一轮之后的状态开始播放(仅当循环播放启用时有效)simulationSpace控制粒子坐标计算所在的坐标系startDelay粒子延迟发射的时间startLifetime粒子生命周期startColor粒子初始颜色scaleSpace粒子缩放的坐标空间,local基于本地空间的缩放,world基于世界空间的缩放startSize粒子初始大小startSpeed粒子初始速度startRotation粒子初始旋转角度gravityModifier重力系数rateOverTime每秒发射的粒子数rateOverDistance每移动单位距离发射的粒子数bursts在某个时间点发射给定数量的粒子- time粒子播放多长时候后开始发射burst- count发射的
2 min read
Cocos Creator3D:Particle System Overview
3D建模

Cocos Creator3D:Particle System Overview

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Particle System Overview 粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。 基本结构 粒子系统的基本单元是粒子,一个粒子一般具有位置、大小、颜色、速度、加速度、生命周期等属性。在每一帧中,粒子系统一般会执行如下步骤: 1. 产生新的粒子,并初始化 2. 删除超过生命周期的粒子 3. 更新粒子的动态属性 4. 渲染所有有效的粒子 一般粒子系统会有如下几个部分组成: 1. 发射器,用于创建粒子,并初始化粒子的属性 2. 影响器,用于更新粒子的属性 3. 渲染器,渲染粒子 4. 粒子类,存储粒子的属性 5.
3 min read
3D建模

Cocos Creator3D:声音系统总览

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 声音系统总览 声音系统的接口主要面向两类需求,一类是长度较长,循环持续播放的 “音乐”,一类是长度较短,一次性播放的 “音效”。 所有音频资源都会在编辑器内导入成 AudioClip 资源,要播放声音,首先需要在场景里创建 AudioSource。 对于音乐,可以直接将 AudioClip 赋给 AudioSource 上的 clip 属性,勾选 playOnAwake 属性或脚本调用组件的 play 方法来控制播放; 对于音效,可以在脚本里调用 AudioSource 的 playOneShot 方法,在调用时传入要播放的音效片段和音量。 注意虽然 AudioClip 资源本身也直接有 play 等接口实现,但 AudioSource 才是常规的播放入口,请尽量使用组件完成工作流。 音频相关事件 所有的 AudioClip
2 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号