惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
美团技术团队
N
Netflix TechBlog - Medium
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
The Cloudflare Blog
量子位
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 安徽飞雪游戏工作室

贴几张我们用irrlicht做的游戏截图 jpg图片效果有点差,看起来是不是有点像劲舞团? 3dmax导出为my3d教程 从内存中加载图片资源 irrlicht1.3中文支持 Audiere PK OpenAL 【原创】IrrLicht中ms3D模型不支持多个贴图问题的解决 【引】[翻译]Irrlicht引擎里的冲突检测与响应 [原创]IrrLicht中MS3D模型骨骼动画支持bug的排除 MS3D model 的 Frame count - 安徽飞雪游戏工作室 材质动画 Irrlicht 论坛好贴 精选(不断补充中...) [转]Scrolling Credits Code [转](C++) How to animate and move an entity [原创]为Irrlicht中的人物添加武器 [原创]Irrlicht中的Texture透明色(colorkey) [原创]IrrLicht的GUI使用 [原创]IrrLicht-1.0中文支持 [原创]一个在Irrlicht中会常用的字符串转换函数 [转]宽字符标量L"xx"在VC6.0/7.0和GNU g++中的不同实现。
3dmax文件导出到ms3d文件.
安徽飞雪游戏工作室 · 2007-06-01 · via 博客园 - 安徽飞雪游戏工作室

在工作室制作一个动作类休闲游戏的过程中经过比较选择了ms3d做为动画模型.这样我们就需要把美工制作的max文件转化为ms3d格式.下面是我们采用的方法.(基本引用燕尘的ogre模型导出的文章)

(1) 使用ActorX插件,将角色动画从 3dsmax 完整导出PSA,PSK文件;
(2) 使用 MilkShape 3D ,读入上一步导出的动画,转化为ms3d。

下面介绍一下详细步骤。

0. 使用的工具:

(1) 3dsmax 4, 5, 6, 7
主要是因为下面的 Unreal ActorX 插件的强大,拥有对应 3dsmax 4, 5, 6, 7 各个版本的全部输出插件,所以在这里, 3dsmax 的版本不是问题。
我用的是 3dsmax 6

(2) Unreal ActorX for 3dsmax plugin
(2-1) 插件下载
你可以去 UND (Unreal Developer Network) 下载对应你的 3dsmax 版本的 ActorX 插件。下载页面在这里:
http://udn.epicgames.com/Two/ActorX
这里还有 for Maya 4, 4.5, 5, 6 的 ActorX 插件。总之不管你使用 3dsmax 还是 Maya ,也不管你使用的是什么版本,这个插件的强大性可以保证你能够顺利输出,同时保证输出后的模型和动画文件遵守相同的规范,确保它们可以被 MilkShape 3D 顺利读取和最终输出。
(2-2) 插件安装
解压缩 ActorX_216_Max6.zip ,把里面的 ActorX.dlu 复制到 3dsmax 的 plugins 文件夹,例如 C:\3dsmax6\plugins
(2-3) 使用方法
插件的使用方法可以简单阅读一下这一页:
http://udn.epicgames.com/Two/ActorXMaxTutorial

(3) MilkShape 3D 1.7.0 或 1.7.1
这是一个共享软件,未经注册无法输出,考虑到燕尘小筑的国际影响,坚决不在这里放出注册机或注册码,诸君可以自己寻找各种适用版本。它的官方网站在这里:
http://www.milkshape3d.com

OK. 下面开始正式输出。

1. 第一步,使用 Unreal ActorX 插件,从 3dsmax 中输出角色模型 *.PSK 和骨骼动画 *.PSA 。

(1) 使用 3dsmax 打开原始角色动画文件 *.max 。

(2) 然后,你必须遵守一些必要的约束,对这个原始角色动画文件进行一些必要的预加工:
(2-1) 一次只能输出一个角色模型。如果你希望一次输出多个物体,比方说,你希望同时输出角色本身和角色手中拿着的武器,你需要先把角色本身转化为 Editable Mesh ,然后使用 Attach 功能将武器绑定为角色的子物体 (Sub Mesh) 。
(2-2) 角色的骨骼只能有一个根节点。如果需要输出的角色骨骼拥有多个根节点,你需要为它们新建一个共同的根节点。
(2-3) 最后是最重要的一点,忽略了这一点将会导致你输出的模型的法线和纹理产生严重的异常。你必须给你的模型的材质赋予一个“合法的”名字。这一条,是 Unreal ActorX 输出插件的一个严格规定,它要求所有的材质都必须带一个形如 “_Skin00” 、"_Skin01"、 "_Skin02" 这样的后缀。
例如,如果你的模型带有两个材质,原来的名字分别是 "MBody" 和 "MFace" ,那么,你需要把这两个材质分别改名为 "MBody_Skin00" 和 "MBody_Skin01" 。
更改材质的名字可以使用 Material Editor :

attachments/month_0411/jg9m_snap0138.jpg

(3) 然后,首先输出角色的静态模型,输出为 *.PSK 文件。这个模型文件中,包含了角色的皮肤和骨骼信息。

(3-1) 首先要打开 ActorX 工具箱。
(3-1-1) 到 3dsmax 右栏,点击小锤子图标切换到 Utilities 面板,点击 [More...] :

attachments/month_0411/1xp4_snap0139.jpg

(3-1-2) 在弹出的 Utilities 窗口中,双击 "ActorX" :

attachments/month_0411/52t9_snap0140.jpg

(3-2) 在 ActorX 面板中,点击 output folder (输出文件夹) 一栏旁边的 Browse 按钮选择模型文件的保存目录,这同时也是稍后输出动作文件的保存目录;然后在 mesh file name (模型文件名) 一栏中给你要输出的模型文件取个名字。

attachments/month_0411/41s8_snap0143.jpg

(3-3) 然后点击 Save mesh/refpose (保存模型/参考姿势) 按钮来保存角色模型。在保存过程中会相继弹出下面两个对话框:

attachments/month_0411/liao_snap0146.jpg

attachments/month_0411/63u9_snap0147.jpg

(3-4) 如果弹出错误信息,你需要根据错误提示做一些相应的纠正。很多情况下,可能是你的输出选项没有设置好,需要在 ActorX - Setup 面板中修改一些相应的选项:

attachments/month_0411/fc5i_snap0148.jpg

每一个具体选项不再具体讲解,详细请参考这一页的下半部:
http://udn.epicgames.com/Two/ActorXMaxTutorial

(3-5) 输出的模型文件为 *.PSK 。

(4) 最后就是骨骼动画文件 *.PSA 的输出。这个功能相当强大。

(4-1) 首先, ActorX - Epic Games 面板的上部是模型输出模块,下部就是骨骼动画输出模块。
(4-1-1) 在 animation file name (动画文件名) 一栏中,给你要输出的动作文件起个名字;
(4-1-2) 在 animation sequence name (动画序列名) 一栏中,给你要输出的这段动作起一个动作名,例如 dance 、 walk 、 run 、 attack 等等;
(4-1-3) 在 animation range (动画范围) 一栏中,给你要输出的这段动画序列指定一个输出的帧的范围,格式是 "开始帧-结束帧";
整个设置如下图:

attachments/month_0411/olds_snap0151.jpg

(4-2) 然后首先我们要做的,是动画的采集 (Digest Animation) 。点击 [Digest animation] 按钮,看状态栏的进度条走完,就完成了动画的采集,但是这时候,仅仅是完成了这个动作序列的动画的数据取样,并没有把它保存起来,所以还需要进行下一步,就是动画的管理。

(4-3) 点击 [Animation manager] 按钮,打开 AcoorX animation manager (动画管理器) 面板:

attachments/month_0411/52u9_snap0152.jpg

(4-3-1) 在这个面板的左栏,我们会看到已经有了一个动画序列,名字是 "dance" ,我们可以使用中间的 move [-->] 、 [<--] 按钮,把这个动画序列移动到右边的 Output Package 一栏,也就是准备输出这个动作;

(4-3-2) 然后点击右边的 [Save] 按钮,骨骼动画序列就会被保存到指定的动作文件中:

attachments/month_0411/rogv_snap0153.jpg

保存成功后会弹出如下对话框:

attachments/month_0411/52t8_snap0154.jpg

(4-4) 就这样,动作文件被保存为 *.PSA 。

(4-5) 这个Animation manager 的动画管理功能十分强大,你可以做的不仅仅是保存单个动画序列,你还可以分别采集 (Digest) 多个动画序列然后把它们保存为一个动作文件,你还可以使用 [Load] 或 [Load As..] 按钮来读取一个现有的动作文件,对其添加或删除动作序列,然后再使用 [Save] 或 [Save As..] 按钮来保存修改过的动作文件。总之,这个动画管理器很强大,多多学习。

2. 使用 MilkShape 3D ,读取上一步生成的 *.PSK 和 *.PSA 文件,然后整合输出到 OGRE 。

(1) 打开 MilkShape 3D 。

(2) 使用菜单 [File] - [Import] - [Unreal/UT PSK/PSA ..] ,首先输入模型文件 *.PSK ,然后输入动作文件 *.PSA

attachments/month_0411/da3h_snap0158.jpg

(3) 你可能发现两处毛病:首先,骨骼可能错位了;其次,没有纹理贴图。这两个问题都不难解决:
(3-1) 首先你必须详细阅读 MilkShape 3D 的 Help ,学会各种简单操作;
(3-2) 纹理贴图的问题,在 Materials 面板点击这个按钮就可以选择贴图:

attachments/month_0411/b91f_snap0159.jpg

(3-3) 骨骼错位的问题,配合三视图,利用 Model 面板,首先使用 [Select] 按钮选择全部顶点,然后使用 [Move] 和 [Rotate] 工具来使角色的皮肤对齐角色的骨骼。
注意一!不要动骨骼;
注意二!在对齐时,必须确保下方的 Animation 栏处于未激活状态,也就是 [Anim] 按钮未被按下,一排动画播放键处于失效状态。
等一切搞定后再点击 [Anim] 按钮播放动画。

attachments/month_0411/fc5i_snap0161.jpg

(3-4) 调好的模型和骨骼:

attachments/month_0411/52t9_snap0165.jpg

(4) 现在就该输出了。

FILE->SAVE就可以保存为ms3d模型了.在irrlicht几乎支持所有常见的动画格式.ms3d支持的是比较好的.1.0版本有些问题,不过后来的版本更正了.希望irrlicht的明天会更好.也希望有更多的人来使用研究这个引擎.