当前位置:手机游戏 > 手游资讯 > 新手问答 > 魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)

魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)

作者:哪吒游戏网 来源:哪吒游戏网 2020-05-19 12:26:27

魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?),哪吒游戏网给大家带来详细的魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)介绍,大家可以阅读一下,希望这篇魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)可以给你带来参考价值。

知乎用户

183 人赞同了该回答

相信你提出这个问题是以为魔兽的录像文件是份视频魔兽录像怎么看,所以才提出了"为什么它只有几百KB"这样的问题,事实上这份文件不是一份视频文件,它实际上是一份自定义格式的文件具体格式和内容可以参考下面的内容。

我在GitHub找到的一份非官方发布魔兽3录像格式的文件描述,作者通过逆向工程和自己游戏的经验得出,里面非常详尽地描述了一个录像文件的格式和内容包括哪些东西,帮助你了解;

录像原理简而言之:魔兽客户端就是一个播放器,录像就是输入内容,播放器根据输入播放输出,其中的格式就是自己根据需求定义。

1.文件格式目录:

文件的目录大致包含以下内容,首先录像文件头包含了版本信息。虽然看到了这个版本的定义,但是对录像文件的数据没有做版本控制,这也是为什么播放录像的时候,如果客户端版本不对,就无法播放的问题。扩展一下,其实这个问题可以在定制录像文件的时候,针对不同部分的数据做特别的版本控制,以此达到兼容的问题,至少可以做到向下兼容。

===============================================================================

Table of Content 录像文件描述文件目录摘录

===============================================================================

1.0 Introduction

2.0 [Header]

2.1 [SubHeader] for header version 0

2.2 [SubHeader] for header version 1

2.3 Version information

2.4 WarCraft III The Frozen Throne beta replay information

3.0 [Data block header]

4.0 [Decompressed data]

4.1 [PlayerRecord]玩家记录

4.2 [GameName]游戏名称

4.3 [EncodedString]加密字符串

4.4 [GameSettings]游戏设置

4.5 [Map&CreatorName] 地图角色

4.6 [PlayerCount]玩家数量

4.7 [GameType]游戏类型

4.8 [LanguageID]语言ID

4.9 [PlayerList]玩家列表

4.10 [GameStartRecord]

4.11 [SlotRecord]得分记录

4.12 [RandomSeed]随机种子

5.0 [ReplayData]

6.0 General notes

6.1 Notes on official Blizzard Replays

7.0 Credits

8.0 Document revision history

===============================================================================5.0 [ReplayData]

===============================================================================

在上面的ReplayData中,包含了录像所有的时间片数据,被细分为多个区块Block,每个块的数据或固定大小,或不固定,数据的都是以一个字节代表blockID,用以标识要跳过某些固定的内容,以实现录像跳过等功能。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0x1F- TimeSlot block 时间片数据[ n+3 byte ]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1 word - n = number of bytes that follow 记录时间片数据长度

1 word - time increment (milliseconds)时间增长量(ms)

about 250 ms in battle.net战网250毫秒

about 100 ms in LAN and single player局域网100毫秒

n-2 byte - CommandData block(s) (not present if n=2) 输入命令数据块

For every player which has executed an action during this time slot there is

at least one 'Command data block'.

CommandData block:

1 byte - PlayerID

1 word - Action block length

n byte - Action block(s) (see file 'w3g_actions.txt' for details)

这里有两个重要的概念

1.TimeSlot Block"时间片数据块",魔兽客户端播放录像就是严格按照时间片进行解析播放,时间片数据中主要记录了数据长度和该时间片内游戏中所有对象发生的动作序列,可以参考下面的动作描述文件内容。

2.CommandData Block,“命令数据块”包括玩家的ID, 对应的动作序列长度和动作数据。

例如:

DD 00 0D 00 - use ability: cripple (UD Necromancer)[12-44-ID-ClickX/Y-TargetID]

这条记录就描述了此刻时间片内发生的事件魔兽录像怎么看,亡灵的巫师使用了残废,点击坐标(X,Y),对象的ID是谁谁谁酱紫,然后魔兽客户端内部定义一套播放的接口,根据输入的数据进行播放就能完成播放了。

总结:以上内容就是针对魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,魔兽录像怎么看(《魔兽争霸》的录像,为什么长达半小时的录像大小只有几百 KB?)部分内容转载自互联网,有帮助可以收藏一下。



上一篇: 小小武林(小小武林(小小武林高手四年级作文))

下一篇: lol英雄联盟新英雄(LOL新英雄 用五把武器的新英雄即将上线)

本文标签:
猜你喜欢