文档库 最新最全的文档下载
当前位置:文档库 › Arma 3武器插件制作指南

Arma 3武器插件制作指南

Arma 3武器插件制作指南

作者zachgibson22 翻译DanTong

大家好!

欢迎大家阅读这篇关于如何制作一个Arma 3武器插件的指南,这是作者的第一个指南和教程,作者倾其所能写出以下文章,但其中难免有错误,敬请大家原谅。如果你们有什么问题需要解决,可以联系作者寻求帮助。

联系方式:电子邮件: zachgibson22@https://www.wendangku.net/doc/b010368699.html,,

Skype: zachgibs on ….这个作者不经常用

Steam: zachgibson222 …. 或者zachgibson22.(作者很2)。

------------------------------------------------------------------------------------------------------------------------------------------

第1章如何从3DS MAX导出武器模型(此做法也适用于其他程序)

——作者在将来也许会制作一个简单武器制作的视频

第2章设置Oxygen 2 和Buldozer

第3章Oxygen 2 和TexView2

第3.1节将模型导入Oxygen 2

第3.2节设置所有的LODS,包括外观效果LOD、特殊定义点LOD、物理效果LOD、阴影效果LOD、各种视角效果LOD和代用。

第3.3节用TexView2将贴图转换为Arma 3可以使用的格式,如PAA或PAC格式。

第3.4节在Oxygen 2中正确地分配贴图。

第4章定义及模型文件

第4.1节制作完整的config.cpp文件。

第4.2节武器模型以及手部动作定义文件。

第5章为你的武器制作特定的手部动作

第6章制作武器的用户界面图标

第7章制作正确的PBO文件

第8章使用你的武器插件

完成以上工作,你需要:

1、Oxygen 2 (带bulldozer(非必需,但最好有)

2、TexView2

3、BinPbo

4、一个3D模型制作软件,比如3DS MAX或MAYA等,有D版用那是最好

这些工具软件可以从这里下载:https://www.wendangku.net/doc/b010368699.html,/wiki/BI_Tools_2.5

好吧,开始武器插件制作之旅!!

第1章如何从3DS MAX导出武器模型

作者使用的是3DS MAX 2012版本制作模型,与老版本的3DS MAX和MAYA可能有操作上的不同。UV贴图坐标也在3DS MAX里完成并一并导出。

作者制作了3个不同的模型用于这个武器,它们分别是用于游戏中玩家直接观看到的高精度模型(图1-1)、用于物理效果的模型(图1-2)和用于产生阴影的模型(图1-3)

图1-1 游戏中玩家直接观看到的高精度模型

图1-2 用于物理效果的模型

图1-3 用于产生阴影的模型

导出:

1、分别将以上模型单独选择导出,并记住它们各自的用途;

2、选择菜单“File

3、命名文件,作者给三个文件分别命名为hkump45_mesh, hkump45_collsion,和hkump45_shadow,以便以后使用;

4、保存为OBJ类型

这时会弹出一个菜单(图1-4),按图中所选打勾:

图1-4

第2章设置Oxygen 2 和Buldozer

Oxygen是Arma专用的建模工具软件,bulldozer是Oxygen的预览器。

在上面提到的链结里下载软件,并安装好。下载好的工具软件包里有其他一些工具,你可以选择安装,不过作者使用的是默认安装,他认为这样最好。

安装好后重启动电脑,将会出现一个P盘,然后按照下面Gnat666x制作的视频内容设置好Oxygen 2 和Buldozer:

https://www.wendangku.net/doc/b010368699.html,/watch?v=YqFss3fzt5w

PS:尼玛的作者,不知道有土鳖是非法的吗!!!同志们自行翻墙观看!

Gnat666x还制作有Oxygen2的使用教程,非常棒,大家自行组织观看。

第3章Oxygen 2 和TexView2

Gnat666x的小电影看完了,激动得难以按捺了吧,那开始整吧!

第3.1节将模型导入Oxygen 2

1、导入已经制作好的模型

①选择菜单“File

②找到从3DS MAX导出的模型hkump45_mesh,并打开

③会有一个窗口弹出来,选择合适的尺寸比例。

2、在4窗口模式下工作

3、看看你的武器尺寸是否正确,在Oxygen里是以公制为单位的,每格尺寸为1米。

图3-1

模型的前后在O2里是不能搞错的,在前视图窗口中,枪膛口应在左边,枪托应在右边。

2、非常重要的附注

①当你选中模型的某些部分后,你可以看见一些蓝色的细线,这是告诉你选择到的那些面的法

线方向,如果你要讲这些面的方向翻转,可以选择菜单“faces

②如果导入的模型像是一个镜像的物体,修复很简单:选择模型全部,然后选择菜单“Points\Transform3D\Scale”,在弹出的菜单里分别填写X=1 Y=1 Z=-1就可以了。

第3.2节设置所有的LODs

什么是LODs?LOD就是Level of Detail即细节层次(译者:其实翻译为模型层更好,因为Arma3的插件模型是由若干子模型组成的,每个LOD都对应一个子模型,每个LOD的作用都不同,有的提供游戏里玩家看见的外观,有的提供物理效果、有的提供阴影效果,有的提供特殊功能)。这些LOD对应的模型分别用在不同的距离上展示足够的细节信息,距离越远,模型细节要求越低,比如1公里外,我们还需要武器模型有2万个面来展示吗?

1、制作外观效果模型层

导入武器模型进Oxygen2后,你会看见一个像图3-2-1中所示的“LODS”选项框,鼠标右键其中的“0.000”,在弹出的菜单的中选“properties”,在继续弹出的菜单的最底部的输入框中将resolution 的数值改为“1”。

图3-2-1

一个模型是不能很好满足游戏运行需要的,我们需要制作不同精细程度的模型用于在不同的距离上调用,以提高游戏运行效率。如果我们制作好了其他较低精度的模型,那我们鼠标右击“LODS”

选项框,在弹出的菜单里选“NEW”,这会建立一个新的LOD。在这个新的LOD里我们导入建好的较低精度模型,并让其大小位置与第一个LOD的模型对齐,第一个LOD的模型会用黄色线条的形式显示出来以便我们对齐的。

记住LOD1.000的模型要比LOD2.000的精细度高、LOD2.000的模型要比LOD3.000的精细度高,依次类推。

给枪的各部件命名。你应该按Arma3对枪的各个部件的命名规则进行分别命名,以使它能在游戏里正常使用,同时你还可以按照贴图的需要对枪的各个部位进行命名,比如““magazine” “front_sight” “back_sight” “bolt” “trigger”等等,对细微的部件都单独命名为有助贴图工作的开展。

2、制作Memory LOD(特殊定义点模型层)

鼠标右击LODS选项框,点击“NEW”,接着再鼠标右击这个新的LOD,在弹出的菜单里点击“properties”,再在弹出的选项里选“Memory”。双击这个“Memory”LOD,将当前模型层改为“Memory”LOD,界面将变成图3-2-2那样,里面可能有一些有名字的点。

图3-2-2

好了,我们可以开始编辑“Memory”LOD(特殊定义点LOD)。(再次强烈推荐在4窗口模式下操作)

虽然官方说点击菜单“Create

下面这些是我们要在“Memory”LOD创建的点,这些点都是特定的作用,因此我们叫它们为“特殊定义点”:

特殊定义点名称作用

- konec hlavne 枪膛起点,就是子弹被击发的位置

- usti hlavne 枪膛终点,就是枪口(与上面的点一起决定了子弹发射的方向)

- Nabojniceend 抛壳线终点

- Nabojnicestart 抛壳线起点,就是枪的抛壳点(与上面的点一起决定了弹壳的抛射方向)- zbran 全枪,包含了“Memory”LOD所有的点

- eye 瞄准点,就是眼睛瞄准的位置

- zasleh 枪的膛焰(狗日的作者说他会单独再为此写个教程,不过他一直没写,因为他懒球的很)

记住前面的这些文字是固定的名称,不能写错了,据说这是CZ文哦,TMD捷克人。

①创建枪管轴线定义点

“konec hlavne”和“usti hlavne”这两个点需要像图3-2-3那样放置在枪管的中心位置,这样在游戏里子弹才会从枪管里射出来而不是其他位置。

图3-2-3

具体步骤:

1、在大致正确的位置上创建这两个点(在前视窗口里比较容易做);可以先创建一个点,然后按下Ctrl+C, 和Ctrl+V复制点,在前视窗口里按下“X”,限制移动只能在X方向,然后移动复制的这个点,这样能保证枪膛的轴线完全平直。

2、精确移动这两个点到正确的位置上,如图3-2-3那样;

3、分别选择这两个点,并分别在“Named Selections”选项窗口里点击“NEW”后分别命名为“konec hlavne”或“usti hlavne”;

4、如果复制点的时候点已经被命名,那复制的点也继承了这个名字,这在游戏里会导致错误,解决的办法就是单选被复制的点后在“Named Selections”选项窗口右键击名字后选择“redefine”,然后再按步骤3对选择复制的点命新名。

②创建弹壳抛出定义点

按上面的步骤创建“Nabojnicestart” 和“Nabojniceend”两个点,并将“Nabojnicestart”放在枪的抛壳

窗的位置,游戏里弹壳将从这里产生并抛出去。将“Nabojniceend”放在弹壳抛射方向上的任意点上,别太远了。详见图3-2-4

提示:“Nabojniceend”并不是游戏中弹壳的湮灭点,而只是提供弹壳的抛射方向,游戏中弹壳的湮灭点是在Config.CPP定义文件中定义的。

图3-2-4 图中1 = Nabojnicestart 2 = Nabojniceend

③创建眼睛瞄准位置定义点

在用枪的准星瞄准时眼睛的位置处创建点并命名“eye”,见图3-2-5

图3-2-5

最后一步:

选择“Memory”LOD里所有点,然后在“Named Selections”选项窗口里鼠标右击后选“NEW”,然后在弹出的选项框里命名为“zbran”。或者你也可以这样做:在“Named Selections”选项窗口里右击后选“NEW”,然后在弹出的选项框里起名为“zbran”,然后选择“Memory”LOD里所有点,再到“Named Selections”选项窗口里“zbran”上鼠标右击后选“redefine”。

“Memory”LOD完成

3、制作Geometry LOD(物理效果模型层)

鼠标右击LODS选项框,点击“NEW”创建一个新的LOD,然后鼠标右击这个新的LOD,在弹出的菜单里点击“properties”,再在弹出的选项里选“Geometry”。

选择当前模型层为Geometry LOD(物理效果模型层),导入你前面已经用3DS MAX制作好的用于碰撞检测的模型hkump45_collsion。物理效果模型层在游戏中主要是提供插件的轮廓范围和重量分配等物理效果,在游戏中是不可见的,因此不需要高精度模型,这个模型层的模型可以做简单些。

选择模型的任一组件,然后分别命名为“Component01” 、“Component02”………等等,就象图3-2-6。(译者:好的做法是:点击菜单“\structure\Topology\Find Non-Closed”先找出没有封闭的组件,然后封闭它,以免进入游戏后出错;再点击菜单“\structure\Topology\Find Components”,各个组件将被自动命名为“Component01” 、“Component02”………,组件必须被命名为ComponentXX后,在游戏里才能发挥物理效果的作用)

图3-2-6

物理效果模型层的子模型要与基础外观模型层的子模型大小轮廓基本一致,以免出现枪管什么的插进墙体等不复合自然规律的现象。

4、制作Shadow LOD(阴影效果模型层)

鼠标右击LODS选项框,点击“NEW”创建一个新的LOD,然后鼠标右击这个新的LOD,在弹出的

菜单里点击“properties”,再在弹出的选项里选“shadowVolume”,并在最下的resolution输入框内填写1或者其他数值。阴影效果模型层与外观模型层一样可以有多个,以在不同的距离上调用,resolution 数值越大,调用的距离越远,模型精度也要求越低。

导入前面做好的模型hkump45_shadow,并让阴影效果模型层的子模型要与基础外观模型层的大小轮廓基本一致。阴影效果模型层的子模型也不用太精细,不过要比物理效果模型层的精细些才好。

阴影效果模型层的子模型应该是由三角形的面来组成,选择模型上非三角形的面,然后点击菜单“Structure\Triangulate\”或“Struct ure\Triangulate/”就可以将多边形面拆分为三角形的面,至于Triangulate\与Triangulate/有什么不同,作者不懂,译者我测试了哈,其实就是拆分的方向不同而已。

5、制作“View –Pilot” LOD(操作者视角效果模型层)

这是个非常重要的子模型层,这个子模型层提供第一人称视角时武器被看到的样子,几乎武器所有的外观细节和机构动作都要在这个模型层里展示出来。

首先将外观效果模型层中精细度最高的模型(就是基础外观模型层的子模型)复制到“View Pilot” LOD(操作者视角效果模型层)中。(译者:复制的方法有多种,很好用的一种是可以鼠标右击LODS 选项框中基础外观模型层,在弹出的菜单中选“Duplicate”,这样会出现一个新的LOD,鼠标右击这个新的LOD,在弹出的菜单中选“properties”,再在弹出的选项里选“View Pilot”就可以了。这样能保证模型位置的一致性,并能完全继承对武器各动作部件的命名定义。为提高游戏运行效率,可以在操作者视角效果模型层里将这个视角下确实无法看见的武器的部件删除掉。)

“View Pilot” LOD(操作者视角效果模型层)的样子见图3-2-7

图3-2-7

6、制作Proxies(代用)

在Arma3的武器模型中,PROXY(代用)是用来指定武器的枪口装置和附属的光学瞄具、激光指示器的位置的,这些东西一般不随时出现在武器上,所以才用代用来表示,在需要出现的时候才调用相应的模型出来。

在Arma3的武器模型中,这些不同的代用有以下这些:

代用类型代用名称

枪口装置代用Muzzle \A3\data_f\proxies\weapon_slots\MUZZLE

上挂附件代用Top/Sight \A3\data_f\proxies\weapon_slots\TOP

侧挂附件代用Side \A3\data_f\proxies\weapon_slots\SIDE

记住:这些名称是固定的,不能修改!

在Oxygen 2给武器增加代用是这样,进入基础外观效果模型层,首先点击菜单“Create

图3-2-9

然后在输入框里填写上面那些代用的名称,点OK,然后会出现一个三角形,把它看成它所代表的东西并移动到其应该在武器上出现的合适位置上。(如果名称输错了,进入游戏后会出现调用不了代用模型的错误,在selection name选项框里右键代用名称后选rename将名称修改正确)。代用在武器上的相对位置可能需要在Oxygen 2和游戏里反复测试确定,不过别怕繁琐,精确真实才是我们追求的。

在图3-2-8中,作者创建了一个枪口装置代用Muzzle,并把它往消焰器内放了一点,以使枪口装置更象真实位置情况一样上紧在枪口上。

图3-2-8

上挂附件及侧挂附件的处理也是一样。

当在基础外观效果模型层中把所有代用都创建设置好后,复制它们,并粘贴到其他可视的模型层中去,比如外观效果模型层、操作者视角模型层等,但不包括阴影效果模型层、特殊定义点模型层、物理效果模型层等。

好了,LODS设置完毕,下一步改贴图方面的工作了。

第3.3节用TexView2将贴图转换为Arma 3可以使用的格式

重要提示:制作武器插件的所有文件应放入一个文件夹,这个文件夹下还可含有子文件夹。文件夹的名称一般为武器名称以方便使用。武器插件的文件夹里的内容见图3-3-1。

图3-3-1

里面的子文件夹的内容分别为:

Anim 武器的各种动作文件

Data 武器的各种贴图文件

Sound 武器的各种声效文件

UI 武器的各种界面图标文件

好吧,现在转回到贴图方面来。

一般我们都是用Photoshop来制作贴图文件,有可能Photoshop有可以直接生成PAA格式文件的插件,但作者没见过,我也没见过,如果你有的话请上传给大家共享。

按照TexView2使用说明,其能使以下几种图像格式之间相互转化:JPG、TGA (24位或带alpha 通道的32 位)、 PNG (带或不带alpha通道)、 PAA、PAC。图像必须是2N格式,即边长像素为2的N次方,图形的最大尺寸为2048X2048像素。一般情况下使用24位的TGA做贴图,当然PNG也是不错的。

转换的时候,输入文件夹最好与输出的文件夹不一,输入输出文件夹同一时会出错,转换可能进行不了。出现这种情况时,你可以点击一个已经存在的PAA文件并重命名保存。实际上最好是PAA 文件与TGA文件能不在同一个文件夹。

转换的操作如下:点击OPEN,然后打开你的TGA或其他格式的图象文件,载入文件后,点击Save As后命名并保存为PAA或PAC格式图像文件。

命名原则:

后缀名类型

* _CO 颜色(漫反射贴图)

* _CA 颜色(带alpha通道漫反射贴图)

* _NO 普通贴图

* _NS 普通带alpha通道贴图,用于透明材质

* _NOF 普通渐消效果贴图(通常用于地形,通过显卡的变频译码在不同距离上获得纹理渐消效果)

* _NOHQ 高质量的普通贴图

* _NOVHQ 非常高质量的普通贴图

* _DT 细节材质贴图,颜色的平均值必须是0.5,材质在显卡的变频译码中会得到时尚的滤波处理。

* _CDT 颜色细节材质贴图,RGB通道里颜色的平均值必须是0.5,材质在显卡的变频译码中会得到时尚的滤波处理。

* _SKY 天空贴图

* _MC 大贴图

* _AS 环境阴影贴图

* _SM 高质量透明贴图

* _SMDI 优化的更好的色彩深度的高质量透明贴图

* _LCO 地面色彩贴图, 用于卫星地图和掩映地形

* _MCO 多色彩贴图,材质不被滤波处理,RGB通道里颜色的平均值必须是0.5。

第3.4节在Oxygen 2中正确地分配贴图

这是一个很简单的工作,作者说他不想深入地讲解,而且他也只用* _CO 颜色贴图做示范。

在Oxygen 2里打开你的模型,如果你按上面说的那样给枪的各部件命名了,工作会很容易。选择需要贴图的部分,比如选择前面命名的“lower receive”部件,或者几个部件都是共用一个贴图的话,可以一起选择它们。选择好要贴图的部件后,按下“E”键,会出现一个图3-4-1中所示的窗口。在窗口的下部“Texture” 处点击文件夹图标选择你预先制作好的“PAA/PAC”贴图。.

现在你的文件的位置可能是这样的:

C:\Users\Owner\Desktop\Mod_Tools\Weapons\tb_arifle_hkump45\data\lower_receiver_co.paa 这不是最好的,为什么呢?

如果按上面的文件位置,当文件夹移动到其他位置后,你将不得不再次重新贴图,而且别人用你这个插件将会出现贴图位置错误。所以我们要将位置的前半部分去掉,只留下武器文件夹及其以后的部分,就象这样:

tb_arifle_hkump45\data\lower_receiver_co.paa

在那个操作窗里有一个material的操作框,是用来输入*.rvmat高光材质文件及其路径用的,但作者对这方面不精通,所以他没写相关教程,大家自己探索下。去找所有的材质文件都尝试一下,虽然这是很无聊的事,但是很值得,这能让你明白这个material的操作框的作用。

在基础外观效果模型层作了上面的贴图分配工作,可以直接复制拷贝到操作者视角模型层,反之亦然。

图3-4-1

第4章定义及模型文件

制作config.cpp文件的方式有多种,这里只是教你如何制作一个完整的config.cpp文件,这样你就会明白config.cpp文件中各个参数有什么作用并按你的要求设置这些参数。

第4.1节制作完整的config.cpp文件

作者在本教程中附送了一个制作好的config.cpp文件,以及一个“空”的config.cpp文件,打开它们,对你学习以下内容很有帮助。

这里有个官方WIKI,是关于武器的config.cpp文件的,很有用,大家记得收藏:

https://www.wendangku.net/doc/b010368699.html,/wiki/CfgWeapons_Config_Reference

下面的教程中,作者为简化教程,他并不是逐一的讲解config.cpp文件中每一项的内容,他是跳着讲解那些他认为其他插件制作者会进行“修改”的部分。

编辑config.cpp文件一般使用WINDOWS系统自带的“记事本”,那里面有个工具“VIEW”状态条能是你知道你在文件的那行。

好,首先我们来看config.cpp文件的第一部分是这样的:

class CfgPatches

{

class tb_arifle_hkump45 //你也可以将“hkump45”替换成你的枪名

{

requiredaddons[] = {};

requiredversion = 0.1;

units[] = {};

weapons[] = {"tb_arifle_hkump45","tb_arifle_hkump45_ops"};

magazines[] = {"tb_30Rnd_556x45_B_Stanag", "tb_30Rnd_556x45_T_Stanag"};

};

};

你可能已经看见这里面有两件武器,一件是普通版本的,一件是带_ops后缀的。它们之间的唯一区别就是带_ops后缀的自动带有消音器和光学瞄准具。而普通版本的在游戏里你必须手动加上消音器和光学瞄准具。

双划斜线后的是作者为方便读者所写的注释,在游戏调用config.cpp文件时,双划斜线后的文字会被看成注释而不执行。给文件加上必要的注释是个良好的习惯。

config.cpp文件的第二部分是class CfgWeapons,其中有些是这样的:

cartridgepos = "nabojnicestart";//记得在特殊定义点模型层里的名称不,别搞错了。

cartridgevel = "nabojniceend";

handanim[] ={"OFP2_ManSkeleton","tb_arifle_hkump45\anim\Handanim_hkump45.rtm"};//这个handanim[]非常重要,它是定义持这个武器时的手部动作的。稍后教程里会讲到如何制作特定动作的。动作文件的后缀名约定为“.rtm”。除了动作文件外,同时还需要有骨骼文件,"OFP2_ManSkeleton"就是一个骨骼文件,这些都在稍后讲解。

model = "tb_arifle_hkump45\hkump45"; //武器使用的模型位置

modes[] = {"Single", "Burst"}; //开火模式,分别是单发和连发

muzzleend = "konec hlavne"; //枪膛起点

muzzlepos = "usti hlavne"; //枪膛终点

picture = "\tb_arifle_hkump45\UI\gear_tb_arifle_hkump45_x_ca"; //武器在游戏里的界面图标,稍后会讲如何制作

reloadaction = "GestureReloadEBR"; //换弹夹时的动作

class WeaponSlotsInfo

{

allowedslots[] = {901};

mass = 4;

class MuzzleSlot {

access = 1;

compatibleitems[] = {"muzzle_snds_L"};

displayname = "Muzzle Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";//对应模型里的代用名称

scope = 0;

};

class CowsSlot {

access = 1;

compatibleitems[] = {"optic_Arco", "optic_aco", "optic_ACO_grn",

"optic_hamr", "optic_Holosight"};

displayname = "Optics Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\TOP";

scope = 2;

};

class PointerSlot {};

};

上面class WeaponSlotsInfo这段是定义武器的附加挂件的,比如消音器和瞄准具,这些可以是自

行制作的,也可以是官方定义的。官方定义的附加挂件清单详见:

https://www.wendangku.net/doc/b010368699.html,/cfg_weapons/classlist?version=67 。

接着还有这些内容:

class Burst: Mode_Burst {

begin1[] = {"tb_arifle_hkump45\sound\UMPfiring1.wav", 1.0, 1, 1200};

begin2[] = {"tb_arifle_hkump45\sound\UMPfiring2.wav", 1.0, 1, 1200};

这两行是定义枪声效果,如果你有其他的枪声文件可以对其更换。更多的相关信息你可以到官方WIKI上“sound”下去查询。

接下来是带_ops后缀版本的一些相关定义:

class tb_arifle_hkump45_ops : tb_arifle_hkump45 {

scope = 2;

class LinkedItems { //定义外挂附件

class LinkedItemsOptic { //定义光学瞄具

item = "optic_Holosight";

slot = "CowsSlot";

};

class LinkedItemsMuzzle { //定义消声器

item = "muzzle_snds_L";

slot = "MuzzleSlot";

};

};

};

config.cpp文件的第三部分是class CfgMagazines,定义弹夹;第四部分是class CfgAmmo,定义子弹。你可以自己定义,也可以采用官方的定义,官方的相关定义详见上面给出的链接,找到其中某种武器后可以找到你使用的弹夹名称,比如30Rnd_65x39_caseless_mag,然后直接在你的武器里调用。

class CfgMagazines {

/*external*/ class 30Rnd_556x45_Stanag;

class tb_30Rnd_556x45_B_Stanag : 30Rnd_556x45_Stanag {

ammo = "TB_556x45_Ball";

count = 30;

descriptionshort = "Caliber: 45 ACP UMP Mag
Rounds: 30
Used in:

HK UMP-45";

displayname = "45 ACP 30rnd UMP Mag (Ball)";

initspeed = 930;

lastroundstracer = 0;

picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca"; //界面图标

model = "tb_arifle_hkump45\hkump_mag"; //弹夹使用的模型

scope = 2;

tracersevery = 0;

};

class tb_30Rnd_556x45_T_Stanag : tb_30Rnd_556x45_B_Stanag {

ammo = "TB_556x45_Tracer";

descriptionshort = "Caliber: 45 ACP UMP Mag
Rounds: 30
Used in: HK UMP-45";

displayname = "45 ACP 30rnd UMP Mag (Tracer)";

lastroundstracer = 0;

scope = 2;

tracersevery = 1;

};

};

作者在他的config.cpp文件使用了他自制的图标,你也可以直接调用官方的

"\A3\weapons_F\data\UI\m_30stanag_CA.paa"。

config.cpp文件讲解完毕!

第4.2节武器模型以及手部动作定义文件。

Model.cfg文件的第一部分是这样的:

class CfgSkeletons

{

class Default

{

isDiscrete=1;

skeletonInherit="";

skeletonBones[]={};

};

class tb_arifle_m16a4_base: Default //固定写法

{

skeletonBones[]= //这里定义你的枪有那些部件有动作

{

"magazine",

"",

"bolt",

""

};

class CfgModels

{

class Default

{

sectionsInherit="";

sections[]={};

skeletonName="";

};

class tb_arifle_m16a4_base: Default

{

sections[]=

{

"magazine",

"bolt"

};

skeletonName="tb_arifle_m16a4_base";

class Animations

{

};

};

class hkump45: tb_arifle_m16a4_base

{

class Animations

{

class magazine_reload_move_1

{

type="translation"; //动作类型

source="reloadMagazine"; //什么时候发生动作

selection="magazine"; //产生动作的部件

axis="magazine_axis"; //部件动作时的轴,在Memory LOD模型层中定义

minValue=0.145;

maxValue=0.2;

offset0=0;

offset1=0.40000001;

};

bolt_empty

{

type="translation";

source="isempty";

selection="bolt";

memory=1;

sourceAddress="clamp"; //clamp = 不循环

minValue=0;

maxValue=1;

begin="bolt_start"; //枪栓开始位置

end="bolt_end"; //枪栓终止位置

offset0=0;

offset1=1;

};

Model.cfg文件的官方指南:

https://www.wendangku.net/doc/b010368699.html,/wiki/Arma_3_Weapon_Config_Guidelines

官方武器动作类型指南:

https://www.wendangku.net/doc/b010368699.html,/wiki/Model_Config#Animation_types

以上就是武器的Model.cfg的全部内容,那里有个“anim” 文件夹,里面有武器的“handanim.,我们可以从中拷贝到我们的定义文件中使用。

第5章为你的武器制作特定的手部动作

在Oxygen 2中打开提供的“BISkeleton_Edit” P3d文件,并确定打开“Window\Animations”窗口。鼠标右击这个窗口,在弹出的窗口内点击“From Matrices”然后载入“Handanim_rifletemplate.rtm”,点击“key frametime”,你将看见如图5-1显示那样:

图5-1

好了,现在导入你的武器的P3D模型。武器模型在另一个LOD,会显示为黄色。武器也可以作为一个“Selection”导入。将武器放到开火状态下的人体相对位置,且枪托抵紧右臂。

为了编辑这个特征的骨骼,必须先使用菜单“Points

图5-2

在Selections窗口的清单里选择要移动的部位,这是一个耐心而繁琐的工作,需要选择不同的轴,需要一点点的移动骨骼,以贴合武器。

做好后,把枪删除,把代用删除(包括三角形面和在selection names窗口里的名字),然后右击selections窗口,点击“Delete Empty”。接下来右击“key frametime”并选择“New.”,这将产生一个名叫1.000的新帧,其是动作的第二阶段。阶段1与阶段2一样,阶段0是一个中性的T立场。

所有的帧都完成后,在“key frametime”里选择“Export Matrices.”,命名保存。

重要提示:

①确保在武器的config文件里有:

handanim[] ={"OFP2_ManSkeleton","WEAPONFOLDER\anim\WEAPONANIMATIONFILE.rtm"};

②确保包含有OFP2 Skeleton的Model.Cfg文件与刚制作出来的动作文件放在同一个文件夹下,比如“anim”文件夹。

第6章制作武器的用户界面图标

制作用户界面图标的方法很多,下面介绍作者常用的方法

第1步:在3DS MAX里打开武器模型,贴图全开;

第2步:进入侧面图并完成渲染(如何可以的话,带ALPHA渲染);

第3步:打开PS或其他图像编辑软件;

第4步:将武器截图粘贴进PS;

第5步:在PS里新建一个512X256像素的新图;

第6步:将武器截图调整好后放进第五步的新图中,除保留一定的空间给附件用外,武器尽量占满图片;

第7步:右击“background”(“背景”图层),选“Layer from background”(复制),产生一个新图层,然后将背景图层删除。

第8步:将不是枪的其他部分图形删除掉,获得一个枪的剪影图

第9步,这时将得到一个像图6-1一样效果的图,这是一个带ALPAH背景的图层。

图6-1

相关文档