一个高级的RA2 SHP素材渲染脚本
本脚本是一个用于进行RA2、TS等游戏MOD所用的帧序列素材渲染的MaxScript脚本。
本脚本极大地参考了戴子玲老师的渲染脚本,在此表示最高的敬意和感谢。
本脚本具备场景快速导入、摄像机参数快速调整、建筑物、步兵、动画渲染功能、自定义渲染序列功能以及快速导入零件的功能。
本脚本当前仍在测试和开发阶段,且出于作者的业余爱好重心转移,该脚本的未来更新将会放缓。但当前已具备基本功能。
通过将Advanced_SHP_Render_Script_1.5.ms
文件拖入3DSMAX主窗口启动该脚本。此时窗口中应当出现一个标题为ASRS主菜单 1.5
的脚本窗口。我们将在下面分别说明其各个部分的功能。
这一部分包括场景导入和基本渲染环境设置、摄像机与渲染尺寸设置两个部分。主要影响渲染的环境和效果。
通过点击场景导入与设置
按钮进入该设置选项。
您将会看到一个标题为场景控制
的子窗口。我们将依次介绍其中八个按钮的作用。
- 基本3光场景
- 这一场景为经典的RA2渲染脚本所内置的3个平行光渲染场景。您可以通过点击这一按钮导入这一场景。该场景明暗对比适中,渲染速度快。
- 扩展8光场景
- 这一场景为红枫自己用的渲染场景,具备八个平行光。您可以通过点击这一按钮导入这一场景。该场景明暗对比较强,渲染速度适中。
- Nord天光场景
- 这一场景为应Nordlicht要求添加的,具有天光设置的场景。该场景具备为场景自动添加AO的效果,但渲染速度最慢。
- 清除所有场景
- 这一按钮可以清除当前场景内的渲染组件,包括光照和地板。
- 第二行
- 第二行的四个按钮可以切换渲染背景色。
您可以手动修改脚本文件夹下的场景以满足您的个性化需求。
这一部分用来快速调整摄像机和渲染尺寸。我们依次介绍四个按钮的作用。
- 摄像机左、右转45度
- 这一对按钮用于快速调整摄像机方向。实际上是通过扭转中心虚拟对象从而同时旋转摄像机和灯光实现的,因此看起来像是渲染对象在旋转而场景保持一致。该功能用于步兵和载具渲染时快速调整并预览渲染结果。
- 调整为大、小建筑渲染尺寸
- 这一对按钮用于快速调整摄像机参数,以适应不同尺寸的建筑物渲染,方便用户建造奇观。值得注意的是您需要手动改变渲染设置中的渲染尺寸,脚本当前不具备这一功能。
这一部分用于渲染帧序列。 注意!
- 在具体使用该部分的功能之前,您 务必 先按下
C
键以将摄像机切换至RA2目标摄像机
以保证渲染的正常执行。 - 在具体使用该部分的功能之前,您 务必 对场景进行增量保存(备份)以保证不会发生意外损失!
这一部分的简要工作流程如下
- 您将模型或中心虚拟对象 进行特定旋转以满足渲染的初始方向要求 ,然后 按
C
进入摄像机视角 ,然后按下指定的渲染按钮并确认 - MAX渲染当前帧,并按照预先指定的方向、角度扭动中心虚拟对象,而后重复这一过程若干次。
- MAX自动关闭非投影光,然后 为场景内所有几何体赋予无光投影材质 ,并打开地板的阴影渲染选项,重复过程2,以渲染阴影部分。 您必须注意,这一过程 将破坏场景内的灯光和材质 因此您必须在执行渲染之前增量保存(备份)您的场景!
- 渲染结束,您可以去文件夹查看您的渲染结果。
- 重要! 您需要在 不保存 的情况下,重新打开您的场景,以 取消场景对灯光和材质的修改 !如果您在渲染结束后的状态 错误地选择保存且没有做备份 ,您的场景将 需要您手动进行灯光和场景的修复 。
我们将逐个介绍四个主菜单。
这一部分用于渲染建筑物素材。通过点击建筑渲染
按钮进入该选项。 您将会看到一个标题为建筑渲染
的子窗口。我们将依次介绍其中八个按钮的作用。
- 渲染本体帧
- 该按钮将自动渲染建筑物的本体帧和其阴影。您可能需要手动去制作、合并损坏帧。
- 建筑动画
- 该按钮将自动渲染建筑物的动画。
- 围墙自动对准、输出围墙帧
- 该功能尚未完成合并,请您使用独立的围墙渲染脚本。
这一部分用于渲染步兵素材。通过点击步兵渲染
按钮进入该选项。 您将会看到一个标题为步兵渲染子窗口
的子窗口。
在这一过程中,您需要保证在每次渲染时,将步兵方向 指向前方(也即在摄像机中看到士兵的正后背) ,自定义渲染除外。
我们将依次介绍其中按钮的作用。
- 步兵帧手动渲染
- 这一部分用于渲染步兵的各个动画。您可以通过点击特定按钮以输出特定朝向、特定面数的帧及其阴影帧。这里覆盖了原版步兵可能需要的所有帧动画按钮。
- 自定义步兵帧
- 这里是本脚本的进阶内容,是为引擎扩展所预留的 。您可以在这里手动指定一个帧前缀,并在下方选择这一帧前缀下,您需要渲染单向或者八向的图像。如果您需要特定方向的单向图像,您需要在渲染前手动调整。
这一部分用于渲染动画素材。通过点击动画渲染
按钮进入该选项。 您将会看到一个标题为动画渲染子窗口
的子窗口。
我们将依次介绍其中按钮的作用。
- 一般动画
- 借助这一按钮渲染一般的动画。
- 开火动画
- 借助这一按钮渲染32向开火动画,初始朝向向上。
- 抛射体\建筑塔
- 借助这一按钮渲染SHP抛射体和建筑物的炮塔。
- 动态抛射体
- 借助这一按钮渲染动态抛射体。
- SHP载具的炮塔
- 借助这一按钮渲染SHP载具的炮塔。
这一部分用于渲染自定义素材。通过点击自定义渲染
按钮进入该选项。 您将会看到一个标题为自定义渲染
的子窗口。这里是本脚本的进阶内容,是为引擎扩展和进阶素材所预留的 。
我们将依次介绍其中选项的作用。
- 旋转面数
- 在这里选择您需要渲染多少个面数,实际上是将360°分为多少份。
- 旋转方向
- 在这里选择您需要的旋转方向。
- 俯仰方向
- 未实现。
- 渲染范围
- 可以选择渲染活动帧(动画)或者当前帧(一帧)
- 影子方向
- 可以选择影子朝向光照方向的背向(类似原版建筑)或者向下(类似原版飞行器)。
- 影子大小
- 可以选择完全尺寸影子或者50%比例的影子(类似原版飞行器)
- 本体遮挡阴影
- 可以选择本体是否会遮挡阴影。用于飞行器渲染。
- 帧前缀
- 手动指定渲染的帧文件名称前缀。您在这一部分不可以使用字符
S
,因为这一字符是为阴影所预留的。建议使用字母表中S之前的大写字母组合。
- 手动指定渲染的帧文件名称前缀。您在这一部分不可以使用字符
- 开始渲染
- 点击按钮按照上述选项进行渲染。
这一部分用于导入预制件和四个预制动作,方便步兵素材的制作。
这一部分包含了一些简单的步兵武器(红枫自己做的,以 CC0协议公开至公有领域以便利步兵素材制作 )、来自原版的步兵泄露模型的身体护甲(以方便制作和原版画风一致的素材)以及四个常用步兵动画(FBX格式,可以导入到原版泄露的模型上)。 来自WW的模型由WW保留所有权利。 重要!导入动画时弹出的页面里需要选择仅更新动画选项! 由于过于简单明了不做进一步解释。
这一部分仅包括一个来自原版泄露的步兵开火效果模型。您需要用缩放动画和移动动画来使用这一模型。由于过于简单明了不做进一步解释。
这里有脚本的作者、版本和更新时间数据,以及帮助文档入口(指向我的博客的在线存档)。
Q: 为什么在渲染确认页面取消渲染之后,按按钮都不起作用了? A: 这是因为MAXSCRIPT在报错的时候会自行终止脚本的进一步操作。这实际上是一个BUG,因为手动终止不应被认为是错误,将会试图在下一个版本中修复这一问题。
Q: 为什么很多功能不起作用? A: 因为作者还没有完成所有功能的开发。
Q: 我误覆盖我的场景了怎么办! A: 首先我在上面重复强调了备份的重要性,如果您还是犯了这种错误请您手动更换场景中的每一个材质,并删除所有灯光、地板、并重新导入渲染场景。