游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2513|回复: 3

提骨关键代码

[复制链接]

8

主题

239

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
发表于 2005-9-5 22:29:00 | 显示全部楼层 |阅读模式
忙了一个月了,就这几行,效率太......
只是粗码,主要是提四元数,根节点要提position.基本应该够用了,
感谢xpertsoft提供cssdk,感谢太傻指点.
感兴趣的来顶啊。


void _get_node_point(INode* pNode, Point3& p){
Control* pTmCtrl = pNode->GetTMController();
///printf("pTmCtrl:%i\r\n", pTmCtrl);
if(!pTmCtrl)return;
///检查Ctrl类型;
//if(pTmCtrl->ClassID() == BIPBODY_CONTROL_CLASS_ID){
//}
IBipMaster* pBipM = GetBipMasterInterface(pTmCtrl);
///printf("pBipM:%i\r\n", pBipM);
if(!pBipM)return;

TimeValue time1 = gpIF->GetTime();

p = pBipM->GetBipedPos(time1, pNode);

Quat q = pBipM->GetBipedRot(time1, pNode);
float pR[3];
QuatToEuler(q,pR);
printf("q:%0.2f, %0.2f, %0.2f\r\n", pR[0]/(3.1415926/180), pR[1]/(3.1415926/180),
pR[2]/(3.1415926/180));
////ScaleValue s1 = pBipM->GetBipedScale(time1, pNode);
////Point3 p1 = s1.s;

printf("pos:%0.3f, %0.3f, %0.3f\r\n", p.x, p.y, p.z);

pTmCtrl->ReleaseInterface(I_BIPMASTER, pBipM);
}

sf_200595222847.gif

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2005-9-6 08:37:00 | 显示全部楼层

Re:提骨关键代码

什么叫提骨关键代码啊?
从Biped的Control里去取数据.好复杂

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2005-9-6 08:39:00 | 显示全部楼层

Re:提骨关键代码

如果你只想取出骨头的矩阵,那么用GetNodeTM就够用了。
而且美术并不只会用CS的Biped来做东西.他们还会用一些虚拟体一类的东西.骨头上很可能加了Scale.那么你只保存Rot / Pos是显然不够的

8

主题

239

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
 楼主| 发表于 2005-9-6 13:14:00 | 显示全部楼层

Re:提骨关键代码

哦,原来如此,我刚搞啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 17:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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