SuperAPI AI 工具集

genre-shooter

设计与创作

查看项目

更新于 10-31 12:25

技能介绍

用途

该技能用于射击类游戏(FPS/TPS)的地图与道具制作,重点处理视线、掩体、地标、战利品可读性,以及针对相机高度(FPS 与 TPS)的比例问题。

主要能力

技能提供一套“配方”(Recipe),覆盖以下环节:

  • 视线驱动的关卡布局:掩体高度分为 1.0–1.2 m(蹲伏)与 1.8 m(站立),通道宽度 4–8 m,FPS 眼高 1.6 m,所有掩体需带碰撞。
  • 先用 blockout.py 做掩体粗模:腰高箱体(1.0–1.2 m,胸高 1.4 m)排成环形或线形,间距 3 m 以上,使用 face_center 让长边朝向战斗方向。
  • 用 make_collision.py 为掩体生成碰撞(shape box,engine unreal)。
  • 用 bevel_stack.py 对掩体边缘倒角(width 0.01,segments 1),使边缘能捕捉光线。
  • 用 scatter_props.py 散布低矮掩体道具(count 10,kinds [box, barrel, pallet])。
  • 用 light_rig.py 以 overcast 预设打光,获得公平、可读的可见度。
  • 用 camera_rig.py 设置眼平相机:lens_mm 24,eye_height 1.6(FPS 眼高),max_distance 3.0,使相机保持在 4 m 掩体环内。随后检查 cam.occluded_by:若非空,则移动相机,不要交付。

使用方式

技能以 Python 代码片段形式给出,通过 runpy 依次调用各脚本,示例代码(保留原样):

import runpy
skills = "<skills_dir>"  # parent folder of this skill (the plugin's skills/ directory)
target = "SM_Asset"      # object to style / dress
r = {}
r["cover"] = runpy.run_path(f"{skills}/environment-artist/scripts/blockout.py", init_globals={"ARGS": {"group": "Cover", "pieces": [{"kind": "box", "size": [1.8, 0.6, 1.1], "name": "COVER"}], "layout": {"pattern": "ring", "count": 6, "radius": 4.0, "center": target, "face_center": True}, "bevel": 0.02}})["result"]
r["bevel"] = runpy.run_path(f"{skills}/hard-surface/scripts/bevel_stack.py", init_globals={"ARGS": {"objects": [target], "width": 0.01, "segments": 1}})["result"]
r["col"] = runpy.run_path(f"{skills}/collision-proxy/scripts/make_collision.py", init_globals={"ARGS": {"objects": [target], "shape": "box", "engine": "unreal"}})["result"]
r["props"] = runpy.run_path(f"{skills}/set-dressing/scripts/scatter_props.py", init_globals={"ARGS": {"target": target, "count": 10, "kinds": ["box", "barrel", "pallet"]}})["result"]
r["light"] = runpy.run_path(f"{skills}/lighting/scripts/light_rig.py", init_globals={"ARGS": {"preset": "overcast", "target": target}})["result"]
r["cam"] = runpy.run_path(f"{skills}/camera-cinematography/scripts/camera_rig.py", init_globals={"ARGS": {"name": "CAM_FPS", "target": target, "lens_mm": 24, "eye_height": 1.6, "max_distance": 3.0}})["result"]
if r["cam"]["occluded_by"]:
    raise RuntimeError(f"camera blocked by {r['cam']['occluded_by']}")
result = r

参考数值

项目 数值
FPS 眼高 1.6 m(蹲伏 1.0 m)
低掩体 1.0–1.2 m
高掩体 1.8–2.2 m
通道宽度 4–8 m
门洞 1.1 x 2.2 m
走廊 2.5–3 m

适用场景

适用于 FPS/TPS 竞技场、掩体布局、视线设计,或第一人称相机检查。

限制

资料未提供该技能的收费、价格、平台支持范围、效果保证或额外使用步骤,相关内容暂未提供。