3.5 常用粒子类型:Mesh Data |
|
粒子发射器Mesh Data类型,允许以自定义模型作为粒子形态发射。Mesh Data类型中,可以使用各种静态模型作为粒子外形,如人物、动物、各种工具等,如图3-129所示。
图3-129
游戏中经常能看到一些效果,例如万箭齐发这种类型的技能,技能释放时有很多支箭从天而降,每支箭都有不同的移动轨迹。在虚幻引擎中制作这个技能通常就会使用到粒子系统Mesh Data。
接下来制作一个基础应用案例解析粒子发射器Mesh Data类型的使用方法。
在三维软件3ds Max中建立一支箭的模型(制作过程略)。3ds Max 9以上版本才能直接导出FBX文件,Max 9版本需要安装一个FBX导出插件,推荐使用Max 2010以上版本。
如图3-130所示为制作完成的箭模型,在Front视图(按快捷键F)中将模型箭头的部分使用旋转工具指向X轴(箭头处红色为X轴,绿色为Y轴),使用移动工具(快捷键W)移动箭到3ds Max世界坐标轴的中心,X、Y、Z坐标数值归零。制作模型的时候注意,如果模型是类似箭这样首尾造型明确的,需要把模型头部朝向X轴。如果是球体这种首尾造型不明确的,直接将模型移动到3ds Max的世界坐标轴中心(坐标0、0、0)即可。
图3-130
如图3-131所示,导出以前,单击3ds Max菜单栏Customize命令中的Units Setup单位设置。如图3-132所示,在弹出菜单中将Units Setup系统标尺设置为Meters,以米为计算单位。单击对话框中的System Unit Setup按钮设置3ds Max的系统尺寸,在弹出的系统尺寸对话框中将1Unit类型设置为Meters米,单击OK按钮关闭对话框。
图3-131
图3-132
在3ds Max编辑窗口中单击鼠标右键,选中Unhide All命令取消所有隐藏物体,选中Unfreeze All命令取消所有冻结物体,如图3-133所示,操作顺序是先显示所有隐藏物体,再解除物体冻结。
图3-133
最后检查有没有多余物体被隐藏,一个FBX模型元素最好只包含一个模型体。
如图3-134所示,单击菜单栏中的File后找到Export,默认导出的是FBX文件,选择好文件存放路径以后,会弹出FBX格式选项框。如图3-135所示,这里需要将Animation栏下面的小勾去掉,我们的这个模型不带有任何动画,所以不需要导出动画。如图3-136所示,打开下面的Advanced Option高级设置下拉菜单,选择Units栏,取消勾选Automatic自动尺寸,在Scene units converted to这一栏选择Meters,将模型尺寸设置以米为单位,单击OK按钮导出文件。
图3-134
图3-135
图3-136
如图3-137所示,打开虚幻引擎,在资源浏览窗口Content根目录下建立名为meshes或者Moxing(模型)的文件夹,用来存放模型文件。值得注意的是,导入的文件千万不要使用中文名,用英文名或拼音都可以,中文名会显示乱码,而且在导入时可能会引起引擎崩溃。
图3-137
将箭模型FBX文件导入引擎meshes文件夹中,按功能键F2将箭模型重命名为arrow。导入后会在模型旁边自动生成一个材质球,这个材质是箭的默认材质,不过文件归类的位置不对,需要把这个材质球移动到Materials文件夹中。
如图3-138所示,选中这个材质球,按功能键F2将它重命名,案例中命名为arrow_m。命名完成,单击鼠标左键拖动这个材质球到资源浏览窗口左侧Materials文件夹上松开鼠标,弹出菜单选择Move Here,把这个材质球转移到存放材质的文件夹中。
图3-138
双击arrow_m材质球图标打开材质编辑器,给箭制作材质。进入材质编辑面板,会看到一个默认的四维矢量,删除它。鼠标左键单击材质,在属性窗口中将“双面显示”选项勾上,如图3-139所示。
图3-139
如图3-140所示,在材质编辑窗口中建立常量(键盘数字1)并赋值为1,建立Particle Color粒子颜色表达式,将Particle Color的RGB通道与常量表达式进行乘法运算,乘法结果连接到材质Base Color基本颜色通道。要把箭作为粒子发射器的粒子,就需要添加Particle Color表达式使用粒子颜色模块来控制材质颜色。
添加数值为1的一维常量,连接到材质Metallic金属高光通道,材质会反射金属高光。常量数值1允许反射金属高光,数值0表示不允许反射金属高光。
添加数值为0.35的一维常量连接材质Roughness粗糙度通道,用来设置弓箭材质的粗糙程度。数值1代表粗糙,不反射任何光线,数值0代表反射所有光线。常量数值0.35,使箭身有一些细微反射效果。单击工具栏Apply按钮应用材质。
图3-140
如图3-141所示,回到引擎主界面,在资源浏览器中双击meshes文件夹中arrow的模型图标,打开模型编辑窗口。
图3-141
如图3-142所示,单击模型编辑窗口右侧属性窗口中的材质栏,选中刚才制作好的arrow_m材质球。这里将模型的材质指定了,粒子发射器中就可以不用Mesh Materials模块指定材质了。
图3-142
如图3-143所示,把模型拖到场景编辑窗口中观察,材质光照和反射已经有些感觉了。如图3-144所示,在引擎主面板资源浏览窗口Content目录Particles文件夹中建立一个新的粒子系统,将这个粒子系统命名为MESH-DATA。双击粒子系统图标进入编辑窗口。
图3-143
图3-144
在默认发射器模块区的空白处单击鼠标右键,如图3-145所示,在弹出来的模块菜单栏中选择Type Data命令中的New Mesh Data,将这个发射器定义为模型类型发射器。
图3-145
选中发射器中的Mesh Data模块,在左侧属性窗口中,Mesh属性栏选中导入的arrow模型文件,如图3-146所示。
图3-146
如图3-147所示,选中发射器Emitter模块,将屏幕对齐方式修改为PSA Velocity速度类型,使粒子朝向与运动方向同步。
图3-147
如图3-148所示,打开Lifetime模块,在属性窗口中设置粒子生存时间最小值Min为1,最大值Max为2。
图3-148
如图3-149所示,打开Start Size模块,把Distribution数据输入类型设置为限制数据类型,最大尺寸Max的数值全部设置为1.5,最小尺寸Min的数值全部设置为1,Locked Axes的类型设置为XYZ,锁定X轴、Y轴、Z轴的缩放,使模型等比缩放。
图3-149
如图3-150所示,选中Start Velocity初始速度模块,案例中将最大速度Max的数值分别设置为0、1000、300,最小速度Min的数值分别设置为0、800、200,从数值中可以看出主要速度表现在Y轴使箭横向射出,速度上有200个单位区间的变化。Z轴数值是使箭向斜上方飞行。
图3-150
如图3-151所示,单击Color Over Life模块,将Color Over Life数据输入类型类型改为“固定常量类型”,打开Constant属性的R、G、B通道,数值分别设置为1、0.5、0.1,让粒子体呈金黄色。
图3-151
在粒子预览窗口可以看到弓箭呈直线发射,这种直线形态并不理想。我们可以添加新的模块调整发射器形态。在发射器模块区空白处单击鼠标右键,在弹出的模块选择菜单中选择Location命令中的Initial Location模块,给发射器添加发射坐标,如图3-152所示。
图3-152
单击Start Location模块,在属性窗口中将坐标最大位移Max的X、Y、Z数值全部设置为200,最小位移Min的X、Y、Z数值全部设置为-200,如图3-153所示。
图3-153
如图3-154所示,找到属性窗口下面的Cascade属性栏,勾选B 3D Draw Mode选项,在粒子预览窗口中可以看见发射器外框形态,现在的发射器是一个立方体。
图3-154
模拟箭矢飞行时,不可能一直是直线状态,由于会受到重力影响,箭矢在飞行过程中会呈抛物线状态,那么我们需要来给发射器模拟重力的效果。
如图3-155所示,在发射器模块区空白的地方单击鼠标右键,在弹出菜单中找到Acceleration命令,选中Const Acceleration,给发射器添加常量加速度模块。
图3-155
在属性窗口中把Acceleration栏Z轴数值设置为负数可以用来模拟重力。数值越大,重力影响越大。案例中Z轴设置的数值为-800,如图3-156所示。正常情况下重力的标准数值是-980。
图3-156
回到引擎主面板,把粒子系统从资源浏览窗口Particles文件夹中拖到场景编辑窗口观察,可以看见箭矢呈弧线飞行,不过下坠的箭矢直接穿过地面了,如图3-157所示。为了表现真实性,需要让箭矢在碰到地面或其他物体的时候与它们有碰撞互动反应。
图3-157
打开粒子编辑面板,在发射器中添加一个碰撞检测模块。在发射器模块区空白处单击鼠标右键,如图3-158所示,找到Collision命令,添加Collision碰撞模块。选中Collision模块,在属性窗口中打开Max Collisions下拉属性栏。
图3-158
如图3-159所示,将Collision Completion Option类型设置为Freeze。与物体碰撞后的行为类型修改为“冻结”。案例中设置为冻结的意义是使箭矢碰到地面或其他物体以后停止运动,模拟箭矢扎在地面上或者其他物体上。
图3-159
如图3-160所示,扎中物体箭矢就不会再继续飞行了。这是简单的Mesh Data类型粒子的应用。免费版虚幻引擎不支持粒子发射器骨骼动作的模型文件,所以制作粒子Mesh Data类型模型时,请使用不带骨骼动画的单纯模型文件。
图3-160