02.【基础知识】场景层级,复合物体,几何体模型

您所在的位置:网站首页 gta5载具灯光按键 02.【基础知识】场景层级,复合物体,几何体模型

02.【基础知识】场景层级,复合物体,几何体模型

2024-07-11 05:23| 来源: 网络整理| 查看: 265

补档:

《ZM3 GTA5 导入与导出插件》技术文档

原创教程:零贰

以下是技术文档的目录:

01. GTAV 导入与导出插件的准备工作:如何安装 ZM3.1.0

02.【基础知识】GTA V:场景层级,复合物体,几何体模型

03. 【使用指南】ZM3《GTA V 导入与导出插件》使用指南

04.【拓展研究】GTA V:玻璃破碎数据指南 (*.cwgv 文件)

05.【扩展研究】GTA V 着色与材质,车体效果,载具灯光,贴图等的指南

06.【扩展研究】GTA V:物理特性和碰撞体指南

写在翻译前言:

对于热爱 GTA,喜欢玩 GTA MOD,更热衷于制作自己喜欢的 MOD 作者来说,Zmodeler 这款

软件是非常熟悉了!

目前 ZM3 原作者编写了 5 个指南,我会一一将他们翻译过来。不过由于只能工

作之余进行翻译,因此翻译进度会略慢。

英文好手可以直接去 ZM3 原论坛进行查看,如果发现本人翻译有不足和错误的

地方,也请指出。

现在发布的是第一个指南,带你初识《GTAV 导入与导出插件》,此指南主要介绍

了使用插件所学要的一些基本知识,相对枯燥,但是只有基础牢固,大楼才能建

得高。所以,希望想研究和制作 GTA V 模型类 MOD 的玩家耐心看看。

02. [Guide] GTA V: Scene hierarchy, compound objects, geometries

02.【基础知识】GTA V:场景层级,复合物体,几何体模型

原创翻译:零贰

Scene Hierarchy

场景层级

GTAV 中一辆载具的”.yft”模型文件通常分成两部分,一个是包含有丰富细节的高质量模型文

件,此文件一般命名为:“model_hi.yft”,文件内除了载具的实体模型,另外仅只包含一个同

样丰富细节的 LOD 文件(为了减轻电脑负荷,而创建的远距离上显示的模型文件,走近载具

后,此文件会被自动隐藏);第二个部分,载具的所有其他文件都被放在了名为:“model.yft”

文件内,包含有相对低细节的载具实体模型和最高有 4 个 LOD 文件(分别对应稍远,远,超远等视角变化情况)。

在这里,我把第二个“model.yft”文件称之为基础 yft 模型。两个文件加起来,你的载具最高

会有 5 个 LOD 文件。在一般情况下,游戏自身经常使用的是基础 yft 模型,用它来生成车流

和主角使用的载具。物理效果和碰撞检测,也都是在基础 yft 模型上完成。而高细节模型

(model.hi_.yft)通常则被用来当做原模型,另外,如果你启用了高清材质,也是在这高细

节模型上呈现。

一个载具的实体模型通常包含很多物件,包括车门,车轮,车灯,驾驶员的位置,双手的位

置等等。所有这些物件都被按照层级绑定在了基础.yft 模型文件内,相应的,你在高细节模

型文件内,载具对应的模型也必须按照相同的层级来绑定。不单单只是保证模型的分层相同

并且正确,还要保证模型的三维坐标轴的位移数据是一样的,旋转数据也是一样的。另外,

你也不能单单只在一个模型文件内添加,或移除某个部分。

了解了以上关于 GTA V 中载具模型的原理后,可以让你更好的熟悉 ZM3 的 GTA V 导入与导

出插件的工作方式。ZM3 的 GTA V 插件可以让你在一个场景内,同时管理高细节_hi.yft 模型

和基础 yft 模型,也包括载具对应 LOD 文件。

在你开始载具模型前,请确保你的 ZM3 已经准备好了导入。打开“Setting(设置)-> General

(一般)-> Compatibility(兼容性)”(由于 ZM3 还没有中文版,因此这里保留原文的英文菜

单名),然后按照下图来设置。

在开始前,场景层级的命名必须和你要导出的模型名字一样,它不能包含”.yft”和“.ydr”。命名也允许(并推荐)加入一个“_hi”后缀,这样你便告诉了导出插件这个场景包含有高细节版

本的模型。在设置里“Combine with existing models(与已经存在的模型合并)”允许你向已

经存在模型的场景里导入另一个模型,通过它,你可以导入高细节_hi.yft 模型,另外还可以

从基础.yft 模型中导入 LOD 文件。

在一开始导入 model_hi.yft 时,场景会自动的为“模型_hi”创建一个根节点。而先导入

model.yft 文件,再导入 model_hi.yft,场景的根节点则是按照 model.yft 来命名为“model”,而

不是“model_hi”。

模型的层级包含有多个部件以及虚拟点(Dummy nodes),部件指的是几何体模型,并且至

少包含一个 LOD 文件。载具所有的 LOD 模型文件通常是包含在一个部件内,并且以粗体的

名字显示,这些部件称之为复合体部件。这些包含有多个部件的复合体部件在游戏内,则是

依据场景,通常每次只显示一个部件。(也就是像 LOD 文件,根据视角的远景,每次只显示

相应距离下的一个 LOD 文件)

下面以 Buffalo2_hi.yft 和 Buffalo2.yft 两个模型文件为例:

Compound objects.

复合体部件

展开在层级上面的 Structure(结构)面板,你可以看到一组条件等级按钮:LOD 按钮,分别

为 L0、L1、L2、L3 和 L4;效果按钮,Dirt(泥泞)、Dust(沙尘)、Scratch(刮伤)和 Burn

(燃烧);以及 Collision(碰撞体)按钮。

通过层级面板,你可以挑选任何一个复合体部件,并且查看此复合体部件所包含的声明,显

示为粗体字的模型是当前复合体部件中选中的模型。当按下声明按钮时,场景内所有的复合

体部件会立刻切换至对应的声明。同样,你也可以通过按 L0, L1, L2 等按钮,切换至 LOD 模

型。Default(默认)声明是当你没有选择任何部件时,插件会将一个载具最基本的模型声明

出来。GTAV 导入插件在导入模型时会依据复合体部件的数据创建默认声明,并以虚拟体

(Dummy Node)展示,所以在导入场景里,你会看到有很多的虚拟体。上图的面板展示了

拥有 5 个 LOD 文件的载具底盘复合体部件,而当前正在显示的是默认声明。

碰撞体文件同样是包含在复合体部件内,通过 COL 声明按钮,你可以定位到它。你可以点击

COL 声明按钮来显示碰撞体。要多说一句的是,插件并未将碰撞体模型包含在默认声明中。因此,当你选择默认声明时,在场景内是看不到碰撞体模型的,甚至连碰撞体对应的虚拟体

节点也不会出现。

下面这个视频向你展示复合体部件是如何工作的,以及如何在场景内创建复合体部件。这里

假设你场景的 L0,L1,L2 已经有几何体模型了。

【此处视频可在论坛帖子内观看】

当没有按下 LOD 声明按钮时,你可以看到与复合体部件以及相联系的虚拟体节点,还有非

复合体部件的单独模型。你可以(也应该)在默认声明下给这些模型分配(修改)属性。

举例来说:每一扇门,引擎盖和后备箱都应该要包含旋转属性,以便他们在游戏内做出符合

物理常识的动作。你可以在属性面板内设置他们的可旋转角度,GTA V 导出插件在导出时会

将你的设置写入进模型内。

确保你当前的场景为(Default)默认状态,然后通过“Hierarchy”(层级)面板选择一扇车门,

接着点击层级面板下方的“Isolated”(孤立)按钮,将选中的车门从当前场景里孤立出来,方

便查看与编辑,场景内其他的模型则暂时被隐藏了。在孤立状态下,模型的“Properties”(属

性)面板会自动的弹出,并展示模型的各项属性。这比起你单独的一个个去选择物体,然后

查看属性要高效很多。双击“user-defined options”(用户自定义选项),会弹出一个窗口,

如图:

在这个用户自定义面板上,你可以看到 RotX(X 旋转轴), RotY(Y 旋转轴), RotZ(Z 旋转

轴)分别包含了模型各个轴上的旋转数据。“0.0”数值,意味着此模型没有旋转属性。因此,

图中的这个模型,只有在 Y 轴上拥有旋转数据,旋转角度为 0~72 度。为了简单起见,插件

会以(Cylinder)圆柱体作为参考,给车门创建一个虚拟体节点,因此你在场景中可以看到

带有同样属性的虚拟体节点。当你修改一个模型的属性时,虚拟体也会跟着做出改变。另外,

事实上虚拟体的形状并不会对载具有任何影响,导出工具在导出时,不会在意虚拟的形状,

大小,甚至是颜色,因为虚拟体在游戏中并不会产生任何碰撞效果,你也看不到它。但游戏

需要一个虚拟体来作为数据的传输通道。

当你在属性面板中编辑完模型的属性后,请记得按下“Apply”(应用)按钮,让修改被保存。

在完成编辑后,记得关闭“Isolated”(孤立)按钮,退回到正常场景中。

注意点:因为“collision”(碰撞体)的复合体部件并不会出现在“Default”(默认)声明中,

因此为了编辑这些碰撞体模型,你需要定位到“COL”声明按钮上,然后直接在此状态下,编

辑碰撞体。这点非常重要,因为你需要对每一个碰撞体模型进行单独的属性或模型上的编辑。Geometries.

几何体

大多数几何体模型都会使用两种 UV 通道,切线与顶点着色,两个通道分别对应模型的材质

贴图和着色。因此,在制作过程中,要确保你的模型应用了正确的着色设置。一个模型可以

拥有多个材质,也即多通道材质。应用材质时,模型上所有的点都必须被赋予到。举例来说,

如果一个模型应用了凹凸贴图,那么整个模型都必须被赋予这张凹凸贴图,而不是只显示凹

凸效果的部分。GTA V 导出插件会自动处理模型没有凹凸效果的部分,所以你不需要因为模

型的很多地方并没有用到凹凸贴图,或者模型本身并没有使用多通道材质而困扰。

每一个模型部件的顶点元件(Vertices components)(顶点格式)可以在属性面板“Properties 

-> Mesh -> Vertices -> Format” 里进行配置。贴图切线则会在开启法线贴图计算工具后

“Surface\Normals\Calculate”自动给模型部件匹配。

节点着色是 GTA V 中着色器最常用的一项技术,但是这个组件并不以网格颜色为依据。相反

的,每一个颜色通道在着色器内都有特定的意义。举例来说,红色通道是用于环境光遮蔽(AO:

ambient occlusion),蓝色通道是用于描绘燃烧效果力度的,情景部件则是用来反馈游戏内一

些特定效果的,譬如“湿润”效果遮罩,或者其他目的。你可以利用绘图工具“Surface -> Paint”

来绘制或改善部件的着色效果。这里要提醒下,注意到“Paint”(绘图)窗口有一个扩展的选

项面板,在这个面板里,你可以选择不同的通道来进行处理。譬如,你可以选择红色通道来

查看环境光遮蔽效果的面积,然后在蓝色通道里,用“color”色彩工具进行绘制。

下图是一个在蓝色通道内将颜色绘制成黑色车门的例子,蓝色通道在材质上控制的是灼烧力

度。图中上方的载具展示的是网格上的节点色彩,下方的载具展示了这些节点色彩在实际的

每一个部件的网格上所呈现的含义。节点色彩的浓度反馈到车体上便是灼烧效果的浓度。

下面我具体解释下每一个节点色彩的颜色通道所带的意义:

红色通道:环境光遮蔽的层级。插件一般会使用向外晕开的黑色遮罩来反转节点的红色通道。

因此,在一个网格上,低层级的环境光遮蔽会有更加黑的色彩来模拟环境光遮蔽效果。然而,

相比于其他游戏,在 GTA 游戏内的模型上,环境光遮蔽所带来的对比度其实是非常小的。但

是,不管怎样,这里还是推荐在制作你自己的 MOD 时,附带上环境光遮蔽效果。

绿色通道:变形束缚的程度。网格变形的程度由节点的绿色通道来控制。要想控制变形的程

度,可以通过减少绿色通道的数值。举上图的例子来说,车门上有一片洋红的区域,数值为

红:255,绿:40,蓝:255,这就意味着车门上的变形程度会非常低。通过这个通道,你可

以在载具上表现出真实的变形效果。

蓝色通道:灼烧效果等级。灼烧效果等级是有节点的蓝色通道来控制的。你可以在蓝色通道

内绘制颜色区域来规划你想要产生灼烧效果的部位。GTA 游戏内原始的模型一般只在车体框

架以及车门上,而引擎盖,尾翼,保险杠和行李箱盖上是没有效果的。我猜这大概是因为在

游戏里,当车子燃烧的时候,这些部件早已经被炸飞掉了,因此就不需要在它们上面做燃烧

效果了。当然了,这虽然会出现一些不太真实的情况。譬如保险杠并没有完全被撞飞掉,但

是车体已经在燃烧,结果你就会看到火焰烧到了保险杠上,而保险杆却没有灼烧的痕迹。不

过,我还是建议你按照游戏本身的设定来。

透明通道:透明材质效果。透明通道可以用来控制带有透明材质的浓度。举例来说,几乎所

有“冬天”的车辆上都会使用带有透明通道的白雪贴图来覆盖车身。另外,风景类模型也会

用到透明通道来呈现树木,植物等等的贴图效果。

为了增加透明的效果,选择你想要修改的通道,也即 Alpha 通道,在此颜色通道下,选择白

色,然后在网格上绘制。如果要降低效果,同样在 Alpha 通道下,选择黑色进行涂抹。要注

意的是,颜色涂抹工具在模式为“Solid”实体下,颜色是不会被涂抹到视图内不可见的模型部

位的。简单说就是在此模式下,你看不到的地方,颜色是不会涂抹到的,也包括当前面的背

面。要想一次涂抹整个模型,或者穿透模型来涂抹,你可以关掉“Solid”实体模式,只保留

“wireframe”线框模式,这样你就可以穿透整个网格和节点进行涂抹了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3