游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1533|回复: 1

请教如何实现这样的3dsmax插件

[复制链接]

5

主题

46

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
发表于 2007-12-13 20:37:00 | 显示全部楼层 |阅读模式
怎样导出3dsmax中的人物动画,成为自定义的动画文件?
比如2d游戏中使用的8方向角色动画。

更进一步,我希望能在3dsmax角色模型中加入一些不被渲染的点(用于换装)
在导出动画文件时能将这些点的坐标写入文件中。

写过类似功能的前辈赐教一下,先谢了。

5

主题

46

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
 楼主| 发表于 2008-1-12 12:55:00 | 显示全部楼层

Re: 请教如何实现这样的3dsmax插件

没人理我啊,已经找到方法了。

我找了个Ogre自带的OgreExport的模型导出插件代码,能去掉的都去掉
这样就成了最简单的导出插件了。

主要是继承这个接口
class OgreMaxExport : public SceneExport
{
  virtual int DoExport(const TCHAR *name,ExpInterface *ei,Interface *i,
                BOOL suppressPrompts=FALSE, DWORD options=0);
}

在导出的时候3dmax会调用DoExport
在这里就可以用ExpInterface 和 Interface做任何事情了;
以下代码 用max中的 "Camera1"相机拍摄一帧图片并保存。

int OgreMaxExport:oExport(...)
{
        Bitmap *bmap;
        BitmapInfo bi;
        bi.SetType(BMM_TRUE_32);
        bi.SetWidth(320);
        bi.SetHeight(200);
        bi.SetFlags(MAP_HAS_ALPHA);
        bi.SetCustomFlag(0);
        bi.SetName(_T("F:\\1.tga") );

        bmap = TheManager->Create(&bi);

        if(bmap)
        {
                INode * pCam = i->GetINodeByName(_T("Camera1") );

                if( pCam )
                {
                        i->OpenCurRenderer(pCam, NULL);

                        i->CurRendererRenderFrame( 0 , bmap );

                        i->CloseCurRenderer();

                        bmap->OpenOutput(&bi);
                        bmap->Write(&bi);
                        bmap->Close(&bi);

                        bmap->DeleteThis();
                }
        }

        return IMPEXP_SUCCESS;
}

sf_2008112125528.rar

4.13 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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