Rmesh

来自收容失效终极版维基
跳转到导航 跳转到搜索

义贼说的道理小课堂

RMesh,是用来存储游戏房间模型的一种格式。它的全名为RoomMesh

描述[编辑 | 编辑源代码]

RMesh是收容失效用来存储房间的一种格式,一般来说,这些文件都存放在 GFX\Map 文件夹中。

RMesh包含了一个房间的贴图信息、顶点信息及房间内的其它物件(如:显示屏、灯、模型)

结构[编辑 | 编辑源代码]

  • String 字符串 << 文件头,固定为RoomMesh或RoomMesh.HasTriggerBox
  • Int32 整数型 << 房间面的网格数量(每一网格都对应一个贴图,所以也是房间贴图数量)
  • 网格区块 << 区块数量为网格数量
    • 贴图区块 << 区块数量为2
      • Byte 字节 << 贴图标识 | 0 表示无贴图 | 1 表示普通贴图(可使用法线贴图及光照贴图) | 3 表示仅色彩贴图 |
      • String 字符串 << 贴图名称/文件名称(附带文件后缀)
    • Int32 整数型 << 顶点数量
    • 顶点区块 << 区块数量为顶点数量
      • Float 单浮点数 << 顶点X坐标
      • Float 单浮点数 << 顶点Y坐标
      • Float 单浮点数 << 顶点Z坐标
      • UV区块 << 区块数量为2
        • Float 单浮点数 << UV X坐标
        • Float 单浮点数 << UV Y坐标
      • Byte 字节 << 顶点红颜色值
      • Byte 字节 << 顶点绿颜色值
      • Byte 字节 << 顶点蓝颜色值
    • Int32 整数型 << 三角形数量(三个顶点为一个三角形)
    • 三角形区块 << 数量为三角形数量
      • Int32 整数型 << 三角形第一个顶点在所有顶点中的序号
      • Int32 整数型 << 三角形第二个顶点在所有顶点中的序号
      • Int32 整数型 << 三角形第三个顶点在所有顶点中的序号
  • Int32 整数型 << 隐藏网格的数量(拥有碰撞体积,但不会渲染贴图)
  • 隐藏网格区块 << 数量为隐藏网格的数量
    • Int32 << 隐藏网格的顶点数量
    • 顶点区块(数量为隐藏网格的顶点数量)
      • Float 单浮点数 << 顶点X坐标
      • Float 单浮点数 << 顶点Y坐标
      • Float 单浮点数 << 顶点Z坐标
    • Int32 << 隐藏网格的三角形数量
    • 三角形区块 << 数量为隐藏网格的三角形数量
      • Int32 整数型 << 三角形第一个顶点在所有顶点中的序号
      • Int32 整数型 << 三角形第二个顶点在所有顶点中的序号
      • Int32 整数型 << 三角形第三个顶点在所有顶点中的序号
  • Int32 整数型 << 房间物件的数量
  • 物件区块(数量为房间物件的数量)
    • String 字符串 << 该物件的名称
    • 屏幕区块(如果该物件名称为“screen”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • String 字符串 << 屏幕的贴图名称
    • 路径点区块(如果该物件名称为“waypoint”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
    • 灯照区块(如果该物件名称为“light”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • Float 单浮点数 << 灯照距离
      • String 字符串 << 灯照颜色(以空格分割,为RGB颜色形式)
      • Float 单浮点数 << 灯照强度
    • 聚光灯区块(如果该物件名称为“spotlight”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • Float 单浮点数 << 聚光灯距离
      • String 字符串 << 聚光灯颜色(以空格分割,为RGB颜色形式)
      • Float 单浮点数 << 聚光灯强度
      • String 字符串 << 聚光灯角度(以空格分隔,分为俯仰角及偏航角)
      • Int32 整数型 << 聚光灯内锥角
      • Int32 整数型 << 聚光灯外锥角
    • 声音播放器区块(如果该物件名称为“soundemitter”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • Int32 整数型 << 声音ID
      • Float 单浮点数 << 声音距离
    • 模型区块(如果该物件名称为“model”则进入该区块)
      • String 字符串 << 模型文件名(后缀为.x或.b3d)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • Float 单浮点数 << 模型俯仰角
      • Float 单浮点数 << 模型偏航角
      • Float 单浮点数 << 模型翻滚角
      • Float 单浮点数 << 模型X大小
      • Float 单浮点数 << 模型Y大小
      • Float 单浮点数 << 模型Z大小
    • 网格模型区块(如果该物件名称为“mesh”则进入该区块)
      • Float 单浮点数 << 物件X坐标
      • Float 单浮点数 << 物件Y坐标
      • Float 单浮点数 << 物件Z坐标
      • String 字符串 << 网格模型文件名(后缀为.x或.b3d)
      • Float 单浮点数 << 模型俯仰角
      • Float 单浮点数 << 模型偏航角
      • Float 单浮点数 << 模型翻滚角
      • Float 单浮点数 << 模型X大小
      • Float 单浮点数 << 模型Y大小
      • Float 单浮点数 << 模型Z大小
      • Byte 字节 << 网格模型是否拥有碰撞体积(0为无,1为有)
      • Int32 整数型 << 网格模型FX值
      • String 字符串 << 网格模型贴图文件名