找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3878|回复: 1

【模型篇】如何创建残骸模型翻译

[复制链接]
发表于 2019-8-10 20:05:37 | 显示全部楼层 |阅读模式
教程出处: https://www.cnclabs.com/modding/ ... ollapse-models.aspx
原标题: Modding: Red Alert 3: Creating Collapse Models
How to create collapse models for Red Alert 3
作者: Tsumetai
搬运者: 矛式迷你潜艇

翻译:元尊
在你开始之前
      欢迎阅读我的教程,了解如何为Red Alert 3创建折叠模型。首先,本教程使用我编写的Max脚本自动生成所需的XML代码,因此在开始之前,您需要通过单击此处下载它。你可以把脚本放在任何你想要的地方; 但是,MaxScripts通常放在[3DS Max目录] \ Scripts文件夹中。启动3DS Max并在工具栏中,转到MAXScript> Run,导航到放置脚本的位置,然后运行它。或者,如果将MaxScript放在[3DS Max目录] \ Scripts \ Startup文件夹中,则脚本将在启动时执行,您无需手动运行它。
      这种类型的脚本称为宏脚本,这意味着它是从工具栏启动的,因此您现在必须自定义3DS Max工具栏以包含脚本。为此,请在工具栏中转到“自定义”>“自定义用户界面”。在打开的新窗口中,转到“菜单”选项卡。默认情况下,右侧选择主菜单栏; 虽然您可以自由地将脚本放在您想要的位置,但我建议将其放在主菜单栏中的某个位置; 就个人而言,我把它放在工具菜单下。从左侧列出的操作列表中查找脚本 - 它位于“计算器”类别中,这不是正常的3DS Max类别,因此它应该是唯一列出的那个。将脚本从左侧的“操作”拖动到右侧的菜单位置,现在它应该显示在Max中的该菜单下,您已准备好使用它。


      现在是时候开始设置实际的崩溃模型了。本教程不是关于如何在3DS Max中建模,所以我假设你现在有一些Max技能。从你的模型开始,将它细分为你想要的“块状”碎石,并将它们分开。为了加快本教程的制作,我简单地使用快速切割将模型切成碎片。分离块的最佳方法是使用“移动变换输入”对话框,可以通过右键单击屏幕顶部的“选择并移动”按钮打开该对话框。我建议使用一个简单的数字来记住每个块,比如10的倍数。

     在根据需要划分碎片后,选择Box原语并在顶视图中创建一个框。你将使用Box原语作为骨骼; 该脚本从Box原语的名称和属性派生卷信息。请勿将Box更改为可编辑多边形或网格,否则脚本将无法正常工作。
      选择一块碎片开始并移动和旋转框,并在“修改”选项卡中修改“框”的“长度”,“宽度”和“高度”属性,使其大致适合碎片块周围的框。不要使用“选择和缩放”工具来修改Box的形状,这不适用于脚本。


      你也想给Box一个名字。此名称将用作代码中的骨骼名称。我建议使用一个名称,让你知道这个骨头绑定的碎片的哪个部分; 这将在以后有用。对我来说,我使用以下约定命名骨骼:首先,我启动所有骨骼名称COL_(这样,用于体积骨骼的所有骨骼将在对象列表中组合在一起); 接下来我给它一个名字,告诉我它是什么,在图示的例子中:FIN_(这让我知道这是模型的鳍之一); 最后我用01结束了这个名字。在Max中,当你克隆一个物体时(通过移动它时按住'shift'),Max会自动增加名字末尾的数字。在这个模型中有四个鳍,所以当我克隆体积以形成下一个鳍的碰撞骨骼时,Max将自动命名为COL_FIN_02。


      你可能会注意到图片中包装盒上的材料。由于框的几何图形不会随模型一起导出,因此您可以将所需的任何材质放在用作骨骼的Box图元上。我推荐一种半透明材料。重复这个过程,以便每一块碎片周围都有一个Box原语。

      现在是时候给模特上皮了。将WWSkin对象拖放到场景中,并将所有碰撞骨骼添加到骨骼列表中。使用Bind to Space Warp工具将模型绑定到WWSkin对象。然后简单地将每块碎片绑定到其相关的骨骼上。同样,本教程假设您对如何使用Max和Westwood工具有一些了解,因此我不打算详细介绍如何执行此操作。

      在将所有碎片绑定到骨骼之后,您将要开始将模型重新组合在一起。选择模型后,转到“修改”选项卡,然后从修改器列表中选择“可编辑多边形”,并选择元素子对象。您应该收到一条错误消息,如图中所示,警告您在修改器堆栈中编辑较低的内容可能会破坏堆栈中的更高级别。只要您只移动顶点,并且不添加或删除任何顶点,您应该没问题。选择“是”或“是/保持”继续。现在你要反向做你在开始时所做的事情,把所有碎片一起移回去; 再次,我建议使用转换类型输入工具,并使用与分隔它们时相同的值。

      完成后取消选择模型。现在,您将要将每个骨骼移动到其相关的碎片移动的位置。我再次建议使用Transform Type-In对话框并使用与之前相同的值。不要忘记确保参考坐标系设置为“世界”。完成所有这些之后,进行测试,以确保没有出现问题并且骨头没有脱离各自的碎片。

      现在是时候设置和导出模型了。首先选择模型并转到Utilities选项卡中的W3D Tools。默认设置很好,但是如果您更改了默认设置:应检查导出变换(骨骼)和导出几何体复选框。“几何选项”应设置为正常。现在选择您正在使用的所有Box原语作为骨骼,再次转到Utilities选项卡下的W3D Tools。默认情况下,选中“导出几何图形”,取消选中它; 你只想导出骨骼。这就是需要完成的所有导出设置,现在只需将模型导出为.w3x。您可以为模型提供所需的任何名称,但RA3的标准命名约定通常是以_COL为后缀的单元/结构名称。

      现在我们开始使用MaxScript。选择您用于骨骼卷的所有Box原语,然后选择从您放入的任何菜单中运行脚本。我最初没有编写此脚本以便将其发布给公众,因此它只有两种错误检查方法:一种是查看是否有任何选择,一种是确保所有选定的项目都是Box原语。如果任一条件为假,您应该收到错误消息。运行该工具时,将出现一个保存文件对话框。它将保存为文本文件,只要您可以找到该文件,保存它或您命名的内容无关紧要; 您必须将生成的文件中的代码复制并粘贴到xml文件中的正确位置。保存文件后,您可以关闭Max。
      现在是时候设置和导出模型了。首先选择模型并转到Utilities选项卡中的W3D Tools。默认设置很好,但是如果您更改了默认设置:应检查导出变换(骨骼)和导出几何体复选框。“几何选项”应设置为正常。现在选择您正在使用的所有Box原语作为骨骼,再次转到Utilities选项卡下的W3D Tools。默认情况下,选中“导出几何图形”,取消选中它; 你只想导出骨骼。这就是需要完成的所有导出设置,现在只需将模型导出为.w3x。您可以为模型提供所需的任何名称,但RA3的标准命名约定通常是以_COL为后缀的单元/结构名称。
  1. <BoneVolume BoneName="COL_FIN_01" Mass="300" Spinniness="3.0" ContactTag="DEBRIS" >
  2.         <Box HalfSizeX="3.74103" HalfSizeY="0.831795" HalfSizeZ="5.17804" >
  3.                 <Translation x="-34.2624" y="-6.85855e-007" z="7.79638" />
  4.                 <Rotation x="0.0" y="-0.21644" z="0.0" w="0.976296" />
  5.         </Box>
  6. </BoneVolume>
复制代码
     您需要做的下一件事是在您的车辆/结构XML中设置代码以使用折叠模型。假设您复制了用于结构/车辆的代码,在Behavior模块下的某个位置,您应该找到一个标记为“CreateObjectDie”的模块。如果没有,你将不得不添加它。当结构/单元被杀死时,CreateObjectDie模块调用对象创建列表。OCL项的典型命名约定是[OBJECTNAME] _Die_OCL(例如:AUMediumTank_Die_OCL); 这是你必须在ObjectCreationList中引用的名称,这是我们接下来要去的地方。
  1. <CreateObjectDie
  2.          id="ModuleTag_CreateObjectDie"
  3.          CreationList="-OBJECTNAME-_Die_OCL">
  4.          <DieMuxData
  5.                   DeathTypes="ALL" />
  6. </CreateObjectDie>
复制代码
     现在,您需要在ObjectCreationList中设置一个新的OCL。我强烈建议复制与您制作的对象相同类型的对象的现有OCL(例如,如果您正在制作飞机,从现有飞机复制OCL,如果您正在制作结构,则复制现有的OCL结构体)。ObjectCreationList模块包含许多属性,您可能希望在某些时间播放这些属性,但是您需要调整的唯一属性是<CreateObject>标记之间引用的折叠模型。典型的命名约定是[FACTION] [OBJECTNAME] _Collapse(例如:AlliedMediumTank_Collapse)。
  1. <ObjectCreationList
  2.          id="-OBJECTNAME-_Die_OCL">
  3.          <CreateObject
  4.                   Options="IGNORE_ALL_OBJECTS"
  5.                   Disposition="LIKE_EXISTING INHERIT_VELOCITY"
  6.                   Count="1"
  7.                   VelocityScale="15.0"
  8.                   MinForceMagnitude="1.0"
  9.                   MaxForceMagnitude="2.0"
  10.                   MinForcePitch="90d"
  11.                   MaxForcePitch="75d">
  12.                   <CreateObject>-FACTION--OBJECTNAME-_Collapse</CreateObject>
  13.          </CreateObject>
  14. </ObjectCreationList>
复制代码
     现在是时候制作Collapse对象代码了。首先从您正在创建的相同类型的对象中复制现有的_Collapse.xml文件。根据需要更改属性,例如id,EditorName,Includes和Model Name,以引用您导出的Collapse Model。现在回到Max自动生成的代码并复制它。将其粘贴到两个<BoneVolumes>标记之间,将任何BoneVolume模块替换为您复制的任何文件。
      这样就可以了。现在编译mod,然后爆炸了!
      翻译:最后一句话有点。。。原帖就这么写的
      也算是帮矛主席翻译了,自己没有什么功劳,为了帮助大家,自己累点不算什么,就当提升英语了(部分用百度翻译,不对之处请联系我)
      希望对大家有帮助
发表于 2021-11-28 20:36:47 | 显示全部楼层
等等,暗色UI的3DSMAX9?(关注点错)
很感谢搬运,看起来是RA1复刻MOD作者的杰作
回复

使用道具 举报

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

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-8-26 09:12 , Processed in 0.047699 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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