世界包的近代化改造手术日志
前言
这是一种使用对象存储以及内容分发网络为基础的一种特殊模组包,使用改造模组无需DM服务器自身提供模组资源加载,所以有效的缓解Fvtt系统加载模组包过程中的网络带宽压力,提升加载速度。
由于V11版本数据库不再以NoDB为引擎,所以这种修改方式目前暂时不支持V11及以上的Fvtt版本,仅能在V10或者V10版本以下使用。
原理
Fvtt世界包的图片加载方式可以采用相对路径和绝对路径,在默认设置中为相对路径,一般为”world/Curse of Strahd/scene/xxx.jpg”。
相对路径加载方式需要PC从DM服务器上读取素材,PC数量越多,对DM服务器加载压力就越大。由于DM服务器的总带宽是有限的,所以多人同时读取时会显著降低速度,让系统产生不稳定甚至掉线的情况。
所以我们可以将图片交给一个特殊的空间,使用绝对路径进行图像加载,以提升整体效率。同时这个方案也可以使原本无法修改按量计费的轻量云主机获得一部分按量计费的能力,以提升整体加载速度的功效。
费用情况和条件
流量费
- 使用内容分发网络+对象存储流量费约为0.15元/G
- 若单纯使用对象存储流量费为0.5元/G
资源费
- 空间费用:一个正常的模组,拥有2GB的资源包一个月空间费用大约为0.3元/月
- 请求费用:正常一个月的4-8场团,大约请求费用为0.1-0.2元/月
- 从存储桶内删除资源可以停止空间费用和请求费用的计费。
特殊条件
- 若内容分发网络+对象存储需要进行网站备案
- 单纯使用对象存储则不需要网站备案
开始进行近代化改造模组(V10及V10以前版本可用)
新建存储桶
我们需要创建一个对象存储桶,选择【标准存储】类型,创建的对象存储桶会给你一个默认的域名【桶名-序号.cos.区域.myqcloud.com】。
【可选】创建内容分发网络配置信息,并在回源地址配置为对象存储回源。此时你不在使用上方的对象存储域名,改为使用内容分发网络的域名。
【可选】配置内容分发网络的缓存信息,将所有类型配置为强制缓存,周期为365天。
配置存储桶
修改对象存储的【安全管理】中的【跨域访问CORS设置】,来源框输入【】,并且允许所有请求。
【可选】如果配置了内容分发网络则在【高级配置】中,配置【HTTP响应头配置】,输入参数【Access-Control-Allow-Origin】并取值为【】
向存储桶转移文件
然后我们需要下载对象存储浏览工具,并在电脑上安装。
使用我们的账号登录这个存储桶,然后将【/world】目录拷贝到对象存储桶根目录下
修改FVTT的noDB数据库
然后我们需要修改FVTT主机上,世界包的DB文件,一般修改actors、scenes、journal、items这四个DB文件。在查找目标输入【”worlds/世界包名称/】、在替换目标中输入【”http://域名/worlds/世界包名/】。(注意这两个框前面都有一个半角”)
替换并保存生效
最后将Fvtt系统关闭,然后把修改过的DB文件替换到服务器上原来的世界包中,并打开系统即可使用。
通过反向代理和规则重定向使用近代化
⚠️本教程回撤,请直接观看使用Fvtt本地映射工具包,让你的“客户端”体验更完整(伪
使用S3兼容存储
由于FVTT的S3本身属于AWS配件,国内只能使用兼容模式,所以许多国内对象存储特性均无法使用,包括且不仅限于:无法使用CDN加速域名、桶权限管理、文件权限管理等
若需要使用,则需要找到【用户数据目录】/Config目录,新建一个任意json文件(建议取名带有S3以便识别,例如txs3.json)
打开并输入以下内容(以下以腾讯云的对象存储COS,FVTT主系统版本V11为例,V10及以下版本非此文件):
{
"endpoint": "https://cos.【地区,如ap-shanghai】.myqcloud.com",
"credentials": {
"accessKeyId": "【API密钥中的SecretId,如AKIDrWwz1145141919810gOtABpE】",
"secretAccessKey": "【API密钥中的SecretKey,如NZVDftD1145141919810c1B59x】"
},
"region": "【地区,如ap-shanghai】"
}
最后在核心设置中,找到S3配置文件设置,并且输入你的的文件名(txs3.json)。重启FVTT核心后即可生效
使用nginx本地映射工具包
⚠️本教程回撤,请直接观看使用Fvtt本地映射工具包,让你的“客户端”体验更完整(伪
近代化模组改造项目
为了解决新人Dm加入Fvtt系统的怀抱,尚未能熟练备团,但却想尝试Fvtt带来的全新体验。故本项目将会提供一定数量的One Shot成品汉化模组包,用于测试使用。
详情请见:近代化改造模组项目