游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8537|回复: 10

[求助]关于qamin中的total和valid。。。在线等,急!

[复制链接]

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2006-11-29 21:29:00 | 显示全部楼层 |阅读模式
请教高手达人
     在mdl viewer中的total 和valid是怎么回事,为什么条件是k<num.valid。
还有就是怎么实现站着开枪和一边行走动画的合成?是合成的吗?还是单独做一个动画?
动作组是怎么回事啊?
谢谢了!本人是 新手,看了一下mdl viewer的代码,还有好多地方不明白,还请多帮忙。

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-11-29 22:53:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

难道没有人知道吗?我说的是这个:

void StudioModel::CalcBonePosition( int frame, float s, mstudiobone_t *pbone, mstudioanim_t *panim, float *pos )
{
        int                                        j, k;
        mstudioanimvalue_t        *panimvalue;

        for (j = 0; j < 3; j++)
        {
                pos[j] = pbone->value[j]; // default;
                if (panim->offset[j] != 0)
                {
                        panimvalue = (mstudioanimvalue_t *)((byte *)panim + panim->offset[j]);
                       
                        k = frame;
                        // find span of values that includes the frame we want
                        while (panimvalue->num.total <= k)
                        {
                                k -= panimvalue->num.total;
                                panimvalue += panimvalue->num.valid + 1;
                        }
                        // if we're inside the span
                        if (panimvalue->num.valid > k)
                        {
                                // and there's more data in the span
                                if (panimvalue->num.valid > k + 1)
                                {
                                        pos[j] += (panimvalue[k+1].value * (1.0 - s) + s * panimvalue[k+2].value) * pbone->scale[j];
                                }
                                else
                                {
                                        pos[j] += panimvalue[k+1].value * pbone->scale[j];
                                }
                        }
                        else
                        {
                                // are we at the end of the repeating values section and there's another section with data?
                                if (panimvalue->num.total <= k + 1)
                                {
                                        pos[j] += (panimvalue[panimvalue->num.valid].value * (1.0 - s) + s * panimvalue[panimvalue->num.valid + 2].value) * pbone->scale[j];
                                }
                                else
                                {
                                        pos[j] += panimvalue[panimvalue->num.valid].value * pbone->scale[j];
                                }
                        }
                }
                if (pbone->bonecontroller[j] != -1)
                {
                        pos[j] += m_adj[pbone->bonecontroller[j]];
                }
        }
}


void StudioModel::CalcRotations ( vec3_t *pos, vec4_t *q, mstudioseqdesc_t *pseqdesc, mstudioanim_t *panim, float f )
{
        int                                        i;
        int                                        frame;
        mstudiobone_t                *pbone;
        float                                s;

        frame = (int)f;
        s = (f - frame);

        // add in programatic controllers
        CalcBoneAdj( );

        pbone                = (mstudiobone_t *)((byte *)m_pstudiohdr + m_pstudiohdr->boneindex);
        for (i = 0; i < m_pstudiohdr->numbones; i++, pbone++, panim++)
        {
                CalcBoneQuaternion( frame, s, pbone, panim, q );
                CalcBonePosition( frame, s, pbone, panim, pos );
        }

        if (pseqdesc->motiontype & STUDIO_X)
                pos[pseqdesc->motionbone][0] = 0.0;
        if (pseqdesc->motiontype & STUDIO_Y)
                pos[pseqdesc->motionbone][1] = 0.0;
        if (pseqdesc->motiontype & STUDIO_Z)
                pos[pseqdesc->motionbone][2] = 0.0;
}

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-11-29 22:54:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

快点回复吧,我等得花而也谢了

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-11-30 12:35:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

兄弟们,帮帮俺吧

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-11-30 18:49:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

这板块有人吗?怎么连水一下帖子的人都没有啊??

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-11-30 19:44:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

我的QQ是187229692
邮箱是zhengy88@126.com
在线的时间较少,可以以上方式(最好邮箱)联系!!俺走了。

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-12-4 15:33:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

郁闷,这个版快没有人啊!!!!

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2006-12-6 08:39:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

似乎无人研究啊.......

8

主题

57

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2006-12-6 14:50:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

终于有人回帖了,感动ING....首先要感谢你的发言.
不过你说没有人研究就太夸张了,高手这么多的,我在百度上搜到一些2003到2005年在这个论坛上都有人在研究这个,而且水平还很高,就是这些人杂个就不现身呢?帮帮我这个菜鸟吧.呜呜呜....

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2006-12-18 08:56:00 | 显示全部楼层

Re:[求助]关于qamin中的total和valid。。。在线等,急!

估计都不来这里了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-20 10:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表