欢迎光临散文网 会员登陆 & 注册

blender-track-exporter 使用指南

2022-05-17 01:01 作者:钣金霍  | 我要投稿

注:全文为翻译文,原文请在以下链接查看

https://richardburnsrally.github.io/blender-track-exporter/features.html#-geom-blocks

https://richardburnsrally.github.io/blender-track-exporter/guide.html


前言

这不是一个完整的赛道创作指南,只是非常基础的教程如何去开始导出阶段到RBR。最终,我们将有一个最佳实践和技术的完整指南,但在那之前,它是一个预览版本,你已经知道你应该大概如何去创作,或者你可以在discord向其他人学习。请注意,由于插件仍在测试中,事情可能会发生变化。

插件安装

安装插件后,您应该设置您的RBR导出目录。在Blender的首选项中的插件列表中找到RBR赛道插件,并在底部单击添加RBR导出目录。


您可以为不同的RBR安装添加任意数量的RBR。将它们命名为与左边字段合适的名称,并确保目录指向RBR安装的 Maps 目录。适当地设置RBR分发类型—因为 RSF 阶段将自动放置到它们自己的子目录中,而Original将只放置到 Maps 目录中。

完成后,保存首选项。如果您只是关闭窗口而不保存,它不会工作。


“Hello World”

我们将讨论导出RBR的第一个赛道所需的东西的最低条件。当然,这将只使用一些特性(也称为RBR对象类型),更全面的概述请参见特性。这不是一个Blender教程-只是一个关于如何导出赛道的教程。创建一个新文件,清除任何对象,这样你就有一个空白的画布。

地面

让我们开始创建地面网格。点击Add > Mesh > Grid创建一个简单的平坦地面,并将其放大10倍,使其足够大,以供驾驶。在对象属性面板中,找到名为RBR对象设置的部分。将类型更改为Geom Block,并启用生成碰撞。这是你应该用于地面网格和建筑的对象类型。将它设置为“Near”。

现在我们将设置一个简单的纹理材质。在“Material Properties”面板中为你的对象创建一个新的材质。打开着色器编辑器shader editor:

移除原则性的BSDF着色器节点。要导出到RBR,你必须使用插件提供的着色器节点。Add -> RBR Nodes -> RBR Shader 着色器将添加主着色器节点,你可以使用任何RBR对象网格,尽管不是所有的特性都支持所有的对象类型。启用漫反射纹理1来使用这个材质的纹理。

添加一个 RBR Texture 节点,然后单击New创建一个新的RBR纹理。将其重命名为合适的名称,并将节点连接起来

RBR纹理节点处理干/湿/湿和新的/正常/磨损的情况。new/normal/worn可以用于标记为Road Surface的纹理-这只能用于漫反射纹理槽,它可以使纹理图像根据道路状况而变化。我们现在只用干的。选择用于干燥条件的图像。所有的纹理必须是DXT1/3/5 -我们使用DXT1,这是最好的不透明纹理。纹理的大小必须是2的幂,例如512、1024、2048等等,但它不需要是方形的。

切换到材质预览模式来查看它在游戏中的样子。

您的网格将显示完全黑色-我们错过了一些东西!切换到场景属性面板,向下滚动找到RBR赛道设置。这控制了赛道支持的表面类型(干/湿/湿)和舞台支持的天气设置。单击+按钮向赛道添加天气类型。

这将增加一个简单的清爽晴朗的天气。我们暂时将所有内容都保留为默认值。插件提供了一个实时预览,它完全匹配你的舞台将出现在游戏与相同的天气设置。在3D编辑器视图中,点击 Add > Light > Sun 设置“RBR Object Type” to “Sun”。太阳的方向将取自这个物体。这样,你的纹理现在就可以在你的对象上看到了

我们还没有完全完成地面,我们需要做物理映射,所以插件知道我们的网格是由什么材料制成的。在一个面板中打开UV或图像编辑器,以及它下面的着色器编辑器。要对特定的纹理进行物理映射,请单击RBR纹理节点中的编辑材质映射。图像将在图像编辑器中打开

材质编辑器的控件显示在屏幕底部。在Overview模式中,右键单击开始创建新地图。注意,底部的控件将根据编辑器模式进行更新!在Create New Map模式下,你可以点击并拖动来定义一个新的材质贴图区域。当你释放按钮,你会回到概览模式,在那里你可以选择你的地图来调整大小和移动它

点击X键和Y键,将地图标记为在X和Y方向重复。这将锁定贴图到纹理维度,并允许插件在导出UV贴图时更聪明,如果你的UV贴图不符合纹理边界。点击Tab键进入材质绘制模式,点击T键切换到填充模式。点击地图中的任何地方,用材质填充该区域。默认情况下,它是干净的,干燥的柏油路,但你可以选择材质从场景面板下的RBR材质地图编辑器标题

点击Esc几次以退出材质贴图编辑器,并切换回3D视口。

Driveline 驾驶路线

单击Add祝辞曲线比;并将RBR对象类型设置为Driveline。这条曲线定义了赛车预计通过这个阶段的路径。它还驱动pacenotes,可以在对象属性窗格的RBR Driveline设置面板中添加。一些注释是定义起跑线、两条分割线、终点线和阶段结束的特殊事件。当赛车到达终点时,终点将立即结束。将传动系统曲线向上缩放以填充该区域。确保你应用了比例(参见Object >应用在缩放),否则pacnotes将不会出现在正确的位置。添加特殊的事件,并将它们间隔沿传动系统

Technically these aren’t needed just for quickly testing, but they are needed for your stage to function correctly. Try to ensure the driveline covers frombefore the start of the stage until after the end to avoid accidental penalties.

Car Location

单击Add祝辞空比;箭头并将RBR对象类型设置为汽车位置。这是装载舞台时汽车刷出的地方。它应该稍微落后于起跑线,否则当赛段开始时,车手将受到处罚。汽车刷出指向箭头的Y轴,后轴与X轴对齐。

Export Settings

转到场景面板,找到RBR导出设置。在这里选择要导出到的目录,并为stage提供一个用于测试的ID。您选择的ID取决于您的安装,对我来说,轨道101是免费的。RSF对此有特殊的规则,检查他们的分歧。

然后,单击Export,应该会在导出目录中创建stage。我建议打开控制台窗口>切换系统控制台,因为插件将记录它正在做什么,当导出失败或当导出需要几分钟,如果你的阶段是复杂的有用。当导出失败时,插件会发出类似E0101的错误代码。请参阅错误的解释由插件发出的错误代码。如果没有得到错误代码,请告诉我,这可能是一个错误。”

Testing

实际上,驱动阶段需要不同的步骤,这取决于您的RBR安装。对于RSF,您应该能够在测试阶段类别中找到您的阶段,而无需编辑任何其他游戏文件。对于其他插件,例如捷克插件,你需要手动将:Tracks<track-id>.ini的内容添加到TrackSettings.ini; TrackSettings&lt

Conclusion

实际上,驱动阶段需要不同的步骤,这取决于您的RBR安装。对于RSF,您应该能够在测试阶段类别中找到您的阶段,而无需编辑任何其他游戏文件。对于其他插件,例如捷克插件,你需要手动将:Tracks<track-id>.ini的内容添加到TrackSettings.ini; TrackSettings&lt


在RBR中,特性按其名称列出,并附有总结每种格式支持级别的注释。如果这一页有任何过时或错误的地方,请让我知道。

Geom blocks

用于不透明的静态几何图形(即世界)。这个几何图形被分割成块,这些块只在它们处于渲染距离圈内时才被渲染,而这个距离圈沿着传动系统是可变的。网格可以有顶点颜色,两个漫反射纹理(通过顶点颜色alpha通道混合),一个高光纹理和一个阴影纹理。漫反射和高光纹理可以被动画化(UV动画,对水有用)。有3个层次的细节:近、任意和远。这些级别的细节工作:附近:高细节网格块时可见近600比:中低细节网格的可见:非常低的细节网格只可见超过550块时离开RenderQuality =低有一些差异:游戏交换机之间的距离远近几何是更遥远的几何总是通常用于汽车反射几何玩家可以驱动高细节,和附近的标记为几何,它有一个相应的低多边形副本放置几何。这是RBR的主要LOD机制,虽然非常简单,但它工作得很好。距离舞台40米以上的几何体是较低的多边形(因为玩家无法到达它,因为刹车墙阻碍了他们)和标记任何。

[0]阴影纹理生成还没有完成,但很快就会

[1]动画纹理uv被解析,我们知道他们是如何工作的。我们只需要将它们添加到出口商和进口商。

所有的东西都标记在附近,所以即使zfar设置正确,它不是,最大的观看距离将是600米。

[3]通过web服务生成部分阴影。轨道的大小是有限制的。

Object blocks

用于具有透明纹理的静态几何图形,通常是树叶。这个几何图形被分割成与geom块相同的块。它只有一个漫反射混合纹理-没有高光或阴影纹理。这种几何形状可以在风中摇摆:每个顶点对振荡的振幅、频率和相位偏移都有单独的控制。有一些支持层次的细节,几何可以放入一个低质量的缓冲区或一个高质量的缓冲区。这减少了远处渲染的几何图形,但也会因用户设置的高/低质量而改变(尽管我怀疑这些天的设置总是高的)。导入普通阶段,查看缓冲区之间的差异。

这个特性是0.28版本中的一个简单切换,它使所有通用网格以预定的方式摇摆。在后来的版本中被删除。

Water objects

可以使用透明纹理的几何体,特别是用于水面(如湖泊)。这个几何图形总是透明的,无论用户的低/高设置。【待办事项:检查这个

Reflection objects

用于伪装反射-存在于水体下的倒立几何体。有顶点颜色和两个漫反射混合纹理。

Super bowl

这是背景几何:用户永远无法到达的遥远地形。例如,对遥远的山脉有用。这个几何图形总是绘制的,不管相机设置或相机有多远,所以保持多边形计数低。像反射物体一样,它有顶点颜色和每个多边形最多两个漫反射混合纹理。

Clipping planes

简单的透明几何体,通常是大的矩形平面,遮挡了它们后面的几何体,但它们本身并不直接可见。这对减少正在渲染的三角形数量很有用。有两种方式可用:方向平面只在一个方向上阻塞全向平面在两个方向上阻塞

Brake wall

赛道周围的软墙,防止赛车离舞台太远。只有一个,所以如果你的舞台是一个电路,它必须在外面-你不能有一个在一个回路里面。内墙定义了减速效应从哪里开始,而外墙是不可穿透的。

Wet/water surfaces

定义水飞溅区域的简单四边形。水面总是会溅起水花,但潮湿的表面只有在潮湿的条件下才会起作用。

这些结构是反向工程的,只是还不能导出。见https://github.com/RichardBurnsRally/blender-rbr-track-addon/issues/243。

Ground collision mesh

地面碰撞网格是一个优化的结构,完全独立于世界的视觉几何形状(至少在游戏文件中)。它包含关于表面材料的信息,每个多边形可以有两个材料混合在一起,很像两个扩散纹理的宝石块。它也有一些照明信息,这是用来遮蔽汽车和灰尘。

[0]插件不直接暴露这个导出,相反,它是从你的附近或任何geom块生成的,如果你在一个对象上检查生成碰撞网格复选框。这样做的主要原因是简单(轨迹创建者只需要关心每个纹理的材质映射),但这也使得支持与gem块的纹理混合相匹配的材质混合变得容易。[1] Wallaby在这里写固定的值,这导致汽车上的一个微弱的闪烁,当你穿越多边形。

Static shape collision meshes

虽然一些轨道利用了地面碰撞网格的东西,如树干,它并不真正适合:汽车可能会卡在树干。这些形状碰撞网格是简单的[0]封闭网格实例化:有一个根网格存储在文件中,然后该网格的所有使用只包含位置、旋转和缩放信息。网格有一个物理材料,也可以有一个柔软的体量,它的物理作用就像一个灌木或一个雪墙。

最大30个顶点,最大84个边,最大56个面。[1]实例化由每个碰撞网格对象的底层网格数据决定。为了使实例工作,必须链接副本。软体被添加为主要碰撞网格的空子对象,可以是盒子,也可以是球体。在像雪墙这样完全柔软的对象的情况下,父网格也应该是空的。导入香草RBR舞台,看看雪墙是如何设置的。[2]如果您知道正确的材质ID,就可以创建灌木林。[3]不能抓取对象并使用鼠标移动它们,必须手动输入新的坐标。

Interactive objects

最大30个顶点,最大84个边,最大56个面。[1]实例化由每个碰撞网格对象的底层网格数据决定。为了使实例工作,必须链接副本。软体被添加为主要碰撞网格的空子对象,可以是盒子,也可以是球体。在像雪墙这样完全柔软的对象的情况下,父网格也应该是空的。导入香草RBR舞台,看看雪墙是如何设置的。[2]如果您知道正确的材质ID,就可以创建灌木林。[3]不能抓取对象并使用鼠标移动它们,必须手动输入新的坐标。

视觉几何体(交互对象)是父对象,而碰撞网格应该是直接的子对象。具有与静态形状碰撞网格相同的实例约束。

Dynamic fences/tapes

彩色胶带或灵活的橙色塑料围栏,它们可以相互作用。

[0]点击放置,但是在放置后改变栅栏位置需要手动输入坐标

Animations

沿着传动系统的某些点,可以触发鹿穿过马路或观众逃离道路的动画,带有一些随机元素。

[0]一些小bug,比如动画在预览中有不正确的旋转

Sound Triggers

在回放中引起鸟叫声的球体。[0]手动坐标输入

Cameras

重播摄像头被放置在道路沿线,并在传动系统的特定位置触发。它们可以是稳定的相机,也可以是手持式的(即shakey)。摄像机的视场和位置可以根据传动系统位置通过贝塞尔样条动画,位置动画可以用来创建螺旋锥(以及螺旋锥噪声设置)。

在现有的标记/触发器之间添加标记/触发器可能导致必须删除所有标记/触发器并重新创建它们。此外,正确放置相机需要所有的几何图形都是活跃的,但这大大降低了FPS。

Driveline

传动系统是一个贝塞尔样条,它决定何时读取pacenotes,何时触发事件(开始/结束/检查点),摄像机的位置动画和渲染距离。当司机呼救时,它还可以用来确定汽车的位置和方向。

Pacenote对[0]的支持仅限于原生RBR注释,它们直接添加到driveline对象中。动画是由搅拌器处理的,我们把时间轴上的时间作为舞台上的距离。当编辑传动系统时,你会注意到插件将重置你的手柄,以保持样条与RBR兼容:手柄必须是相等的长度,面对相反的方向。对于渲染距离,创建一个圆类型的空对象,并使传动系统样条作为父对象。将RBR对象类型设置为渲染距离,并将X旋转设置为90度,以便圆形平躺在地面上。您可以改变空显示大小来控制渲染距离,这可以随着时间的推移而动画化。导入香草阶段,看看它通常是如何动画的:它保持尽可能小的尺寸,而不会导致几何图形弹出或弹出。如果需要显示尺寸>1000米,你可以通过缩放对象来做到这一点,导出的渲染距离是缩放和空显示尺寸的乘积。[1] Wallaby根本不编写呈现距离,这将导致在启动阶段时该值不可预测—它将使用来自先前驱动阶段的最后一个已知值。一个FixUp补丁修复了这个最近,所以它总是重置在一个阶段的开始。

Texture

RBR纹理被打包成一个。rbz文件(zip格式)和一个。ini文件来控制纹理选项。

[0] RBR喜欢宽度和高度为2 (2^N)的整数幂的纹理。如果纹理不是这个大小,它会在舞台加载时重新缩放到这个大小,这个过程非常缓慢。仅仅一个大小不合适的纹理就会使加载时间从几乎瞬间变慢。

blender-track-exporter 使用指南的评论 (共 条)

分享到微博请遵守国家法律