gpt4 book ai didi

c++ - 3DS MAX 2014 SDK c++ 中的关键帧

转载 作者:行者123 更新时间:2023-11-28 06:47:01 31 4
gpt4 key购买 nike

我想请你们帮我在 Max SDK C++ 中创建关键帧。我做了什么:

  • 创建了一个 Controller 插件
  • getValue 函数中,我通过代码完成了翻译。
  • 我还编写了 setValue 函数。

我认为它管理关键帧并在给定时间将 Controller 位置存储在给定关键帧中。通过这种方式,我实现了能够手动设置键,但我真的很想在 Max 中打开自动键。另一方面,我看不到新添加的键值。所以请帮助我,我怎样才能添加关键帧?

非常感谢:类德拉斯

void maxProject3::GetValue(TimeValue t, void *ptr, Interval &valid, GetSetMethod method)
{

Point3 p3OurAbsValue(0, 0, 0);
tomb[0]=0;

//These positions stores my data they are globals
XPosition += (accX);
YPosition += (accY);
ZPosition += (accZ);

p3OurAbsValue.x = XPosition;
p3OurAbsValue.y = YPosition;
p3OurAbsValue.z = ZPosition;

valid.Set(t,t+1); //This answer is only valid at the calling time.

MatrixCtrl->GetValue(t, &p3OurAbsValue.y, valid, CTRL_RELATIVE);

if (method == CTRL_ABSOLUTE)
{

Point3* p3InVal = (Point3*)ptr;
*p3InVal = p3OurAbsValue;

}
else // CTRL_RELATIVE
{
//We do our translations on a Matrix
Matrix3* m3InVal = (Matrix3*)ptr;
//m3InVal->PreTranslate(p3OurAbsValue);
m3InVal->PreRotateX(rotX);
m3InVal->PreRotateY(rotY);
m3InVal->PreRotateZ(rotZ);
}
}

int maxProject3::NumSubs() {
return 1;
}

Animatable* maxProject3::SubAnim(int n) {
return MatrixCtrl;
}

void maxProject3::SetValue(TimeValue t, void *ptr, int commit, GetSetMethod method)
{
Matrix3* m3InVal = (Matrix3*)ptr;
MatrixCtrl->AddNewKey(t, ADDKEY_SELECT);
MatrixCtrl->SetValue(t, &m3InVal, commit, CTRL_RELATIVE);
}

最佳答案

要打开自动键模式,请在转换前尝试使用 AnimateOn()。最后还要添加AnimateOff()来关闭auto key模式。

我在我的一个项目中使用自动键模式创建 Material ID 动画。

/** Auto key on*/
AnimateOn();

/** Creating material id animation */
for(int mtl_id = 1; mtl_id <= num_sub_mtl; ++mtl_id, time += time_step)
{
mtl_modifier->GetParamBlock()->SetValue(MATMOD_MATID,time,mtl_id);
}

/** Auto key off*/
AnimateOff();

还有一个建议,使用 max 脚本监听器来了解在使用 3ds Max GUI 创建动画时发生了什么。这将帮助您使用 Max SDK 重新创建动画。

关于c++ - 3DS MAX 2014 SDK c++ 中的关键帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789458/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com