我想创建一个模型并将其导入 XNA 游戏。
我希望能够复制此模型并在执行期间对其进行编程修改(目的是使用相同的模型来表示游戏中的多个角色)。比如我想让腿稍微长一点或者短一点,或者腰部稍微胖一点或者瘦一点,或者头部稍微小一点或者大一点。
我知道如何使用变换来修改网格,但似乎我在这里需要的是仅将变换应用于该网格中的顶点子集。我不知道如何在 XNA 中执行此操作,或者它是否受支持。
两个问题:
1) XNA 支持这样的功能吗?
2)如果是这样,使用什么样的方法来获得预期的结果?
我想创建一个模型并将其导入 XNA 游戏。
我希望能够复制此模型并在执行期间对其进行编程修改(目的是使用相同的模型来表示游戏中的多个角色)。比如我想让腿稍微长一点或者短一点,或者腰部稍微胖一点或者瘦一点,或者头部稍微小一点或者大一点。
我知道如何使用变换来修改网格,但似乎我在这里需要的是仅将变换应用于该网格中的顶点子集。我不知道如何在 XNA 中执行此操作,或者它是否受支持。
两个问题:
1) XNA 支持这样的功能吗?
2)如果是这样,使用什么样的方法来获得预期的结果?
您要查找的内容称为retargeting
. 你想有多个skeleton
s 但只有一个model
.
使用骨骼动画,每个骨骼都会影响model
使用权重的顶点,称为skinning
. 如果您有不同的骨架,则模型保持不变,但其顶点变换的方式会发生变化。
对您的问题的简短回答:
这个关于stackexchange或这个项目的问题以获取更多信息。
我从未尝试在 XNA 中这样做,只是“商业游戏引擎”。