使用 Magpie 来提升玩 GALGAME 的体验

2021 年了还是有不少 gal 是用 720p 的游戏分辨率制作的,这让一个主屏使用 1440p 显示器,副屏影音娱乐是 4k 显示屏的用户打 gal 时,使用游戏自带设置切换为全屏后,画面文字双双变糊,实在不是一个很好的游戏体验。

今年 3月份的时候,发现了 使用 mpv 和 Anime4K 播放动画视频 来提升观看动画的体验,当时就在想有没有人会开发一个可以让玩游戏时也能用 Anime4K 算法来提升游戏画质,后面 AMD 也推出了个 FSR 算法也是提升游戏画质的,在 GitHub 上以 Anime4K FSR 关键字搜索时,看到 Magpie 这个项目,看介绍也支持 Anime4K 算法,隐约感觉到,这一定就是我在寻找的软件。

引用一下官方 Repo 的介绍:

Magpie可以将任意窗口放大至全屏,支持多种高级缩放算法,包括Lanczos、Anime4K、FSR、FSRCNNX等。

主要用于游戏窗口的放大显示,适用于不支持全屏模式,或者内置的全屏模式会使画面模糊的情况。

下载完打开试用后,果然,这个软件是新时代玩 gal 必备的神器!

当然,使用算法实时渲染提升画质,对显卡来说是有性能要求的,所以要想畅玩享受全屏清晰画质 gal 的话,一个相对来说好点显卡是必须的。

Magpie 项目下载地址:https://github.com/Blinue/Magpie

强烈推荐尝试一下,玩上古游戏使用 Magpie 全屏放大显示,画质提升效果也是很不错的。

Python 在 Galgame 开发中的应用

看了下 bitbucket repo 记录,第一次使用 python 来写脚本处理文件是在 2017 年左右。当时是为了将翻译后的英文 txt 经过一些处理,导出为 csv 格式,以便校对后导出多语言演出脚本,也不是什么复杂的处理,就用 python 写了个脚本,应该是第一次实际使用 python 的样子。

之后,由于在开发游戏的过程中,会遇到一些比较繁琐,具有重复性,又有一定规律的需求的问题需要被解决,我也化身成为捕蟒人(python hunter)写了不少脚本。这里记录分享一些比较有意思的需求和解决思路仅供参考。

制作体验版时剔除未使用的素材资源

在制作游戏体验版时,往往需要把正在开发的项目中未使用过的资源给删除掉,再打包制作出来一个试玩版发布给玩家体验游玩。这个时候有 2 种思路

  1. 将使用过的资源导出一份作为体验版项目的资源。
  2. 删除未使用的资源。

解析演出脚本,将演出中使用过的图片,音乐素材给提取出来相对来说更不容易出错。

这边写的脚本也是这样子去做的。

  • 核心代码在于使用 shutil 标准库里的 copy 方法来复制文件。
  • csv 操作可以使用标准库里的 csv module

操作 Photoshop 导出立绘表情差分图片

可以使用 win32com 接口来操作 PS 来隐藏,显示图层后导出图片,示例可参考 Photoshop scripting with Python 这篇文章

创建 CG 鉴赏配置 cglist.csv

krkr2 的 kagex cg 鉴赏配置是一个 csv 文件,里面需要填写每个 cg 文件名。

由于 cg 鉴赏里配置的文件分辨率都是和游戏分辨率大小一致的,并且文件名大多数都是类似 EV01_1 这种,那么按思路来说可以将 data 文件夹里的所有 jpg png 文件都遍历一遍,将需要写入到 cglist 的文件名分组后,就可以导出为 cglist.csv 了。当然最后还是需要人工调整差分显示顺序,删除不需要的)

  • 判断图片分辨率大小,需要使用 Pillow 库 里的 Image

转换 KAG 脚本到 UTAGE3 脚本

三色绘恋在做手机版移植的时候,最后选择了使用 UTAGE3 这个 Unity Visual Novel Tool 作为系统框架,于是就需要先将 krkr 的 kag 演出脚本转换成 utage3 可以运行的演出脚本。

处理思路很简单:

  1. 解析 kag 脚本的指令
  2. 转换到 utage 对应的指令(这个过程可简单,可复杂)
  3. 生成 utage 用的 excel 演出脚本文件

但写起来挺难受的。

因为 utage3 的指令和 kag 指令的设计差别实在是太大了,再加上 kagex 的 world 功能提供的简单语法,又需要转换为新的指令。

移植这工作,做起来是一堆问题需要处理。

  • python 操作 excel 的库,可以使用 openpyxl
  • 遇到 excel 文件特别大,在 load_workbook 时设置 read_only=True 来处理。参考 Read-only mode
  • 新建 excel 时,写入数据量大时可以在新建 Workbook 时,设置 write_only=True 。参考 Write-only mode

转换剧本到 cv 台本文件

解析剧本人名和台词后

  • 将非当前角色的台词设置为淡灰色,字号变小。
  • 将当前角色的台词设置为黑色,加粗,加大。
  • 人名 和 台词 使用边框进行区分。

样式设置参考 openpyxlstyles

升级 Ubuntu 14.04 LTS 到 20.04 LTS 记录

上一次折腾 vagrant vituralbox 和 ubuntu 还是 2016 年搭建了个 svn server,之后就没怎么动过,Mac mini late 2012 也成了 svn 服务器专用机,这差不多 5 年间,用坏过一次 SanDisk 的 256G 的 ssd,后来换成了镁光的 MX500 500GB 一直用到现在。

由于 svn 版本是 1.8.X 想升级下版本发现还是直接升级系统算了,毕竟 14.04 LTS 2022 年也到 End of Support 时间了,不过谨慎点还是先升级到 16.04 LTS 好了。

升级到 16.04 LTS

移除第三方 source.list

    • How to Remove PPAs from Ubuntu

    • 这边是因为曾经为了尝试 gitlab 所以添加过 gitlab 的 source,在升级系统的时候报有兼容性问题,于是需要先移除。

    • 另外在尝试自建 gitlab 后,发现 gitlab 还是太占资源了,就没继续用了。对于美术和演出人员来说还是 svn 操作更简单方便。

更新 ubuntu distribution

do-release-upgrade
  • 出现的选项都保持默认,OK,y

  • 升级结束后重启系统,进入之后 netstat -lntp 查看启动的端口发现 nginx 启动了,不过这边需要的 webserver 是 apache2 所以需要关闭 nginx 服务和自动启动

sudo service nginx stop
sudo service apache2 start

Nginx – disable autostart

sudo update-rc.d -f nginx disable

sudo systemctl disable nginx

sudo systemctl stop nginx
  • 当然也可以选择 uninstall nginx What is the best way to uninstall nginx
  • 也许偶尔需要配置学习下 nginx,我就没卸载了。
  • 访问 svn web server 后查看版本已升级为 1.9.3

备份 vagrant box

升级到 18.04 LTS

sudo dpkg -l|grep intel
sudo apt-get purge intel-microcode
sudo update-grub
sudo reboot```
    • 升级完毕后,查看 svn version 到了 1.9.7

升级到 20.04 LTS

    • 直接执行一个 do-release-upgrade

    • 启动时发现又是卡在 smp 那里,看来新的内核都有加 intel 漏洞的补丁?,但是我这边就一个内网服务而已,也不需要管安全,直接进行一个 apt purge intel-microcodeupdate-grub 然后重启

    • 本身就是一个老旧的 cpu,再打降性能补丁,或者限制单核运行,怎么想都不划算,用到报废换新电脑多好。

    • 升级完毕后,查看 svn version 到了 1.13.0

结尾

    • 升级系统看着一行行日志文字不停的滚动过去,不出问题整个过程还是挺爽的,颇有动画里 hacker 的感觉,然而实际就是在升级系统罢了。

    • 启动停在 smp 这个问题真是蛋疼,不然整个过程应该挺顺利的。

    • 整个系统就一个内网 svn 服务器,只要能保证 svn 正常工作就行。

git or svn?

    • 尝试过好几次用 git + git lfs 来测试当 galgame 项目的 source control 系统,最终都以图片,音乐,binary 文件 add commit push 耗时比 svn 长放弃。

    • git repo size limit 比较严格,GitLab 似乎时单个 repo 最大 10GB,而用 svn 就不用考虑 size 这个问题。

    • 我个人是用 git 来同步代码比重大的 project 的。

    • 但是像图片,音乐为主的 galgame 项目,还是用 svn 更方便合适些。

    • 不过 svn 需要手动创建 repo,手动添加用户还是挺麻烦的……

renpy web updater

最近因为一些原因,开始研究 renpy 这个 Visual Novel 框架了,把折腾的东西顺便写个教程分享下。

这个教程是有关 renpy 使用 web updater 功能来更新游戏内容的。

更新设置

Building an Update
Updates are built automatically when distributions are built. To build an update, set build.include_update to True in options.rpy. This will unlock the “Build Updates” option in the “Build Distributions” section of the launcher. Check this option, and Ren’Py will create the update files.

开启生成更新按钮

  • 打开 options.rpy
  • 在 init python 下面的 build 部分新增一个下面一行代码
build.include_update = True
  • 切换到 renpy 开发窗口,点击生成分发版,此时可以看到 生成更新 选项已经出现。

给主菜单添加 check for updates 按钮

  1. 打开 screens.rpy 定位到 main_menu 方法
  2. 在 main_menu_version 组件下新增 textbutton
## Updates via this button are for PC only
textbutton "check for updates":
    action updater.Update("http://127.0.0.1/TestChsGame/updates.json")

制作与测试游戏更新包

  1. 首先生成一个 1.0 版本的游戏包。(不勾选 生成更新)
  2. 修改下剧本文本内容和游戏版本号 1.0.1,勾选生成更新选项,生成下 1.0.1 版本的更新包内容


    1.0 和 1.0.1 的 build 包
  3. 上传 1.0.1 文件夹里的所有文件到本机 Web 服务器 TestChsGame 目录,上传完毕后,在浏览器里输入 http://127.0.0.1/TestChsGame/updates.json 可看到 json 文件内容
  4. 打开 1.0 build 运行游戏,点击 check for updates 按钮,可以看到有 1.0.1 版本更新提示

点击取消,Start 游戏,查看下第一行对白是显示 v1.0

返回到 Title,再次点击 check for updates 后,点击继续运行 updater 更新游戏

更新完毕后,会自动重启游戏

在 1.0.1 游戏启动后,点击开始游戏可以看到,剧本第一行对白已经显示为 1.0.1 了

至此,renpy web updater 测试游戏版本更新功能完毕。

测试用 Web 服务器

  1. 【推荐】系统有安装 python3 的话可以打开 cmd.exe 进入一个空目录后,使用 python -m http.server 来启动一个 web server

    默认端口是 8000,所以地址会变成 http://127.0.0.1:8000

  2. Windows 下可以安装个 wampserver
  3. 或使用搜索引擎跟着教程搭建一个 web server

Reference:

  1. 官方文档地址:Web Updater
  2. [Help] About the Web Updater

MacBook Air M1 使用 Parallels Desktop 和 Windows 10 on Arm 的体验

五一放假回老家,用 M1 MBA 作为エロゲ专用机玩了几天,这篇文章就作为体验的测试报告好了。

测试环境

硬件:MacBook Air 13 2020 M1
虚拟机:Parallels Desktop 16.5.0
Windows 系统: Windows 10 on Arm build 21370.1

性能

2c 2t Geekbench5 跑分为

单核 多核
1410 2768

截屏2021-05-02 上午10.45.27

8c 8t Geekbench5 跑分为

单核 多核
1508 5893

截屏2021-05-02 上午10.51.29

看跑分结果的话,8c8t 全开性能大致和 AMD Ryzen 4500U 差不多。

エロゲ兼容性(x86游戏)

大部分的エロゲ游戏,双击不能运行的话,使用 Safe Emulation 模式就可以正常启动了。

测试过使用 Safe Emulation 可以正常运行的有:

  • さくら、もゆ。-as the Night’s, Reincarnation-
    • 在 2c2t 的配置下打了好多天,感觉没压力。
  • IslandDiary
  • まいてつ Last Run!!
    • 需要安装 dx9.0c runtime
  • your diary +H
  • ゆきいろ

截屏2021-05-02 上午10.45.27
Windows 10 on Arm 完成度挺高的,微软发力起来还是很强的。

感想

PD + WoA 的体验

  • 感觉不错,至少拿来玩エロゲ问题不是特别大。

对 MacBook Air M1 的感受

  • 作为一台打字机,看动画,听音乐,听播客,看轻小说的机器体验整体不错。
  • 看漫画的话,还是用 27 inch 大屏幕更舒服。
  • 自带扬声器喇叭拿来看动画玩游戏时外放效果还是比较满意的。
    • 比 ThinkPad T460p 是不知道高到哪里去了。
    • 当然我对 iPad Pro 10.5 的四扬声器评价也很高,每天晚上睡前都会拿来放 bgm 助睡。
  • 高 PPI 的屏幕在看图像的时候会自带美化滤镜。
    • 即使 24 inch FHD 显示器是目前打 720p 黄油的最佳显示器,但大颗粒的缺点也是不容忽视的,看起文字来是比高 ppi 屏幕不舒服。
  • 13 inch MBA 的物理尺寸从设计观感上看,确实可以称为目前笔记本电脑的 sweet point
    • 全尺寸键盘,键盘两侧无多余的空白不适感。
    • 16 inch MacBook Pro 键盘两侧放的都是扬声器的开孔,但看起来观感也确实没有 13 inch 的舒适。
    • 1.29kg 的重量已经很不错了,但是如果能更轻的话,那就更棒了。(under 1kg)

使用 mpv 和 Anime4K 播放动画视频

  • 用 mpc-hc 和 madVR 来 upscale 播放动画也不错,不过还是按捺不住想折腾的心思,于是尝试了下这个。

  • mpv

    • 官网:https://mpv.io/

    • 安装:https://mpv.io/installation/

      • Windows 解压后,进入 installer 文件夹,使用管理员权限运行 mpv-install.bat 和 configure-opengl-hq.bat

      • 切换到 mpv.exe 运行目录,打开 mpv/mpv.conf 文件

  • Anime4K

  • 打开一个视频文件,shift + i 显示 OSD 菜单,按 2 可以看到当前的 user shader 设置,使用 ctrl + 1 到 6 来切换 shader profile,ctrl + 0 来清除 shader profile.

  • 试了下我还是使用第一个推荐的 For 480/720p videos 的配置了。

絆、つないで。こころ、結んで。

感想有剧透,警告⚠注意。

プリコネR 也玩了挺久了,自己游戏主要体验在国服玩的(公会战什么的),不过剧情我是在 YouTube 上看日服原版的。(没把所有的都看完就是。)

这次活动剧情着实让我好好感动了一回。

即便知道是剧情需要才会出现这一系列的事件,也招不住可可萝和美食殿的大家在一起度过的那么长的时间所带来的羁绊,可可萝不得不选择离别,所造成的来自内心的痛苦。

一起度过的日子,经历的冒险,每日三餐里无数的欢笑与对话,都在突然间消失。

在可可萝的日记里所记述的事件随着时间的变化,所造就现在的结果,日记里可爱的插画搭配着旁白,再加上这次最棒的带着感情色彩的 bgm,真不错。

这次活动故事里让我特别感动的地方至少有三处:

  • peko拿到离别时的发饰

  • 全屏选项演出

  • 可可萝下定决心面对黑色精灵

之前不知道在哪里看到的,说手游由于碎片化的剧情,能带动玩家感情很难。

实际这次活动 3个多小时左右(?)时长的剧情,由于主线剧情时长已经铺垫很多,每个角色都已经让喜欢的玩家特别喜欢了,也可以给玩家带来感动的。至少这次活动,我认为是达到了给玩家带来感动这个标准了。

故事这东西,可遇不可求,希望未来的自己能遇到更多更好看的故事。

启用了新域名 yaqinking.com 和一些感想

yuzusoft.moe 这个域名是我在 2017年7月28日的时候在主机壳上购买的,到现在也快 4 年了,当时是因为玩了魔女的夜宴和千恋万花让自己非常喜欢 yuzusoft 这个品牌,在那几个月期间,自己带着欢笑与感动度过了很多个日日夜夜。

时至今日,柚子社依然是原来的那个柚子社,而我也在这几年期间与更多的作品相遇,自己也参与制作了好几部游戏,也许,是时候做出改变,让自己在互联网这个大沙漠中留下更多的印记了。

后面我会一如既往的折腾数码电子设备,玩更多的エロゲ游戏,(下次一定)写更多的游戏感想,时不时写点游戏制作的日志,分享点沙雕制作小技巧心得。

2021 年应该会有 4 个新的 AVG 项目自己参与制作,能看到自己的名字 id 出现在作品 staff 列表中还是很高兴的,新的一年也要がんばるぞい。

使用 Apple 生态下的设备玩 Galgame 的体验

由于自己非常好奇用 macOS 玩 Galgame 的体验,为了浇灭这股奇怪的欲望,我花了将近一周的时间用 MacBook Pro 15.4 2019 这台机器玩了下 しらたま 老师的最新作:星空鉄道とシロの旅。

这篇文章将作为自己拔草的总结。

macOS 11.1 Big Sur 和 VMware Fusion

BootCamp

在 macOS 下玩游戏,首先想到的是 BootCamp,毕竟这个是苹果官方出的安装 Windows 操作系统的方法,手里这台 2019 年的 MacBook Pro 15寸,在公司采购之后,我拿到手没多久,就用 BootCamp 工具安装了当时最新版的 Windows 10。
不过使用 BootCamp 安装了 Windows 10 之后,用了没多久,我就不想继续启动了,原因很简单,我有性能更强的台式机,为啥还要用这台笔记本呢。(这是最初种草结束的世界线之一。)
扯淡归扯淡,其实就是想边使用 macOS 下的软件,边玩黄油,为了满足这个需求,接下来就需要虚拟机登场了。

VMware Fusion

提到虚拟机,大多数人首先想到的就是 VMware Workstation Pro,不过这个只有 Windows 版,macOS 消费者版本对应的有个 VMware Fusion,在 Big Sur 刚出的时候看到有新闻说 VMware 最新版会为个人免费,自己就想着下载个看看,在花了几分钟时间漫游在很长的介绍对比页面后,点击个人版需要注册什么的,感觉好麻烦,还是点了下 Pro 版本直链下载试用 30天好了。
经过几小时的折腾,终于安装好了 VMware Fusion,选择从 BootCamp 启动虚拟机,配置好 VMware Tools,拷贝好游戏,可以开完了。

先放个对比效果,图1:

上面的是 27寸 2560×1440 分辨率的 Dell S2721DGF,游戏窗口模式下运行。
下面的是 MacBook Pro 15寸,虚拟机分辨率为 2560×1440,游戏全屏模式下运行。

实际观感上游戏对话框字体大小其实是差不多的,2个游戏画面的实际面积也差不多。
在 MacBook Pro 15 上对话框字体是经过缩放后的不锐利的视觉效果,没有点对点,糊糊的。不过图像看起来是要比 S2721DGF 要舒服点,或许是高 PPI 造成的错觉?
嘛,没有那种看了之后就回不去的震撼感就对了。

iPad 和 Side Car

去年有段时间,很想买个 Surface Pro 来玩黄油,不过最终因为价格劝退,没入手。

不过自己目前主力是使用的 Windows 设备,没上大学的时候那么关注 macOS 更新,iPad 倒是因为要拿来看漫画,隐约记得在哪个 macOS 系统中加入了个 Side Car(随行) 功能,可以让 iPad 作为 Mac 的副显示器用,趁着这次测试正好试试看看拿来玩 gal 怎么样。

Side Car 连接上之后,iPad 显示效果还是很不错的,文字渲染质量和图片质量都不错,甚至把我曾经想用 4:3 比例的显示器的欲望都除草了。

游戏画面显示效果,我甚至有点不敢相信自己的眼睛,感觉游戏对话比 MacBook Pro 内置屏幕上的更清晰点。(当然依然不是点对点,不锐利。)
在立绘进行移动的时候(入场,离场动作)会有轻微跳帧,可以接受。(比 Duet 用线连接时候的效果好很多。)

用 iPad 的时候,声音输出还是使用的 MacBook Pro,在系统设置里看了下也不能更改输出到 iPad。
正当我躺在床上模拟场景的时候,突然想到有个每天只在上下班地铁用不到 1h 的 AirPods(初代),连接上耳机后,声音终于不是在右边桌子上听到了,舒服多了。

MacBook Pro 开 Side Car 运行游戏到 iPad 上,音频输出使用 AirPods。
这个搭配拿来躺床上玩エロゲ岂不是很爽?!
不过致命缺点是 Side Car 下的 iPad 是不能模拟鼠标点击的,很遗憾,只能开 Auto 模式推游戏。这对必须使用 Ctrl 来推エロゲHS的我是不能忍受的。

总结

  • 开虚拟机玩游戏,笔记本发热量太大,太吵。
  • 高分屏看画面爽,看文字总感觉是那种很漂亮的糊。
  • 我应该不会去用这台设备玩エロゲ了。

可是最后还是买了台 MacBook Air M1 来当打字机,上网冲浪专用机了。

Unity 导出 Mac 游戏上传到 App Store Connect

Unity Player Settings

Resolution
Default Screen Width: 1600
Default Screen Height: 900

Mac App Store Validation: True

Build 窗口里设置:
勾选 Create Xcode Project,导出一个 Xcode 项目包。

然后使用 Xcode 打开 build 之后的项目。

Xcode

在 Project 栏选中项目,修改 Info 里的
Deployment Target 为 Unity 2019.4.18f1 支持的最低系统版本 10.12

切换到 Build Settings

Architectures:
Build Active Architecture Only 修改 NO 为 YES. (Unity 2019.4.18 不支持 ARM)

打开 Targets 的 Sign & Capabilities

Sign 方式 Automatic manage signing

新增 App Sandbox,勾选下面的权限

  • Outgoing Connection

使用 Xcode Archive 功能 Build 发行包。

在 Distribute App 的时候,需要先在 App Store Connect 里建好 app 需要的 Identifiers 和 导出 App Store App 需要的 Profiles。