问题标签 [skeletal-mesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
460 浏览

c++ - 骨架计算

我正在尝试在我的 3D Enigne (DX 11) 上实现骨骼动画。蒙皮部分工作正常,但骨矩阵转换几乎没有问题。我正在使用基于 Valve 的 SMD 并已转换为左手坐标系(YZ 交换)的自制二进制格式。所以有我的骨头到世界的代码:

正如您在下面的图片中看到的那样,计算出的骨架看起来变形了。我认为旋转计算部分有问题,可能遗漏了一些额外的转置。我试图改变矩阵乘法顺序但没有任何成功。

原始骨架(3DS MAX)

计算骨架(引擎)

0 投票
1 回答
335 浏览

opengl - Skeletal animation blending upper/lower body, global or local space

If a model is compose of two cubes, upper cube and lower cube aligned along z axis, and lower cube is parent of upper cube.

Giving two skeletal animation:

animation A: upper cube keep static, lower cube rotate-z clockwise.

animation B: upper cube keep static, lower cube keep static

skeletal animation file stored local transformations.

that is,in animation A, lower cube may have two key frames: frame 0: rotate 0 degree, frame 50: rotate 360 degree

then blend A and B by

A: upper_weight = 1 lower_weight = 0

B: upper_weight = 0 lower_weight = 1

what's the correct result?

a. both upper and lower keep static

b. upper cube rotates counterclockwise

i think they should keep static, that's blend in global space, because A's lower weight = 0, means ignore lower transformations?

but if i blend them in local space, according to the A upper cube's local rotation, it will rotate.

i google and see people saying it's better to blend local transforms, but i don't think it gives the correct result, any suggestions?

0 投票
0 回答
658 浏览

javascript - 三.js 骨骼方向错误

我正在加载一个three.js 蒙皮和装配模型,以及一个bvh mocap 动画文件。

当我尝试将 bvh 动画应用于模型时,某些骨骼的方向错误:

错误的骨骼方向

如您所见,手臂的方向是错误的。

这就是我加载模型和 bvh 文件的方式:

bvh 文件和模型文件具有完全相同的骨架。你知道它是从哪里来的吗?

谢谢

0 投票
0 回答
1665 浏览

c++ - 在局部空间中为 Poseable 网格设置骨骼旋转

向大家问好,

向大家问好。:)

我在 UE4 上实现了一个 VR 体验,它检测 VR 体验用户的移动,然后更新虚拟世界中虚拟形象或用户表示的相应姿势。

为此,我根据关于此主题的内容使用 C++ 实现了此行为:

https://forums.unrealengine.com/showthread.php?25264-Pose-a-skeletal-mesh-in-runtime

也就是说,我有一个 USkeletalMeshComponent(其骨架网格是屏幕上看到的那个)和一个 UPoseableMeshComponent(被设置为 USkeletalMeshComponent 的“主姿势组件”),它从每个跟踪传感器接收旋转数据作为四元数。

一方面,UPoseableMeshComponent 的网格将设置为 USkeletalMeshComponet 的网格。另一方面,可摆姿势网格的骨骼使用来自每个骨骼的跟踪传感器的相应旋转数据进行更新,由于 UPoseableMeshComponent 被设置为USkeletalMeshComponent。

这在处理不是手指方阵的所有身体部位时非常有效,因为在世界空间中的这些身体部位上设置了旋转,以这种方式:

但是,出于技术原因,必须在 LOCAL 空间中为每个手指方阵设置骨骼旋转,但可摆设网格似乎仅适用于世界空间和组件空间;检查 'SkinnedMeshComponent.h' 在 EBoneSpaces::Type 上有一个 'LocalSpace' 枚举值...但它已被注释。

我无法理解“在组件参考框架中设置骨骼位置”这句话。它似乎不能作为局部空间的“替代品”(好像骨骼围绕化身的枢轴点旋转)。是否有任何其他方法或解决方法可以在局部空间中为可摆设的网格设置旋转?

提前感谢。:)

0 投票
1 回答
2685 浏览

javascript - Three.js - 动画没有播放

我对通过搅拌机插件从搅拌机导出到 THREE.js 的动画对象有问题。动画没有开始运行...

当然,我在从 blender 导出并导入到 THREE.js 库时尝试了许多设置组合,但都没有成功。

这是代码,我认为应该可以。评论关键部分注释可能是一些错误的地方。示例中也包含指向源 JSON 的链接。当然,如果需要,我可以提供源 *.blend 文件...

感谢您的任何建议。

0 投票
1 回答
322 浏览

blender - Collada 中的节点额外技术是什么?

我正在解析 1.4.1 Collada(从 Blender 导出),我注意到在library_visual_scenes部分下,一些节点有额外的 技术部分。

在网上看,并不清楚这些是用来做什么的,或者我如何使用它们。我想它们是用来改变骨头的……但我不确定。为什么甚至需要这个!?为什么它只是不烤入骨基质本身?

例子:

谢谢!

0 投票
2 回答
1502 浏览

merge - 不幸的是,我无法将两个骨架网格物体合并在一起

我有一个来自搅拌机的手枪模型,它由两部分组成:幻灯片和枪的其余部分,这样更容易为幻灯片制作动画。我将带有工作骨骼(幻灯片)的模型导出为 fbx,然后仅将一个静态网格导入虚幻引擎,得到 2 个静态网格,因为它是搅拌机文件中的 2 个对象。我能够合并静态网格的演员。但是,当我去导入骨架网格物体时,我得到了所有的骨架资源,并且网格物体看起来与静态网格物体相同,但是,当我尝试合并骨架网格物体时,它无法这样做,说“找到用于合并的网格组件不足”。我在互联网上搜索了所有内容,但没有找到任何有类似问题的人。

0 投票
0 回答
111 浏览

uv-mapping - Houdini - 骨架网格体和 UV 贴图的问题

我在使用骨架网格物体和 UV 贴图时遇到问题。这是我的模型: 模型屏幕截图

这个想法是使用球体作为枢轴点,我不想要任何变形。

网络截屏

这是我的网络,如您所见,我的装备有 3 个骨骼和对应于模型的 3 个部分的 3 个几何节点。

Segment1:带球体的顶部圆柱 Segment2:中间圆柱体和球体 Handle2:底部圆柱体

以下是段 2 几何的内容:段 2 几何节点内容

这个骨骼系统似乎工作得很好,没有变形,但我的问题是 UV 贴图。因为我有 3 个独立的几何图形,这也意味着我有 3 个独立的 UV 贴图。

显然,当我打开它们时,我有重叠的 UV: UV MAP

在 UE4 中导致纹理冗余一次: 在 UE4 中预览我的问题

我的尝试之一是只有一个几何节点,并且在合并后发生 UV 展开: 我尝试的网络

动画在 Houdini 中完美运行。问题是这在 UE4 中没有被识别为骨架网格物体。

您是否知道如何在几何之间共享相同的 UV 贴图,而不必自己手动放置每个岛以使它们不重叠?

干杯,

0 投票
1 回答
291 浏览

unity3d - Anima2D 创建角色的蒙版交互的统一问题

我正在制作一个使用 Anima2D 骨骼角色的 2D 多人射击游戏,而且我正在使用图层蒙版,因此玩家只能在选定的半径范围内看到敌人。我的问题是,我无法在网格上设置遮罩交互(Anima2D 角色是由精灵网格构建的)。

在此处输入图像描述

目前我正在使用模板着色器材质并且它正在工作,但我想稍后为角色设置一种材质(轻质材质)。Anima 不允许我将材质大小设置为 2。

有没有办法为 Anima2D 角色设置多个材质,或在部件上设置任何蒙版交互。

另一个问题是:有没有办法为 Anima2D 角色整体提供素材?我想在玩家死亡时使用“溶解”效果,但我希望它影响整个角色,而不是它的每个部分。

我确实花了几天时间试图解决这个问题,但是当谈到 Unity 时,我仍然是一个新手,这让我很难。

在此处输入图像描述

TL;DR 我只想从角色中移除我的模板缓冲材料,并通过图层蒙版控制可见性。

0 投票
1 回答
858 浏览

three.js - Three.js 亲子网格到骨骼

我的目标是将单独的对象(例如:可穿戴物品)附加到动画模型,以便绑定对象由模型动画控制。

我找到了这些,但似乎都过时了。

我尝试使用从搅拌机导入的角色,该角色经过蒙皮、装配和动画处理。

我的问题是:当我将新网格添加到模型的特定骨骼(代码中注释掉的部分)时,当前动画剪辑切换到第一个(t-pose),并且蒙皮被破坏(模型变白)。然而,对象连接到骨骼,并随之移动。

即使添加了一个简单的立方体,它也无法正常工作,但如果我可以将靴子添加到角色上,那就太好了,也就是像脚一样移动。