海上突袭场景的构成要素
导航网格(Navigation Mesh)
- 工作方式与村庄场景类似。
- 在使用两个独立关卡(Level)创建的场景中,对于
land_raid关卡(请查看“村庄场景的构成要素”文档),naval_raid关卡中陆地上的所有导航网格必须具有ID 0。 - 智能体(Agent)可以在水深达1.40米的水中行走。因此,ID 0的导航网格应烘焙至1.40米深;如果水更深,智能体将会游泳。
出生点(Spawn Points)
- 所有出生点必须位于软边界(Soft Borders)内。
- 所有出生点必须放置在导航网格之上。
- 战斗出生点:
- 所有防守方出生点必须位于防守方边界(Defender Boundaries)内。
- 预制体(Prefab):
naval_battle_set - 将该预制体中防守方的部分放置在陆地上,进攻方的部分放置在海/河中。
- 进攻方出生点不应离海岸太近。
- 确保所有防守方出生点周围有足够的空地,以便部队能够正常出生。
- 尽可能将防守方的增援出生点移出视线范围,但不要离前线太远。
- 由于突袭可以使用3艘船进行,你可以将进攻方步兵、弓箭手和骑兵的出生点朝向他们在水中将要行进的方向。
- 进攻方出生点之间的距离应根据船只尺寸进行调整。
- 如果正在准备河流场景,必须保证河流足够宽,以便大型船只能够自由移动。
- 所有防守方出生点必须位于防守方边界(Defender Boundaries)内。
战术位置(Tactical Positions)
- 预制体:
tactical_position - 在脚本(Script)中使用
chokepoint战术位置类型,并根据你希望步兵驻守和防御的区域调整其大小。 - 使用
cliff战术位置作为弓箭手的大致放置位置。此位置决定了弓箭手的总体所在地,他们会从这里分散到各个strategic_archer_point实体,并在撤退时返回此处。 cliff战术位置预制体应作为chokepoint战术位置预制体的子对象使用。- AI会根据预制体的旋转方向以及脚本中定义的宽度来确定自己的位置。


战术与战略弓箭手位置
- 预制体:
strategic_archer_position - 定义单个弓箭手将前往的位置。场景中可以添加多个这样的实体;所有参战的防守方弓箭手将分布在这些位置之间。
- 要将远离主战场、被用于早期骚扰来犯船只的弓箭手重新调回战场,你有两种战术选择:
- 选项A(
unsafe_archer_point): 如果你给这些实体赋予unsafe_archer_point标签(Tag),一旦船只完成登陆,这些弓箭手将自动后撤到主战场(cliff战术位置)以重新加入积极防御。 - 选项B(
volume_box_archer_point): 如果你想要更精确的控制,可以使用volume_box_archer_point标签(同时应用于弓箭手位置和对应的volume_box)。这样可以确保弓箭手会坚守自己的位置,只有当敌人真正突破了你所指定的体积区域(Volume Box)时才会后撤到cliff战术位置。

体积区域触发点(Volume Box Trigger Point):
- 预制体:
volume_box - 标签:
volume_box_archer_point - 此设置作为弓箭手调动的空间触发器。与登陆时触发的
unsafe_archer_point不同,这允许根据进攻方的推进情况进行精确控制。 - 设置规则:
volume_box_archer_point标签必须同时分配给volume_box实体本身以及所有你希望被该特定区域触发的strategic_archer_point实体。 - 行为:当任何进攻方进入被标记的
volume_box时,驻守在匹配标记的strategic_archer_point实体处的所有弓箭手将立即开始向cliff战术位置撤退。

玩家视角点(用于防守方)
- 使用
arrow_new_icon预制体并为其分配player_spawn_frame标签。 - 玩家将面向箭头所指方向出生。
- 注意:箭头的旋转方向和朝向至关重要,因为它们直接决定了玩家出生时的初始视野。
登陆点(Landing Points)
- 必须在海岸上使用正确的标签放置3个空实体,以供3艘船登陆:
- 进攻方步兵船登陆标签:
landing_001_0 - 进攻方弓箭手船登陆标签:
landing_002_0 - 进攻方骑兵船登陆标签:
landing_003_0
- 进攻方步兵船登陆标签:
- 确保海岸上各船只登陆点之间有足够的距离。
- 对于你希望船只在水中遵循的航线,你可以为放置在水中的空实体赋予类似的标签。
- 例如:对于步兵船,从近到远依次为:
landing_001_1、landing_001_2、landing_001_3。在这种情况下,naval_battle_set中的进攻方步兵出生点将首先以landing_001_3为目标,然后依次以其他点为目标,最终到达landing_001_0。
- 例如:对于步兵船,从近到远依次为:
- 所有实体的朝向都必须面向下一个目标登陆实体。
- 最终目的地
landing_00x_0的朝向必须设置正确,以确保船只能在海岸正确靠岸。

跳跃点(Jumping Points)
- 用于指示从船上跳到岸上的智能体应朝哪个方向移动。
- 为每艘船使用带有标签
jumping_001、jumping_002、jumping_003的空实体,并且它们必须是其对应的最终登陆点的子对象。
- 例如:带有
jumping_001标签的实体必须始终是landing_001_0实体的子对象。
- 例如:带有
- 应调整旋转方向,以确保智能体使用最合理的机制(Mechanics)离开船只。
逃跑位置(Flee Positions)
- 逃跑中的部队和马匹将奔向的位置。
- 确保它们位于软边界内,并且下方有导航网格。
软边界(Soft Border)
- 预制体:
border_soft - 这些实体定义了场景的红色边界。
- 放置后,它们会通过连接两个最近的边界实体形成一个多边形。
- 要查看当前边界,请导航至
Visibility Window(可见性窗口)->Visibility Masks(可见性遮罩),并启用Borders(边界)。 - 设计说明:确保这些边界的布局能够防止玩家滥用地图边界或找到意外的逃脱路线。
声音与氛围
- 工作方式与村庄场景类似。
- 确保环境音效能反映出海战的特性。
- 氛围在所有季节和时间段内看起来都必须保持一致。
游戏玩法设计提示
- 在船只靠岸之前让它们遭受炮火攻击会增强史诗般的战斗感。你可以将弓箭手放置在更远的地方,以便在早期射击船只。为确保这些弓箭手能重新加入前线防御而不是被落下,你可以使用
unsafe_archer_point标签,在船只登陆时触发它们后撤至cliff战术位置,或者利用volume_box_archer_point设置,在敌人到达场景中特定区域时精确触发它们的转移。 - 在场景中使用实体的瓶颈区域(Chokepoints)将增加进攻方的难度。
- 确保场景在夜间也能良好运行。
- 为了保持”村庄突袭”的氛围,确保战斗不会在离村庄区域太远的地方开始或结束。
本页面由 AI 翻译,可能存在不准确之处。请以英文原版为准。
