从 Maya 导入 XNA 曲线?

Posted

技术标签:

【中文标题】从 Maya 导入 XNA 曲线?【英文标题】:XNA curve import from Maya? 【发布时间】:2011-10-17 05:54:06 【问题描述】:

我正在尝试将 Maya 中的运动曲线导入我的 XNA 游戏,但我不知道如何操作。基本上我想通过它的名字来捕捉曲线,并在不同的时间点查找它的值。

是否将曲线导出到 FBX 中?如果没有,那怎么抓?

编辑:Maya 可以导出为 Maya ASCII,我尝试解析它,但我不确定应该使用什么公式来重新创建曲线。

这是一个定义典型曲线的 Maya ASCII 片段:

createNode transform -name "curve1";
createNode nurbsCurve -name "curveShape1" -parent "curve1";
    setAttr -keyable off ".visibility";
    setAttr ".cached" -type "nurbsCurve" 
        3 11 0 no 3
        16 0 0 0 1 2 3 4 5 6 7 8 9 10 11 11 11
        14
        -4.9774564508407968 0 -6.8331005825440476
        -5.5957526204336077 0 -5.5944567905896161
        -6.8323449596191823 0 -3.1171692066807277
        -5.6935230034445992 0 3.3047128765440847
        -1.6528787527978079 0 8.8676235621397499
        7.5595909161095838 0 10.325347443191644
        9.2297347448508607 0 8.5586791722955731
        10.0730315036276 0 0.93412333819133941
        5.9770106513247976 0 3.7809964481624871
        2.9006817236214149 0 -3.3327711853359037
        11.373191256465434 0 -4.6672854260704906
        4.5697574985247682 0 -14.178349348937205
        2.4191279569332935 0 -11.415532638650156
        1.3438131861375628 0 -10.034124283506653
        ;

我设法在某处找到了文件格式参考,这里的重要信息是节点索引 (16 0 0 0 1 2 3 4 5 6 7 8 9 10 11 11 11) 和坐标(所有行都包含三个数字)。

但是,我仍然不知道如何重新创建曲线。我用谷歌搜索了很多关于 nurbscurves、bsplines 等的信息,但无法成功地将 Maya 中的结果与我能找到的任何代码匹配。

【问题讨论】:

【参考方案1】:

我已经在 3dsmax 中通过以 Ascii 格式导出曲线并手动解析文本来实现这一点,Maya 有没有这样的导出器?

【讨论】:

它可以保存到 Maya Ascii。我已经为它做了一个解析器,但是我无法通过这种方式重新创建正确的路径,格式太复杂了。我希望 XNA 可以导入 FBX 并以这种方式访问​​曲线。 我编辑了原始帖子,并添加了一些有关 Maya ASCII 定义曲线方式的信息。 @sinsro 是的,我知道要重新创建它是多么困难! XNA 将曲线建模为有理贝塞尔样条曲线,而不是 nurbs afaik。在 Maya 中将曲线创建为贝塞尔样条曲线而不是 nurb 曲线有多现实? (不幸的是,我自己从未使用过 Maya) 问题是我需要重新创建精确的数学公式,即使是最轻微的不准确也会使动画看起来明显偏离。我尝试了一些近似值,但它只是在视觉上不起作用。所以,希望这里有人可以提供帮助...... @sinsro 你有没有找到解决方案?

以上是关于从 Maya 导入 XNA 曲线?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用maya创建的fbx文件在xna中导入约束

Maya编程——沿Curve绘制圆柱

3DMAX的Biped动画怎么调曲线

在 Maya 中创建文本生成工具的问题

maya怎样入门

Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图