Skip to content

mdai52/CodeWalker

 
 

Repository files navigation

CodeWalker

一款用于查看和编辑 GTAV RPF 文件内容的软件

本软件基于原版 CodeWalker 修改,由 Akkariin 汉化

CodeWalkerCN

系统需求

  • PC 版本的 GTA5;
  • 4GB 内存 (建议 8GB 以上);
  • Windows 7 或更高, 64 位操作系统;
  • .NET framework 4.5 或更高版本,可以从 Microsoft 下载;
  • DirectX 11 以及 Shader Model 4.0 兼容的显卡。

汉化版本说明

  • 本程序基于 CodeWalker 30 dev45(2023.09.04 提交的版本)修改汉化
  • 增加了一键解锁 Yft/Ydr/Ydd 模型的功能
  • 对界面进行了一些优化,改进了部分排版的布局,统一使用微软雅黑作为界面字体
  • 修复了新建 Ynd 交通节点文件在编辑时会崩溃的问题

使用方法

首次启动时,应用程序将提示浏览 GTA:V 游戏文件夹。 如果您安装了 Steam 版本的 GTAV 在默认位置 (C:\Program Files (x86)\Steam\SteamApps\common\Grand Theft Auto V),则此步骤将自动跳过。

默认情况下将加载世界视图。加载需要一段时间。使用 WASD 键移动相机。按住 Shift 可以移动得更快。拖动鼠标左键可旋转视图。使用鼠标滚轮放大/缩小,并更改基本移动速度。(放大 = 降低移动速度),还支持 Xbox 控制器输入。单击屏幕右上角的 << 按钮可以显示工具箱。按下 T 打开主工具栏。

可以使用 P 键或按 Xbox 控制器上的开始按钮来激活第一人称模式。在第一人称模式下,鼠标左键(或右键触发器)将发射一个外星人蛋。

通过启用工具箱中 “选择” 选项卡上的选项,可以选择实体(使用鼠标右键)。可以在相关的子选项卡中探索所选实体、其定义类型及其可绘制对象的详细信息。(也可以使用工具栏上的箭头按钮激活此选项)。

当选择一个实体时,按下 E 将切换到编辑模式(或者,可以通过将小部件模式切换到默认以外的任何模式来激活编辑模式)。在编辑模式下,按下 Q 将退出编辑模式,W 切换位置小部件,E 切换旋转,R 切换缩放。此外,在编辑模式下,移动仍然是 WSAD,但仅限于按住鼠标左键且不与小部件交互时。按下 Ctrl-ZCtrl-Y 将撤消和重做实体变换(位置/旋转/缩放)操作。

项目窗口允许创建 CodeWalker 项目 (.cwproj),并向其中添加文件。在项目窗口打开时编辑实体的话,会自动将实体的 .ymap 添加到当前项目。您可以将项目中的 Ymap 文件保存到磁盘,然后就可以在地图模组中使用了。还可以创建新的 ymap 文件,并且可以添加和删除实体。还支持编辑 .ynd 文件(交通路径)、火车 .dat 文件(火车轨道)和场景(.ymt)等等。受限于篇幅原因,这里不再详细介绍所有功能,您可以自行探索它们。

该应用程序中所有工具的完整说明仍在待办事项列表中!目前,用户只能自行承担探索这些选项的风险。请注意,某些选项可能会导致 CodeWalker 崩溃,或者停止正常运行。如果发生这种情况,请重新启动程序即可。另外请注意,该程序的开发仍然在持续进行中,因此错误和崩溃是可以预料的。地图上的某些地区可能存在渲染错误的问题,但预计未来的更新可以解决。

菜单模式

该应用程序还可以通过主菜单启动,而不是加载世界视图。这对于不需要世界视图的情况非常有用,并且可以避免世界加载。

要激活菜单模式,请使用 menu 命令行参数运行 CodeWalker,例如:CodeWalker.exe menu

资源管理器模式

该应用程序可以使用 explorer 命令行参数启动。 这会显示一个与 OpenIV 非常相似的、具有 Windows 资源管理器风格的界面,用于浏览游戏的 .rpf 存档,双击文件将其打开。大多数游戏文件类型都可以打开,如果遇到不支持的文件则会以十六进制查看器显示。

要激活资源管理器模式,请运行命令:CodeWalker.exe explorer。或者,运行程序目录中的 CodeWalker Explorer.exe 文件。

主工具栏

主工具栏用于访问 CodeWalker 中的大部分编辑功能,提供了新建、打开和创建文件的快捷方式。可以使用 “指针” 按钮更改选择模式。移动、旋转和缩放按钮可以对世界中的各种对象进行变换操作。工具栏上还有其他快捷方式,包括用于打开 “选择信息” 窗口和 “项目” 窗口的按钮。将鼠标移动到图标上将会显示功能说明。

项目窗口

项目窗口是在 CodeWalker 中编辑文件的起点。在这里可以创建项目,并向其中添加文件。建议在添加要编辑和保存的文件之前,先创建并保存项目。左侧的树状视图将会显示当前项目中的文件及其内容。

YMAP 编辑

可以通过项目窗口创建新的 YMAP 文件,并且可以编辑现有的 YMAP 文件。要编辑现有的单人游戏 YMAP,请首先在主界面右侧的面板中,将 DLC 版本更改为 patchday2ng,然后勾选加载 DLC。打开工具栏,然后启用实体选择模式。

接下来,您可以使用工具栏 “移动” 按钮启用移动模式。使用工具栏按钮打开项目窗口。项目窗口打开时,所做的更改会自动添加到项目中。将鼠标悬停在实体上时右键单击以选择要编辑的实体,其边界框显示为白色。您还可以使用工具来旋转或缩放所选实体。

进行第一次更改时,实体的 YMAP 将添加到当前项目中。如果没有打开项目,则会创建一个新项目。可以使用项目窗口中的 “文件” 菜单将编辑后的 YMAP 文件保存到硬盘。如果要让游戏加载修改后的地图,您需要替换地图文件。

首先,您可以在 “选择信息” 窗口中,找到 YMap > RpfFileEntry,该文件就是地图所在的 RPF 文件。进入游戏目录找到该文件,然后将其复制,接着进入游戏 mods/ 文件夹(没有的话可以新建一个),然后按照原本目录的顺序新建文件夹,再粘贴刚刚复制的文件。举个例子:您想要编辑 update/update.rpf 文件,那么您可以在 mods 文件夹内新建一个 update 文件夹,然后将 update.rpf 文件复制进去。

复制完成之后,您可以点击世界视图右上角的工具 > RPF 文件浏览器,然后在打开的窗口中找到刚刚复制的 RPF 文件,双击打开该 RPF 文件,然后找到您所修改的 YMAP 文件,将右上角的编辑模式激活,然后将修改后的 YMAP 文件拖入窗口中,即可完成替换。

火车轨道编辑

教程暂未完工

(YND) 交通路径编辑

教程暂未完工

(YMT) 场景区域编辑

教程暂未完工

这里也有视频教程:Scenario Editing Tutorial

关于游戏文件:(仅供参考)

PC GTAV 世界以多种不同的文件格式存储在 RPF 档案中。正如预期的那样,某些格式用于存储与渲染相关的内容,例如纹理和 3D 模型,而其他格式用于存储游戏和引擎相关的数据。

渲染 GTA 5 内容的主要格式有:

  • .ytd - 纹理字典,以 DirectX 格式存储纹理数据,方便加载到 GPU。
  • .ydr - 可绘制模型,包含单个资产的 3D 模型。 可以包含纹理字典以及模型的最多 4 个 LOD。
  • .ydd - 可绘制字典,打包到单个文件中的可绘制模型集合。
  • .yft - 模型分段,包含一个可绘制模型,以及其他元数据,例如物理数据。

GTA5 的游戏世界是通过各种对象拼凑起来的,简单来说,MapTypes 储存了所有模型的定义信息,例如这个模型有多大,模型的类型等等。而 MapData 则储存了这些模型在世界中的位置,决定了要把模型摆在哪里。而 Bounds 则储存了世界中各个部分的碰撞网格/边界数据。

这些的格式是:

  • .ytyp - MapTypes - 包含一组 MapTypes(定义类型),定义了模型的对象信息。
  • .ymap - MapData - 包含许多的对象,决定了每个对象在世界中的位置。
  • .ybn - Bounds - 包含世界各个部分的碰撞网格/边界数据。

MapData (.ymap) 文件中包含的 EntityData 形成了 LOD 层次结构。层次结构的最底层是由几块面积较大的模型拼凑组成的,它们在游戏中的作用就是远景模型。接着,每个底层模型又会拆分为一组较小的模型,每个模型都比上一个层级的精度更高,以此类推下去,最多可以有 6 个层级,最高层级就是最精细的模型。

在 CodeWalker 中,这是通过从底层开始递归 LOD 树,检查节点实体距离相机有多远来完成的。如果低于某个值,则使用当前级别,否则将使用到下一个更高级别,具体取决于实体的 LOD 距离设置。

在 Ymap 视图中,默认情况下不渲染最高 LOD,也就是 ORPHANHD。您可以通过在 ymap 输入框中,为想要渲染最高 LOD 的区域指定正确的 strm ymap 文件来手动渲染 ORPHANHD 实体。strm ymap 名称通常可以通过鼠标选择区域中的高细节对象,并在选择信息面板中记下该实体包含在哪个 ymap 中来找到。

About

CodeWalker 地图编辑器中文汉化 & 修改版

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 97.4%
  • HLSL 2.6%