WildWorld: A Large-Scale Dataset for Dynamic World Modeling with Actions and Explicit State toward Generative ARPG

1. Motivation(研究动机)

现有 interactive world model 与 action-conditioned video generation 方法虽然已经能在 camera control、keyboard input、prompt switching 等设定下生成可交互视频,但训练数据通常存在两个根本问题。第一,已有数据集的 action space 过于简单,往往只包含移动、视角变化等低语义密度动作,难以覆盖复杂游戏或真实代理中的技能释放、攻击连段、受击、死亡、协作等丰富交互。第二,很多动作的影响并不直接体现在像素上,而是先作用于 latent / explicit state,例如 health、cooldown、animation phase、entity relation,再通过状态转移影响后续视觉观测。若数据只提供 video 与表层 action,而缺少 state supervision,模型就容易把动作与局部像素变化硬绑定,难以学到结构化的长期动态。

这篇论文要解决的问题,是如何构建一个适合训练和评测显式状态驱动 world model的大规模数据集与 benchmark。作者选择从 photorealistic AAA ARPG《Monster Hunter: Wilds》中自动采集数据,目的是同时获得:大规模视频、丰富动作语义、逐帧状态标注、相机姿态、骨架、深度等多模态监督。相比“只做一个更大视频数据集”,WildWorld 更强调 action → state → observation 的中介结构,这使它更贴近 reinforcement learning 与 dynamical systems 中对 world evolution 的定义。

该问题值得研究的原因在于:如果没有合适的数据与 benchmark,世界模型很难真正服务于 planning、interactive agent、AI-native game、long-horizon reasoning 等场景。论文实验也表明,哪怕现有方法在传统视频质量指标上已经接近饱和,它们在 Action Following 与 State Alignment 上依然明显不足,说明新的数据和更针对性的评测是必要的。

2. Idea(核心思想)

论文的核心思想是:把动作条件 world modeling 从“像素级控制”推进到“显式状态中介的结构化控制”。作者并不只提供 action-conditioned video,而是构建一个带有逐帧 action、skeleton、world state、camera pose、depth 和层级 caption 的大规模数据集 WildWorld,并基于这些标注提出 WildBench,用于评测模型是否真正遵循动作并维持状态一致性。

更具体地说,这篇论文的关键创新有两点。第一,数据层面,它设计了从 AAA 游戏自动采集多流同步数据的完整管线,既保留了高保真视觉内容,又获得了传统现实视频难以直接标注的精细状态。第二,评测层面,它提出了 Action Following 与 State Alignment 两个更贴近 interactive world model 本质的指标,用来弥补 VBench 之类通用视频指标对交互性和状态演化评估不足的问题。

与已有方法的根本差异在于:以往工作主要把 action 当作外部控制信号直接约束 video generation;而 WildWorld 试图把 state 明确为动作作用于视觉之前的中间表示,并用数据集和 benchmark 强化这种建模范式。

3. Method(方法)

3.1 Overall framework

论文方法部分实际上包含两层内容:一层是 WildWorld 数据集构建框架,另一层是 WildBench + baseline world model 设计。其中前者是论文最核心的方法贡献,后者用于验证该数据集和 benchmark 是否能揭示 interactive world model 的真实能力边界。

Figure 1 解读:图 1 是论文的 teaser / overall summary。它强调 WildWorld 来自《Monster Hunter: Wilds》这一 photorealistic AAA ARPG,具有大规模、高动作多样性与显式状态标注等特点。图中通常会同时展示多角色、多怪物、多场景与多模态标注信号,目的是说明该数据集不是单纯的视频集合,而是一个可用于研究 action-conditioned state-aware world modeling 的综合平台。

Figure 2 解读:图 2 展示了 WildWorld 的完整 curation pipeline。最左侧是 Data Acquisition Platform,包括 Automated Game Play System 与多流同步录制;中间是带 timestamp 的多模态记录,包括 action / state JSON、camera pose、skeletal pose、RGB 与 depth;右侧是 Data Processing and Annotation Pipeline,包括 timestamp alignment、异常帧过滤、多维 sample filtering,以及 action-level / sample-level hierarchical caption 生成。整张图清楚传达了作者的方法主线:先获得高质量同步状态与视觉流,再通过过滤与文本标注把原始记录转化为适合 world model 训练和评测的数据样本。

3.2 Key components

3.2.1 Data acquisition platform

论文首先搭建了一个游戏内自动采集平台。为了避免人工玩游戏导致的数据规模和分布受限,作者在《Monster Hunter: Wilds》中构建 automated gameplay system。这个系统包含两部分:

  1. Quest selection automation:通过调用游戏引擎的 UI 组件,程序化地导航菜单,并随机采样 quest-NPC 组合,从而覆盖不同地图、怪物和队伍配置。
  2. Automated combat:利用游戏内置的 rule-based companion AI 与 behavior tree,让角色在没有人工干预的情况下进行战斗,同时把相机绑定到原生 target-lock camera system,使战斗和观察能自动持续进行。

作者专门解释了一个潜在疑问:rule-based AI 会不会导致行为过于单一?他们认为不会,理由有二:一是动作组合空间本身很大,AI 需要根据怪物行为不断决定 timing 与 positioning;二是多角色与 reactive monster 的耦合互动构成了高维动态系统,即便脚本逻辑相同,不同 session 轨迹也会明显变化。

这一部分的重要性在于,它解决了大规模 interactive dataset 最难的问题:如何稳定、持续、低人工成本地收集复杂动作交互轨迹

3.2.2 Multi-stream recording system

作者随后设计了多流同步录制系统。结构化状态信息如动作、health、cooldown、location、rotation、velocity 等,在每个 engine tick 直接以 JSON 序列化写入本地文件。视觉流部分则更复杂:因为标准渲染设置下整个屏幕通常只有 RGB 视图,所以作者基于 OBS Studio 与 Reshade 做了专门系统。

具体做法是:

  • 使用定制 Reshade shader,把完整显示划分为四个 sub-window,其中两个分别显示 RGB 与 depth render buffer;
  • 将全屏分辨率设置为 2K,因此每个子窗口约为 720p;
  • 修改 OBS Studio,同步录制多个 screen sub-window,得到独立的 RGB / depth recording streams;
  • RGB 使用有损 HEVC 可变码率录制,target bitrate 为 16 Mbps、max 20 Mbps,以压缩存储成本;
  • depth 使用无损方式编码,以避免几何信息被压缩伪影破坏;
  • 在不同源的录制结果中嵌入 timestamp,为后续跨源同步提供统一依据。

这一步的核心贡献是保证不同模态之间具有逐帧级别的可对齐性。没有 timestamp-embedded multi-stream recording,就无法把状态、骨架、相机与视频可靠地绑定起来。

3.2.3 Data processing and annotation pipeline

Figure 3 解读:图 3 总结了数据集统计信息,包括数据组成、样本时长分布以及动作频率分布。图 3(a) 展示角色类型、怪物种类、场景类型与 combat/travel 比例;图 3(b) 展示样本帧数分布,体现大量长时序片段;图 3(c) 展示 top-150 action ID 的长尾分布。该图直接支撑了论文关于 entity diversity、long-horizon dynamics 与 action richness 的论点。

原始多流记录仍可能存在错帧、掉帧、遮挡、cutscene、极端亮度等不适合训练 world model 的问题,因此作者设计了多维 filtering pipeline:

  • Duration Filtering:丢弃长度小于 81 帧的样本;
  • Temporal Continuity Filtering:若相邻帧 timestamp gap 超过目标帧间隔的 1.5 倍(约 50 ms at 30 FPS),则认为存在 stuttering 或 shot-cut,剔除该样本;
  • Luminance Filtering:在 YUV 的 luma channel 上过滤连续超过 15 帧的极亮/极暗片段;
  • Camera Occlusion Filtering:利用 third-person spring-arm 的长度变化检测前景遮挡;若 camera-character distance 持续异常偏小,则剔除;同时过滤 fast travel 等会破坏连续性的 abrupt position change;
  • Character Occlusion Filtering:将 3D skeletal keypoints 投影到首帧屏幕坐标,若角色之间 overlap area 超过任意一方投影面积的 30%,则剔除。

过滤之后,作者继续构造 hierarchical caption annotations。他们先根据逐帧 action ID 把样本切分成 action sequences,每个 sequence 内 action 不变;然后对每个 sequence 以 1 FPS 抽取 RGB 帧并缩放到 480p,使用 Qwen3-VL-235B-A22B-Instruct(通过 vLLM 部署)生成细粒度 action-level captions;为缓解模型对游戏场景不熟悉的问题,还把对应 action 与 state ground truth 作为 prompt context 提供给 caption model;最后再用 Gemini 3 Flash 对一个样本内的全部 action sequence caption 做总结,生成 sample-level caption。

这一设计非常关键,因为它让数据集同时服务于:

  • state-aware video generation;
  • prompt switching / controllable generation;
  • 更细粒度的 evaluation。

3.2.4 Dataset statistics and representation design

WildWorld 最终包含 108M frames,每帧有 119 annotation columns。它覆盖:

  • 29 种 monster species;
  • 4 个 player characters;
  • 4 种 weapon types(Great Sword, Long Sword, Bow, Dual Blades);
  • 5 个开放世界 stage;
  • 66% combat / 34% travel 的场景分布。

在时序上,多数 clips 长度分布在 4,000 到 28,000 帧,少量超过 40,000 帧,这意味着数据集中不仅有短交互,也包含超过 30 分钟的长程连续片段。空间上,camera-to-character median distance 为 15.69,character-to-monster median distance 为 12.63,说明主体通常处于镜头核心区域,动作细节可见性较好。

在动作表示上,角色状态被编码为 (weapon type, bank ID, motion ID) 三元组,共形成 5,960 个唯一 character action triplets,覆盖 24 banks455 motion IDs;monster 则有 2,132 个 action pairs,覆盖 13 banks527 motion IDs。这让该数据集的动作空间明显超出一般 keyboard-control 或 camera-control 数据集。

3.2.5 WildBench benchmark design

WildBench 从四个维度评估 interactive world model:

  1. Video Quality:使用 VBench 的四个指标,分别是 Motion Smoothness (MS)、Dynamic Degree (DD)、Aesthetic Quality (AQ)、Image Quality (IQ)。
  2. Camera Control:用 structure-from-motion 模型从生成视频估计 camera trajectory,并与 ground-truth trajectory 对齐后,计算 Absolute Trajectory Error (ATE) 与 Relative Pose Error (RPE)。论文中实际使用 ViPE 做 camera trajectory estimation。
  3. Action Following:基于逐帧 action ID,把每个 sample 切成 action segments;对每个 segment,从 generated video 与 GT video 中截取对应片段,交给 Gemini 3 Flash 判断二者是否表达同一动作。动作被分为 movement、fast displacement、attack 三类,并为每类设计专门 prompt。每个 segment 一致记为 1,否则为 0,最终对所有 segment 取平均。
  4. State Alignment:将 player 与 monster 的 pose 作为 state proxy。借助 WildWorld 的 GT skeleton,将关键骨点投影到屏幕 2D 坐标,得到 GT trajectories;对生成视频,由于 image-to-video 任务首帧与 GT 相同,因此从首帧初始化关键点,并用 TAPNext 跟踪后续帧中的 keypoints。然后计算 predicted trajectory 与 GT trajectory 的 mean coordinate accuracy。每个 keypoint 的 accuracy 定义为:在阈值 4、8、16、32 pixels 下,预测点落入容差范围的帧比例的平均值。

如果用公式表达,State Alignment 可写成近似形式:

其中 是生成视频中第 个关键点在第 帧的位置, 是 GT 位置。总体 State Alignment 则是对所有 keypoints 再取平均:

Action Following 本质上是一个 segment-level binary consistency 平均值,也可写成:

这里 是第 个 action segment 是否与 GT 动作一致的判定结果。

评测集方面,作者从 WildWorld 中人工筛选出 200 个 representative samples,覆盖不同 difficulty、combat scenario、character / monster type,以及 skill usage、knockdown、death、critical hit 等事件。其中 100 个样本是 player+NPC 对 monster 的协作战斗,另外 100 个是一对一战斗。

3.2.6 Baseline interactive world models

论文并非提出一个全新 SOTA 生成模型,而是围绕 WildWorld/WildBench 构建了几类 baseline / controlled variants:

  • BaselineWan2.2-TI2V-5B
  • CamCtrl:基于 Wan2.2-Fun-5B-Control-Camera,输入 camera trajectory、initial image、text prompt,直接用 WildWorld 的 per-frame camera poses 进行 fine-tuning。对比中,baseline 需要先把离散相机动作转换为 camera poses,再计算 Plücker embeddings 注入模型;CamCtrl 直接使用 GT pose,控制更精确。
  • SkelCtrl:基于 Wan2.2-Fun-5B-Control 的 skeleton-conditioned video-to-video 设定。输入是首帧和 skeleton video;其中 skeleton video 由 WildWorld 的 3D skeleton keypoints + joint tree,在 GT camera pose 下投影到 screen coordinate 后渲染而成。
  • StateCtrl:在 CamCtrl 基础上引入 state embedding。作者把状态分成 discrete states(如 monster type、weapon category)和 continuous states(如 coordinates、health)。离散状态通过 trainable embedding 映射,连续状态通过 MLP 编码到同一特征空间。然后采用层次化表示:entity-level states 与 global-level states 共同输入 transformer 建模 entity relations,得到 unified state embedding;该 embedding 与 video frames 对齐后注入 DiT 中间层作为 conditioning signal。同时引入 state decoderstate predictor:前者保证 state embedding 保留原始状态信息,后者预测 next-frame state,从而增强时序一致性。
  • StateCtrl-AR:推理时只给首帧 GT state,后续 state 由 state predictor 自回归生成,再继续作为 conditioning input。

Figure 4 解读:图 4 给出不同 interactive world modeling approach 的定性对比。顶例中 CamCtrl 虽然能跟住 camera motion,但难以复现 monster dynamics;底例中 StateCtrl 生成的主体更清晰,而 SkelCtrl 更能还原地面飞沙、遮挡等具体动作细节。这张图体现了论文一个重要结论:不同控制信号在“video quality vs interaction faithfulness”之间存在 trade-off。

3.3 Math formulas and objectives

论文没有给出完整训练损失的显式公式,但根据文字描述,StateCtrl 至少包含三类目标:

  1. Video generation objective:继承底层 DiT / video diffusion backbone 的标准生成损失;
  2. State decoder loss:约束 state embedding 能恢复原始状态;
  3. State predictor loss:监督 next-frame state prediction,提高 temporal consistency。

可将其概括为:

其中:

  • 是视频生成 backbone 的训练目标;
  • 约束 embedding 保留 state information;
  • 约束 state transition 可预测。

由于论文未公开更细的 loss 定义和权重,具体形式论文未详细说明

3.4 Pseudocode(基于论文与公开仓库现状)

我按要求搜索了代码仓库。基于当前公开 GitHub 页面可见内容,公开仓库 https://github.com/ShandaAI/WildWorld 的结构非常精简,仅能确认 assets/README.mdLICENSE 等顶层内容,未见训练脚本、模型定义、loss、benchmark 实现或数据处理代码。因此下面伪代码只能基于论文明确描述的方法流程来组织,并在标题中注明属于 paper-faithful reconstruction,而非源码逐行映射。

以下所有代码块均为基于论文描述重建的说明性伪代码,不对应公开仓库中的真实文件、类名、函数名或训练实现。

(a) Reconstructed pseudocode for automated game data collection (not released source code)

import random
from typing import Dict, List
 
 
def run_auto_collection(game_api, quest_pool, npc_pool, recorder, max_sessions: int):
    all_sessions = []
    for _ in range(max_sessions):
        quest = random.choice(quest_pool)
        npcs = random.sample(npc_pool, k=3)
 
        game_api.navigate_menu_and_start_quest(quest=quest, npc_team=npcs)
        game_api.enable_behavior_tree_ai()
        game_api.bind_camera_to_target_lock()
 
        recorder.start_multi_stream_recording()
        session = []
        while not game_api.session_finished():
            tick_state = game_api.read_structured_state()
            tick_camera = game_api.read_camera_pose()
            tick_skeleton = game_api.read_skeleton_pose()
            timestamp = game_api.read_timestamp()
            recorder.record_json(
                timestamp=timestamp,
                state=tick_state,
                camera=tick_camera,
                skeleton=tick_skeleton,
            )
            recorder.capture_rgb_depth(timestamp=timestamp)
            session.append(timestamp)
        recorder.stop_multi_stream_recording()
        all_sessions.append(session)
    return all_sessions

(b) Reconstructed pseudocode for data filtering and synchronization (not released source code)

from typing import List
 
 
def filter_and_sync_sample(sample, target_fps: int = 30):
    frame_interval_ms = 1000.0 / target_fps
    max_gap_ms = 1.5 * frame_interval_ms
 
    if len(sample.frames) < 81:
        return None
 
    if any(gap > max_gap_ms for gap in sample.timestamp_gaps_ms()):
        return None
 
    if sample.has_extreme_luminance_run(max_consecutive=15):
        return None
 
    if sample.has_camera_occlusion_by_spring_arm():
        return None
 
    if sample.has_fast_travel_or_abrupt_position_change():
        return None
 
    if sample.first_frame_overlap_ratio() > 0.30:
        return None
 
    return sample.align_by_timestamp()

(c) Reconstructed pseudocode for hierarchical caption generation (not released source code)

from typing import List
 
 
def build_hierarchical_captions(sample, qwen_vl, summarizer):
    action_segments = sample.segment_by_framewise_action_id()
    action_level_captions = []
 
    for seg in action_segments:
        frames = seg.sample_rgb_frames(fps=1, resize_to="480p")
        prompt = {
            "frames": frames,
            "action_gt": seg.action_gt,
            "state_gt": seg.state_gt,
        }
        caption = qwen_vl.generate(prompt)
        action_level_captions.append(caption)
 
    sample_level_caption = summarizer.summarize(action_level_captions)
    return {
        "action_level_captions": action_level_captions,
        "sample_level_caption": sample_level_caption,
    }

(d) Reconstructed pseudocode for StateCtrl state encoder and injection (not released source code)

import torch
import torch.nn as nn
 
 
class StateCtrlEncoder(nn.Module):
    def __init__(self, num_discrete_tokens: int, discrete_dim: int, cont_dim: int, hidden_dim: int):
        super().__init__()
        self.discrete_embed = nn.Embedding(num_discrete_tokens, discrete_dim)
        self.cont_proj = nn.Sequential(
            nn.Linear(cont_dim, hidden_dim),
            nn.SiLU(),
            nn.Linear(hidden_dim, hidden_dim),
        )
        self.entity_transformer = nn.TransformerEncoder(
            nn.TransformerEncoderLayer(d_model=hidden_dim, nhead=8, batch_first=True),
            num_layers=4,
        )
        self.out_proj = nn.Linear(hidden_dim, hidden_dim)
 
    def forward(self, discrete_states, continuous_states):
        discrete_feat = self.discrete_embed(discrete_states)
        cont_feat = self.cont_proj(continuous_states)
        fused = discrete_feat + cont_feat
        fused = self.entity_transformer(fused)
        return self.out_proj(fused)

(e) Reconstructed pseudocode for StateCtrl training step (not released source code)

import torch
import torch.nn.functional as F
 
 
def train_statectrl_step(batch, video_model, state_encoder, state_decoder, state_predictor, optimizer):
    video = batch["video"]
    first_frame = batch["first_frame"]
    state_discrete = batch["state_discrete"]
    state_continuous = batch["state_continuous"]
    target_next_state = batch["next_state"]
 
    state_embed = state_encoder(state_discrete, state_continuous)
    pred_video_loss = video_model.compute_generation_loss(
        video=video,
        first_frame=first_frame,
        conditioning=state_embed,
    )
 
    decoded_state = state_decoder(state_embed)
    state_decoder_loss = F.mse_loss(decoded_state, batch["state_target"])
 
    pred_next_state = state_predictor(state_embed[:, :-1])
    state_predictor_loss = F.mse_loss(pred_next_state, target_next_state[:, 1:])
 
    loss = pred_video_loss + state_decoder_loss + state_predictor_loss
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    return {
        "loss": loss.item(),
        "video_loss": pred_video_loss.item(),
        "decoder_loss": state_decoder_loss.item(),
        "predictor_loss": state_predictor_loss.item(),
    }

3.5 Paper claims vs public evidence

由于公开仓库当前未提供训练/模型源码,下面的映射仅限于论文概念与已公开材料之间的对应关系,而不是论文到真实源码实现的映射:

Paper ConceptPublic EvidenceRelease Status
项目概览、数据集介绍、WildBench 概述README.md、项目页已公开说明,未公开实现
方法框架图 / 数据集管线图project page / repository assets 中的 framework figure已公开图示,未公开实现
数据集可视化与统计图repository assets、项目页可视化图已公开图示,未公开实现
训练代码(CamCtrl / SkelCtrl / StateCtrl)代码搜索未找到开源实现未公开
Benchmark 评测代码(Action Following / State Alignment)代码搜索未找到开源实现未公开
数据处理与同步脚本代码搜索未找到开源实现未公开

4. Experimental Setup(实验设置)

4.1 Datasets and benchmark

  • 训练数据集:WildWorld。
  • 规模:108M frames,119 annotation columns / frame。
  • 数据模态:RGB、depth、camera intrinsics/extrinsics、skeletal pose、world states、frame-wise action annotations、action-level captions、sample-level captions。
  • 实体覆盖:29 monsters、4 player characters、4 weapon types、5 stages。
  • 场景分布:66% combat,34% travel。
  • 评测集:WildBench,从 WildWorld 中人工筛选的 200 个样本,其中 100 个是 player+NPC 协作战斗,100 个是一对一战斗。

4.2 Baselines / compared approaches

论文比较了以下方法:

  • Baseline:Wan2.2-TI2V-5B
  • CamCtrl:Wan2.2-Fun-5B-Control-Camera fine-tuned on GT camera trajectories
  • SkelCtrl:Wan2.2-Fun-5B-Control fine-tuned with skeleton video control
  • StateCtrl:在 CamCtrl 基础上加入 discrete/continuous states + transformer state encoder + decoder/predictor
  • StateCtrl-AR:只输入首帧 state,其余 state autoregressively predicted

4.3 Evaluation metrics

  • Video Quality:MS、DD、AQ、IQ(来自 VBench)
  • Camera Control:ATE、RPE
  • Action Following:Gemini 3 Flash segment-level action consistency judgement
  • State Alignment:基于 TAPNext skeleton tracking 的 coordinate accuracy

4.4 Training config

论文明确给出了统一训练设置:

  • resolution: 544 × 960
  • frames per sample: 81
  • frame rate: 16 FPS
  • batch size: 文中段落先写 1,但 Table 1 后紧接着出现“training is performed for 250,000 iterations with a batch size of 8 using the Adam optimizer”,二者存在版面/转写上的不一致;保守起见,这里记录为:论文文本存在 batch size=1 与 batch size=8 的不一致描述。该差异来自论文文本内部描述不一致,笔记仅如实记录,尚不能据此判断哪一项为最终正确配置。论文原文内部存在冲突,笔记不做裁决,仅忠实记录。
  • learning rate:
  • training iterations: 250,000
  • optimizer: Adam
  • inference sampling steps: 50

此外,Action Following 的人工一致性评测使用:

  • 10 volunteers
  • 每个 segment 由 3 位志愿者标注
  • 标注不一致的 segment 会被丢弃,约占全体的 5%

5. Experimental Results(实验结果)

5.1 Main benchmark results

论文表 1 的主要结果如下(ATE/RPE 越低越好,其余越高越好):

MethodMSDDAQIQATE ↓RPE ↓Action Following ↑State Alignment ↑
Baseline96.3899.0050.8165.624.630.1853.7711.29
CamCtrl97.8597.0048.2962.882.020.1383.4615.18
SkelCtrl97.8595.0047.9262.432.550.1092.8122.03
StateCtrl97.4599.0050.8667.780.940.0785.6616.06
StateCtrl-AR97.4399.0050.9067.761.010.0874.6616.13

从表中可以提炼出几个关键结论:

  1. 所有控制方法都显著优于 baseline 的交互相关指标。例如 CamCtrl 相比 baseline,把 ATE 从 4.63 降到 2.02,RPE 从 0.18 降到 0.13,说明真实 camera pose supervision 的价值很高。
  2. SkelCtrl 在 interaction metrics 上最强。它的 Action Following 达到 92.81,State Alignment 达到 22.03,说明直接使用视觉 skeleton signal 作为 control input,能更强地约束动作与状态一致性。
  3. StateCtrl 在 video quality 与 control 之间更平衡。它的 AQ=50.86、IQ=67.78,是表中较优结果,同时 ATE=0.94、RPE=0.07 也是最佳,说明显式状态嵌入在不牺牲图像质量的前提下增强了可控性。
  4. StateCtrl-AR 证明 autoregressive state control 可行,但有误差积累。它的 State Alignment 从 StateCtrl 的 16.06 变为 16.13,整体基本持平甚至略有提升;但 Action Following 从 85.66 掉到 74.66,说明自回归 next-state prediction 的误差更先体现在动作一致性上,而不是明显反映在 skeleton proxy 的 State Alignment 指标退化上。

5.2 Metric validation and ablation-like findings

论文先验证了 WildBench 指标的可靠性:

  • Action Following 与人工判断的一致率为 85%,说明基于 Gemini 3 Flash 的动作一致性判断总体能反映人类偏好。
  • State Alignment 在 GT skeleton 上达到 43.23% coordinate accuracy,表明该指标虽然不完美,但能有效反映 state trajectory alignment。

这虽然不是严格意义上的模块 ablation,但已经是 benchmark 可信度的重要实证支撑。

5.3 Qualitative findings

定性结果显示:

  • CamCtrl 更擅长复现 camera motion,但对 monster dynamics 的建模较弱;
  • StateCtrl 往往生成更清晰的前景主体,因此 IQ / AQ 更高;
  • SkelCtrl 更容易复现飞沙、遮挡、局部动作等强交互信号,因此在 interaction metrics 上表现更强。

这说明 visual control signal 与 latent / state embedding signal 各有偏好:前者更强约束动作,后者更利于画质与整体稳定性。

5.4 Limitations

论文明确或隐含地暴露出几项限制:

  1. 当前公开仓库尚未提供完整训练与评测代码,复现路径还不完整。
  2. WildBench 的 Action Following 使用 LLM-based judge,虽然与人类 85% 一致,但仍然不是完全客观的物理或语义判定器。
  3. State Alignment 仅用 skeleton pose 作为 state proxy,无法完整覆盖所有隐变量状态,如 cooldown、ammo、内部 AI state 等。
  4. StateCtrl-AR 存在明显误差积累,说明要做长期自回归 world model,仍需更强的 transition modeling。
  5. VBench 在该数据集上接近饱和,意味着通用视频质量指标不足以评估高动态交互生成,这也是该论文提出 WildBench 的动机之一。

5.5 Overall conclusion

总体来看,这篇论文最重要的贡献不是提出了一个压倒性的生成模型,而是提出了一个让 state-aware interactive world modeling 可以被规模化研究、被精确评测的数据基础设施。WildWorld 用显式状态、多流同步与长时程复杂动作空间,补上了现有数据集的关键缺口;WildBench 则证明,现有模型在传统视频质量指标之外,仍然在动作跟随与状态一致性上存在明显短板。对后续研究而言,这篇工作更像是 world model 领域的“数据与评测基建论文”,价值非常高。