王者荣耀中搞GIS
The following article is from 地质掘墓人 Author 张金龙1992
这两天排位又连跪,可恶
在王者峡谷铩羽而归后
郁闷心情无法排解
于是乎我又想搞点事情了
研究个啥呢
既然游戏不好玩,那就搞GIS
再次结合一下
王者荣耀大陆+GIS应该也有搞头
一顿操作后实现
一、数据收集
(一)收集王者荣耀英雄信息
方法一:官网搜索,利用常用软件转换
最权威的数据还得是官网发布的
简单的办法-拿来主义,复制粘贴
打开王者荣耀官网
全选英雄介绍界面(图1)
复制到PPT里(图2)
为什么复制到ppt里
目的获取所有图片、文字
形成表格数据库(ArcGIS可以超链接)
在讲获取PPT里所有图片前
首先给大家科普一下
我们日常办公的PPT文档
其本质是xml加上多媒体文件等元素一起打包而来的
因此我们可以通过更改格式的方法批量提取图片
首先将PPT文档的后缀名更改为zip
将它变成一个压缩包
使用压缩软件打开压缩包
并将压缩包中的文件进行解压
解压完毕后
得到了3个文件夹和一个xml文件
双击PPT文件夹
接着找到media文件夹(图1)
PPT中的所有图片就保存在里(图2)
接下来将文字复制到excel待用
现在需要给所有图片按英雄名字重命名
又是一大堆数据
同样的工作我肯定不会干
批量操作的事找CMD好使
以前也总结过CMD常用功能
详细参考《CMD常用功能汇总》
流程如下:先进入盘符输入
cd media
然后获取所有图片路径(图1)
dir /s/b
发现后缀名有jpeg和png
强迫症统一改成png,输入(图2)
ren *.jpeg *.png
在来一遍获取所有路径
dir /s/b
复制到excel中智能提取转换
在excel单元格中输入(图3)
="ren "&E2&" "&B2&".png"
复制工作表里的“cmd批量重名”列
到cmd中执行(图4)
方法二:软件里搞事情
这个是什么意思
大家都知道桌面端软件需要安装使用
安装就有数据部署在本地磁盘
同理手机app使用也需要安装
也就是有数据储存在手机内存中
换句话说,就是没网也能玩游戏就是调用本地数据
软件里搞事情
这个方法在制作接图表的时候讲过
参考文章
就是倒腾软件安装目录里的数据
王者荣耀安装后,它的目录太多
一个个找肯定不是我的作风
我需要批量导出所有图片
以前也写过类似的操作,参考文章
方法也是利用cmd,输入一下代码(图1)
for /r "F:\com.tencent.tmgp.sgame" %f in (*.png) do @xcopy "%f" "F:\王者荣耀图片" /f
代码意思
将王者荣耀手机安装目录
com.tencent.tmgp.sgame文件夹下所有的图片
自动复制到F:\王者荣耀图片目录(图2)
后面制作数据库的操作同方法一,不在赘述
方法三:python大法
用python写个爬虫
爬取思路是在官网
获取英雄的信息
1英雄名和id
2获取图片链接
3保存图片
这个也不写了
具体可以参考网站
https://www.jianshu.com/p/9723f967ee1c
(二)收集王者荣耀地图信息
在上一步提取王者荣耀安装目录下所有照片后
没发现有关地图的图片
猜测王者荣耀地图在腾讯服务器上
本来想去官网爬数据
算了,搞不好违法
直接TIMI一下
在游戏界面截图得了(图1)
至于为什么使用截图
目的提高王者大陆分辨率
也可以在网上搜刮现成的图片(图2)
二、基础数据处理
1.CorelDRAW拼图
将收集的所有王者大陆截图(图1)
全部拼到一张图上
2.Photoshop修图
用Photoshop抹去文字符号等内容(图2)
这部分内容不是研究重点
不多介绍
三、建王者荣耀数据库
首先定义坐标系
打开新建地理坐标系界面
先研究要建地理坐标系都需要什么参数
简单分析下
第1个名称,随便给个名字即可
第2个基准面,虚拟一个海平面即可,不用管
第3个椭球体,需要搞出来
啥是椭球体,参考以前我写的一篇文章
椭球体的长短半轴
需要根据实际大小估算出来
怎么算,一会儿在说
第5个反偏心率
数学知识e=a-c/a,也先不管
第7角度单位1°=0.017453293弧度没问题
不用管
第8本初子午线
这个根据想表达的内容自己定义就行
意思就是说我想让以王者峡谷为地图中心
那么本初子午线设置王者峡谷的经度即可
参数就这8个,其中椭球体最重要
怎么计算椭球体(高中数学知识)
其实就是建模型的意思
再没有其他参考了
我们给王者星球完美化
直接当成一个球体
球好办,椭球体长短轴就球半径
求半径需要周长
周长就是王者大陆地图的长(图1)
计算王者大陆东西方向距离
需要先计算王者峡谷大小(图2)
实际距离就涉及到比例尺的概念了
可由栅格数据分辨率获取
接下来需要解决这个问题
栅格数据分辨率
继续TIMI,打开王者荣耀
启动单人训练营游戏模式
在屠杀蔡文姬56次后
我想到一个测量峡谷距离的方法
用实际英雄大小对比王者距离单位“码”
测试英雄选择-周瑜
为什么用他
因为有历史原型(属于人)
还有就是真爱至上皮肤贼帅
计算过程如下:
经查,成年男性脚长20~24cm
穿上鞋子也就30cm多
此处量了我的运动鞋,也大差不差
然后截取游戏画面测量
官方给的闪现距离400码
截图放到Coreldraw中
闪现400码对应线长30mm
画出鞋子大小线长1.8mm
可计算出鞋子为2.4码
然后再测半个峡谷距离
经实测,我用周瑜从水晶到下路河道中间位置
一共闪现了23次
计算半个峡谷距离为115米
下面计算王者大陆距离
由于王者峡谷刚好位于“赤道”上(纬度为0)
不用考虑坐标系变形问题
计算如下:
王者峡谷48个像素代表115米(图1)
王者大陆4522个像素应该为10834米(图2)
关于怎么计算王者峡谷
东西方向有多少像素的问题
很简单栅格转点,一数就行
不过计算后才想起来
好像PS可以直接读取横纵像素数
可恶,想起这里差点emo
最后计算出
王者星球周长2πr=10834
计算半径r=1725米
好了,可以补充Arcgis新建坐标系参数了
(二)GIS空间校正
空间校正很简单
校正王者荣耀大陆(图1)
输入四角坐标即可
校正王者峡谷到王者荣耀大陆上(图2)
栅格和栅格校正,对比好位置即可
(三)建王者荣耀数据库数据库
首先矢量化
矢量化没啥好写的,就是一顿操作
练习用ArcGIS画图
1.建王者荣耀数据库.gdb
建地理数据集
(数据集可以看做同一类数据的容器
比如有着相同的坐标系等)
BOUA王者大陆行政区(图1)
RESA居民区(图2)
CITY城市地点(图3)
WONDER奇迹地点(图4)
HYDL线状河流
HYDA面状水域
其中点要素在附上坐标信息
2.建王者峡谷数据集
矢量化王者峡谷地图(图1)
野怪(图2)建筑点(图3)
路线(图4)河道区等并分别赋属性
3.导入栅格数据
把校正好的王者地图(图1)
王者峡谷(图2)
统一放到数据库里
这个是栅格数据知识点
很简单,导入即可
至此初步形成包含地理数据集
王者峡谷数据集、栅格数据的
王者荣耀.gdb数据库
四、数据展现
给数字线化图配置符号
随意配置,因人而异,喜欢就好
实在不想在配置符号方面花太多时间
不然快乐就没了
就这吧
五、产品制作
有了空间数据库
可以做一些数据产品
我计划做一系列王者荣耀图集产品
这将是个大工程
今天文章叫“王者荣耀大陆搞GIS-定位篇”
后面还会继续写王者荣耀系列推文
比如遥感篇、构造篇等
尝试在王者荣耀大陆上搞地质
也算是科普地质类学科吧
主体构思已成型,后面有时间再详细写
先贴两张定位的成果图
再来两张王者星球渲染图
今天的文章就到这里
- END -