魔兽争霸录像观看器观看录像自动弹出来是怎么回事,

没想到这么多赞,当初这样答完全是因为看到大家都已经讲了rep的本质,于是就补充一下当初自己是怎么理解录像中的随机种子的。再改一下吧,手机打字比较辛苦,链接也不好弄,望见谅。首先正面回答答主的问题,为什么rep会小?其他的答主也都给出了***,在这里尤为推荐杨浩的***在该***中他给出了rep的描述文档,如果大家可以看懂那个的话可以直接跳过我的简单举例子***。下面我同样是以举例子的角度正面回答题主的问题。rep文件不是传统意义上的录像,话剧中的“剧本”这个实际生活中的概念和它更接近。每当玩家们看录像时,游戏内的模型、数值、算法等资源就被调动,相当于话剧演员穿戴服装道具在舞台上重新演了一遍。相对于把整部话剧拍下来的视频文件大小而言,话剧的剧本的文本量则必然会小得多。而至于有的朋友提问为什么rep在播放时会出错,与原先的实际情况不一致?大家可以这样理解,剧本在印制或派发时出现了缺页或污损,演员们看不懂不会演了。在游戏中类似道理的应用就是用即时演算替代cg。下面是原***,只说了随机种子部分。=================================补充一下,在理解rep只是存储操作指令和单位状态后,我小时候还一直不清楚几率相关的东西是怎么存进rep的,比如攻击力在魔兽中是个范围而不像在星际中是个确定数值,剑圣/dh这刀是否暴击/被闪避,坡下打坡上是不是miss,直到我接触了伪随机数。直到现在和别人解释伪随机数时我都用星际魔兽rep里的暴击作为材料。粘贴评论中的举例:为简化,假设剑圣暴击率是10%,2倍暴击,而平砍伤害是10-20,剑圣砍了一刀,实际伤害30(15*2),第二刀坡下砍坡上,miss了。如果在rep中直接储存暴击30,第二刀miss也是可以的,但是这样显然要把剑圣一局游戏中的每一刀都要存下来,较为占用空间。而rep中采用的做法是,魔兽游戏中生成了一个伪随机数序列,这个序列在游戏中,不在rep里,但是rep播放时可以调用。例如取0-1的均匀分布,比如0.753、0.500、0.988、0.132、0.781、0.646………均匀分布即为在0-1中取到这些数中的每一个概率是一致的),然后在rep中记录随机数种子(随机数开始的序列位置)。例如本rep种子为1,即从0.753开始。剑圣第一刀坡下砍坡上,命中率70%,可以等价于伪随机数值大于0.3即命中,而0.753大于0.3,故命中。下面实际攻击取10+(20-10)*随机数,此处为0.5,故攻击为15。下面计算暴击,和命中类似,随机数大于0.9即为暴击,此处为0.988,满足,故最终伤害为30。第二刀由于0.132小于0.3,故miss。作为rep,只需要存储剑圣的坐标、命令和种子数1,就能再现这两刀。此外其他游戏里的掉宝率也是这样的,例如暗黑。那个哥布林在你决定杀他的一刹那,他掉什么已经确定了,所以叫伪随机。ps:我们打wow时说组了个黑手,这个CD就被他黑了,是有道理的。关于更真实更复杂的实际情况,牵扯到概率的补偿,不会永远让你感到黑手没法玩(例如最近wow中好运币roll装备若没roll到则几率越来越高)。请参考评论中zy RSN的说明。对于近战坡下砍坡上不会miss的问题,我搞错了,答题时也忽略了这个事实。那大家把例子想成DOTA里带水晶剑的远程英雄(不带金箍棒克敌机先)吧。虽说有点走题,不过关于魔兽世界中的掉落问题,确实如评论中所说,是在第一个人进入副本时根据掉落表生成的。不过我想表达的意思没有变,随机的事物实际上往往是不那么随机的。至于掉落表怎么做,实际掉落生成方式怎么设计,这个水很深,超出了我认知范围,还是请专业的数值人员来回答吧。
相信你提出这个问题是以为魔兽的录像文件是份视频,所以才提出了&为什么它只有几百KB&这样的问题,事实上这份文件不是一份视频文件,它实际上是一份自定义格式的文件具体格式和内容可以参考下面的内容。&br&我在GitHub找到的一份非官方发布魔兽3录像格式的文件描述,作者通过逆向工程和自己游戏的经验得出,里面非常详尽地描述了一个录像文件的格式和内容包括哪些东西,帮助你了解;&br&录像原理简而言之:魔兽客户端就是一个播放器,录像就是输入内容,播放器根据输入播放输出,其中的格式就是自己根据需求定义。&br&&br&1.文件格式目录:&br&文件的目录大致包含以下内容,首先录像文件头包含了版本信息。虽然看到了这个版本的定义,但是对录像文件的数据没有做版本控制,这也是为什么播放录像的时候,如果客户端版本不对,就无法播放的问题。扩展一下,其实这个问题可以在定制录像文件的时候,针对不同部分的数据做特别的版本控制,以此达到兼容的问题,至少可以做到向下兼容。&br&===============================================================================&br&Table of Content 录像文件描述文件目录摘录&br&===============================================================================&br& 1.0 Introduction &br& 2.0 [Header] &br&
[SubHeader] for header version 0&br&
[SubHeader] for header version 1&br&
Version information&br&
WarCraft III The Frozen Throne beta replay information&br& 3.0 [Data block header]&br& 4.0 [Decompressed data]&br&
[PlayerRecord]
玩家记录&br&
[GameName]
游戏名称&br&
[EncodedString]
加密字符串&br&
[GameSettings]
游戏设置&br&
[Map&CreatorName]
地图角色&br&
[PlayerCount]
玩家数量&br&
[GameType]
游戏类型&br&
[LanguageID]
语言ID&br&
[PlayerList]
玩家列表&br&
4.10 [GameStartRecord]
4.11 [SlotRecord]
得分记录&br&
4.12 [RandomSeed]
随机种子&br& 5.0 [ReplayData]&br& 6.0 General notes&br&
Notes on official Blizzard Replays&br& 7.0 Credits&br& 8.0 Document revision history&br&&br&===============================================================================5.0 [ReplayData]&br&===============================================================================&br& 在上面的ReplayData中,包含了录像所有的时间片数据,被细分为多个区块Block,每个块的数据或固定大小,或不固定,数据的都是以一个字节代表blockID,用以标识要跳过某些固定的内容,以实现录像跳过等功能。&br&&br&- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&br&0x1F
- TimeSlot block
时间片数据
[ n+3 byte ]&br&- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&br&
- n = number of bytes that follow
记录时间片数据长度&br&
- time increment (milliseconds)
时间增长量(ms)&br&
about 250 ms in &a href=&///?target=http%3A//battle.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&battle.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
战网250毫秒&br&
about 100 ms in LAN and single player
局域网100毫秒&br&
n-2 byte - CommandData block(s) (not present if n=2)
输入命令数据块&br&&br& For every player which has executed an action during this time slot there is&br& at least one 'Command data block'.&br&&br& CommandData block:&br&
- PlayerID &br&
- Action block length&br&
- Action block(s) (see file 'w3g_actions.txt' for details)&br&&br&这里有两个重要的概念&br&1.&b&TimeSlot Block&时间片数据块&&/b&,魔兽客户端播放录像就是严格按照时间片进行解析播放,时间片数据中主要记录了数据长度和该时间片内游戏中所有对象发生的动作序列,可以参考下面的动作描述文件内容。&br&&b&mandData Block,“命令数据块”&/b&包括玩家的ID, 对应的动作序列长度和动作数据。&br&例如:&br&DD 00 0D 00 - use ability: cripple (UD Necromancer)
[12-44-ID-ClickX/Y-TargetID]&br&这条记录就描述了此刻时间片内发生的事件,亡灵的巫师使用了残废,点击坐标(X,Y),对象的ID是谁谁谁酱紫,然后魔兽客户端内部定义一套播放的接口,根据输入的数据进行播放就能完成播放了。&br&&br&ReplayData中主要数据是一下内容:===============================================================================&br&WarCraft III Replay action format description content 动作描述文件目录摘录&br&===============================================================================&br&
1.0 Introduction&br&
1.1 Standardized APMs&br&
2.0 Action ID's&br&
3.0 AbilityFlags&br&
4.0 ItemID's&br&
4.1 Stringencoded ItemID's&br&
4.2 Numeric ItemID's&br&
5.0 ObjectID's&br&
6.0 Click Coordinates&br&
7.0 General notes&br&
8.0 Notes on older Patches&br&
9.0 Credits&br& 10.0 Document revision history&br&&br&里面就记录一些描述游戏世界中对象的动作数据:&br&eg:&br&Following is a list of alphanumeric ID's found so far:&br&03 00 0D 00 - rightclick&br&04 00 0D 00 - stop&br&&br&08 00 0D 00 - cancel (train, research) &br&&br&0C 00 0D 00 - set rally point&br&&br&0F 00 0D 00 - attack&br&10 00 0D 00 - attack ground (e.g. Orc Catapult)
&br&&br&12 00 0D 00 - move unit&br&&br&16 00 0D 00 - patrol&br&&br&19 00 0D 00 - hold position&br&&br&- - - - - -&br&21 00 0D 00 - give away item (from inventory to unit or ground)
&br&- - - - - -&br&22 00 0D 00 - swap item place 7 (slot of item to swap with!)&br&23 00 0D 00 - swap item place 8&br&24 00 0D 00 - swap item place 4&br&25 00 0D 00 - swap item place 5&br&&br&&b&2.格式读取说明&/b&&br&这里以PlayerRecord说明一下里面的具体录像格式,按照二进制的方式读取的&br&其中offest代表流的偏移,size/type代表读取的数据大小,这样就能精准的定位到具体的数据了。&br&4.1 [PlayerRecord]&br&- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&br&- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&br&&br&offset | size/type | Description&br&-------+-----------+-----------------------------------------------------------&br&0x0000 |
| RecordID:&br&
0x00 for game host&br&
0x16 for additional players (see 4.9)&br&0x0001 |
| PlayerID&br&0x0002 |
| PlayerName (null terminated string)&br&
| size of additional data:&br&
0x01 = custom&br&
0x08 = ladder&br&&br&BTW:&br&&b&回答一下,顶楼的问题:&br&“掉落表怎么做,实际掉落生成方式怎么设计,这个水很深,超出了我认知范围,还是请专业的数值人员来回答吧”&/b&&br&我不是专业数值,其实掉落就是实现一个权重概率的问题,游戏设计策划人员会配置一个掉落库,包括掉落的物品ID,掉落权重,然后在怪物配置里面去绑定掉落的信息,魔兽里面的怪物都是一个野怪会掉落不同的物品,这是一对多的关系,然后实现权重就可以了,权重也是伪随机,就是说如果记录下了随机种子,那随机结果就是唯一且确定的,所以录像中一定会保留所有产生的随机种子,这样所有游戏随机的结果也就被记录下来了。&br&&br&赶脚剑圣录像中的台词是不是都是都一样呢?For the burning Blade!&br&&br&&br&参考文件地址:&br&&a href=&///?target=https%3A///dengzhp/1185519& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WarCraft III Replay file format description&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//w3g.deepnode.de/files/w3g_actions.txt& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&w3g.deepnode.de/files/w&/span&&span class=&invisible&&3g_actions.txt&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
相信你提出这个问题是以为魔兽的录像文件是份视频,所以才提出了"为什么它只有几百KB"这样的问题,事实上这份文件不是一份视频文件,它实际上是一份自定义格式的文件具体格式和内容可以参考下面的内容。 我在GitHub找到的一份非官方发布魔兽3录像格式的文件…
除了楼上所说的,还有一点很重要,就是对于随机事件记录了随机的种子,以保证随机序列一致(比如AC在比赛中一次攻击是3,每次播放录像时必须是3)
除了楼上所说的,还有一点很重要,就是对于随机事件记录了随机的种子,以保证随机序列一致(比如AC在比赛中一次攻击是3,每次播放录像时必须是3)
已有帐号?
无法登录?
社交帐号登录您现在的位置: &
> 魔兽常见问题——如何保存观看录像
魔兽常见问题——如何保存观看录像
天极网游戏频道
责任编辑:>周序
  保存录像:
  在一局游戏结束后,会出现得分表,此时右下有两个按钮,其中一个就是“保存录像”,点击后会出现对话框要你输入文件名,你的录像会以这个名字命名,录像保存在你魔兽***目录下的replay文件夹中。如果你忘记保存录像,可以到这个文件夹中寻找一个名为LastReplay的文件,这就是你最近一次游戏的录像,是系统自动保存的。
  观看录像:
  大部分下载的录像已被制成压缩包,先要解压,解压出来的文件放到魔兽***目录下的replay文件夹中,然后启动游戏,选择单人模式,里面就有观看录像的选项。你必须有录像所用的地图(地图文件名也要完全一致),并且地图文件要放在录像的录制者相同的文件夹中,观看录像时所用的魔兽版本也要和录像录制时使用的魔兽版本相同。
······
关注此文读者还看过·········
文章阅读排行周排行月排行
欢迎订阅天极网RSS聚合资讯:    魔兽争霸为什么一开始游戏就自动退出还弹出一个英文窗口 - 爱问知识人
(window.slotbydup=window.slotbydup || []).push({
id: '2491531',
container: s,
size: '150,90',
display: 'inlay-fix'
为什么一开始游戏就自动退出还弹出一个英文窗口
您的举报已经提交成功,我们将尽快处理,谢谢!
是不是你下的版本不对
现在这世道,求别人还“速度搞定”,冲你这话就没人告诉你。玩不起就别玩,少在这的瑟。
电脑问题,看看是不是进病毒了
试下重装游戏,如果不行可能是显卡问题。
大家还关注您的举报已经提交成功,我们将尽快处理,谢谢!
楼主想看不同版本的录像可以下载一个叫做“RepKing”的软件,安
装后此软件后如果录像的版本或者地图与你电脑中的魔兽不符,就
大家还关注

参考资料

 

随机推荐