《火星战士:异形竞技场》自定义内容创作综合指南
概述
《火星战士:异形竞技场》支持创建多种自定义内容。你可以通过SDK创建地图、纹理、模型和新游戏模式。
在《火星战士:异形竞技场》中,创作几乎没有限制。游戏使用免费开源工具来创建地图和模型,引擎允许在地图中放置包括地形在内的各种细节。
部分工具仍在开发中,其他新工具即将推出,例如地形编辑器、着色器生成器等。
《火星战士:异形竞技场》SDK
《火星战士:异形竞技场》的SDK将在Steam上推出,目前你可以直接从官方网站下载。SDK包含以下内容:
- 所有源代码(引擎、游戏、库文件)
- AA Radiant - 为《异形竞技场》定制的Radiant版本(注意 - 这是一个旧版本,后续将进行更新,且不包含IQM支持)
- IQM导入/导出工具
- 示例玩家角色模型
- 示例着色器脚本
- 机器人配置工具
创建玩家角色
《异形竞技场》的玩家角色可使用Blender创建,并导出为IQM模型格式。
SDK中包含一个可正常使用的玩家角色示例(火星执行者)。建议打开该示例,查看其构建方式。你也可以将其骨骼作为基础,开始创建自己的角色。1 //雾浓度
3 //天气效果 1=雨 2=雪 3=落叶 4=余烬 5=垃圾
0 //切换【无太阳】(设为1则禁用太阳效果)
-140000 //覆盖太阳X轴位置
80000 //覆盖太阳Y轴位置
45000 //覆盖太阳Z轴位置
0.6 //太阳强度主要步骤:
创建玩家模型网格并展开UV坐标。
导出UV布局并进行纹理绘制,建议同时创建法线贴图和发光贴图。
创建骨骼并将模型绑定到骨骼上。
导入所有武器模型并附加到骨骼(通常基准点为右手)。
按照《异形竞技场》的帧规范创建动画。
将玩家IQM模型导出到“arena/players”目录下的新文件夹中,并按照《异形竞技场》的命名规则导出每个武器模型(可参考其他玩家文件夹中的示例)。
导出不同细节等级版本(LOD1.iqm、LOD2.iqm)。
为每个皮肤创建.skin文件。对于武器模型,只需从默认玩家角色中复制.skin文件即可。在.rscript中为你的模型皮肤创建着色器,并放置在scripts/normals文件夹中。
添加自定义声音和每个皮肤的图标。
骨骼:
骨骼必须使用【异形竞技场】可识别的骨骼命名规则。最佳做法是检查示例模型。
骨骼名称如下:
Spine(必须连接到骨盆)。如果是分段脊柱,连接到骨盆的骨骼可以是Spine01
head
shoulder.r
shoulder.l
tricep.r
tricep.l
forearm.r
forearm.l
wrist.r(hand.01-03可替代手腕)
wrist.l
hip.r
hip.l
thigh.r
thigh.l
shin.r
shin.l
foot.r
foot.l
动画
【异形竞技场】使用297帧动画。以下是具体内容,按顺序排列:
站立:1-40
跑步:41-46
攻击:47-54
疼痛1:55-58
疼痛2:59-62
疼痛3:63-66
跳跃:67-72
翻滚:73-84
敬礼:85-95
嘲讽:96-112
挥手:113-123
指向:124-135
蹲姿站立:136-154
蹲走:155-160
蹲姿攻击:161-169
蹲姿疼痛:170-173
潜行:174-181
起身:182-198
死亡1:199-220
死亡2:221-238
死亡3:238-260
左移步:261-266
右移步:267-272
后退:273-278
游泳:279-285
悬挂:286-297
布娃娃系统
创建布娃娃目前是一个困难且繁琐的过程。如果你想创建一个布娃娃,请查看SDK中的示例。这些布娃娃是通过基于基础框架(即“编辑模式”下的骨骼)提供坐标和尺寸来创建的。未来将提供布娃娃导出器。如果您选择不使用radolls,游戏将采用您的动画死亡序列。
文件格式基于以下定义:
#define ELBOW_X_OFF 0 //肘部关节
#define ELBOW_Y_OFF 1
#define ELBOW_Z_OFF 2
#define WRIST_X_OFF 3 //腕部关节
#define WRIST_Y_OFF 4
#define WRIST_Z_OFF 5
#define FINGERS_X_OFF 6 //手指根部
#define FINGERS_Y_OFF 7
#define FINGERS_Z_OFF 8
#define FOOT_LEN 9 //脚踝到脚掌底部
#define HEEL_LEN 10 //脚踝到脚跟
#define HEAD_H 11 //到颅骨底部
#define NECK_H 12 //到颈部底部
#define SHOULDER_H 13 //到肩窝
#define CHEST_H 14 //到胸部顶部
#define HIP_H 15 //到髋窝
#define HEAD_W 16
#define SHOULDER_W 17
#define CHEST_W 18 //实际上更宽,但我们希望比肩膀窄(尤其是(因内容为游戏代码定义,无实际可汉化的游戏相关文本信息,故按规则删除)#define KNEE_HISTOP 41 #define ANKLE_LOSTOP 42 #define ANKLE_HISTOP 43 #define SHOULDER_LOSTOP1 44 #define SHOULDER_HISTOP1 45 #define SHOULDER_LOSTOP2 46 #define SHOULDER_HISTOP2 47 #define ELBOW_LOSTOP 48 #define ELBOW_HISTOP 49 #define WRIST_LOSTOP 50 #define WRIST_HISTOP 51 #define HEAD_LOSTOP1 52 #define HEAD_HISTOP1 53 #define HEAD_LOSTOP2 54 #define HEAD_HISTOP2 55 创建地图 为《异形竞技场》创建地图的过程可简可繁,具体取决于你的目标。 通常流程如下: 使用AA Radiant(可替换为类似程序)创建地图。 使用提供的地图编译工具编译地图。首先运行Qbsp3,然后是qvis3,最后是qrad3。 创建.fog和.mus脚本文件(用于雾效/天气/特效和音乐)。创建机器人路径文件和机器人玩家文件。
创建关卡截图和信息文件。
《异形竞技场》中的地形创建将在另一章节讨论,目前这是一个较为复杂的过程。
有许多方法和指南介绍了优秀的地图制作流程。查看其他地图总是有益的,无论是《异形竞技场》《雷神之锤》《虚幻竞技场》还是其他竞技场射击游戏的地图。
地图的规模和布局应简洁明了。新手地图制作者往往急于创建大规模、宏大的地图,结果往往导致游戏体验不佳且性能表现糟糕。另一个常见错误是制作冗长乏味的走廊,或者缺乏垂直空间的关卡。确保地图有充足的光照和可见度。除非尽头有奖励,否则不应存在死胡同。地图布局应流畅自然,呈循环结构,并尽可能具备一定的复杂性。
静态网格可用于增添细节,甚至构建建筑(注意:所有静态网格都需要制作裁剪刷)。可通过rscript着色器添加植被,在地图编译测试无误后,可在第二条qrad3命令中使用-refine选项生成高清光照贴图。着色器还可用于其他元素,如灯光、镜头光晕以及其他图形效果,例如反光表面、水体等。
天气效果文件格式如下:
0.2 //红色雾
0.4 //绿色雾
0.4 //蓝色雾
50 //雾开始距离
4000 //雾结束距离
0.