如何在macOS上玩基于Ren’Py的视觉小说 | Mayx的博客
Author: mayx
Description: 跨平台的游戏移植起来就是简单啊
Date: 2024-01-20T00:00:00+08:00

20 January 2024 - 字数统计：2366 - 阅读大约需要7分钟 - Hits: Loading...

# 如何在macOS上玩基于Ren'Py的视觉小说

by mayx

这是一篇创建于 天前的文章，其中的信息可能已经有所发展或是发生改变。

AI摘要

这篇文章讲述了在macOS上玩基于Ren'Py的视觉小说时遇到的问题及解决方案。主要问题包括Mac OS的验证限制、不同版本Ren'Py引擎的兼容性、使用RenPyViewer的局限性以及签名和权限问题。解决方法包括使用iOS版或Intel版RenPyViewer、通过终端运行.sh文件、修改.app权限和文件结构、以及处理文件名大小写差异。最后的建议是优先使用游戏自带的.app文件并进行适当的权限设置，或者根据所用硬件选择合适的工具。

- 起因
- 玩法研究
  - 使用iOS版的RenPyViewer
  - 使用Intel macOS版的RenPyViewer
  - 使用终端运行
  - 手动修改.app文件
- 总结

跨平台的游戏移植起来就是简单啊

#
起因

最近我在玩Winged Cloud出的视觉小说，他们家出的视觉小说画风都很不错，比很多其他同行画的好看，另外长度一般都很短，大概1-2个小时就能看完，很适合下班之后闲了看一部，不过我现在已经换了MacBook，要怎么玩呢？他们家的视觉小说基本上都是用的Ren’Py引擎开发的。Ren’Py引擎的游戏本身其实原生就是跨平台的，但是也许是因为我是直接从互联网上下载的，macOS会有些验证之类的？直接运行.app结尾的文件是没办法打开游戏的，双击会显示应用程序无法打开……那该怎么运行呢？

#
玩法研究

##
使用iOS版的RenPyViewer

不过看看之前我在MacOS上玩游戏的经验，对于Apple芯片的Mac来说，可以下载RenPyViewer来玩。只是经过我的测试发现，RenPyViewer能玩的游戏很有限，因为它内置的Ren’Py引擎版本是7.5.3的，如果游戏用的Ren’Py引擎和这个版本相差不大，或者没有用到新版的特性之类的倒是能正常运行，我试了一下Sakura MMO系列、Sakura Gamer系列等都能正常运行，但只要运行游戏Ren’Py的版本过高或者过低的游戏都会报错，尤其像新出的基本上都是8.0以上的版本了，Python的版本也从2换成3了，显然用RenPyViewer肯定是没法运行的。

##
使用Intel macOS版的RenPyViewer

其实在我发现iOS版的RenpyViewer不能运行一部分Ren’Py游戏之后，我又去搜了一下，在知乎上找到了iOS版的RenPyViewer作者发的文章，介绍了macOS如何游玩Ren’Py引擎游戏，其中包含了他为macOS做的RenPyViewer，不过我下载看了一下是Intel版的……不过也许这个里面用的引擎更新一点，一部分iOS版不能玩的这个版本就可以玩。

##
使用终端运行

但毕竟前面两个方法内置的引擎版本是固定的，能玩的游戏也很少，看来得想个通用的办法，毕竟Ren’Py游戏在发行的时候是支持macOS的啊。所以我又看了看，Ren’Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件，看起来应该是给Linux系统运行使用的，但是macOS也可以运行.sh的文件啊，所以我就直接在终端运行了它，结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名，不然就会报移到废纸篓之类的错，关于这个问题，我看网上说的好像是执行`xattr -r -d com.apple.quarantine <path>`就可以，不过后来我也忘了是出什么问题，最后是手动一个一个给每个可执行文件加的权限，最终倒是也运行起来了。

##
手动修改.app文件

不过每次运行要是用终端那不是很麻烦嘛，另外既然游戏里面明明有.app的文件，为什么会运行不了呢？后来我看了看，发现Contents/MacOS文件夹下的文件并没有可执行权限，我猜可能是和这个有关系？加了可执行权限之后倒是没有报应用程序无法打开的错了，但是还是不能运行，点开之后在Dock栏跳了几下就消失了……然后我就去看了下那个可执行文件，发现就是一个Shell脚本（后面的版本换成可执行文件了）里面定义了几个ROOT变量，一个是和脚本同级的目录，一个是和.app同级的目录，还有一个是Contents/Resources/autorun目录，这么看来正常情况下因为游戏是跨平台的，游戏肯定不会在.app里面，在外面的话……看现在macOS权限管的这么严格，让它读取.app外面的文件估计不太行，肯定只能读取.app里面的文件，至于Intel macOS版的RenPyViewer我看了一下好像原理差不多，是把游戏目录用软链接映射过去的，所以才能在不直接获取.app外面的文件下运行。之后我又参考了一下其他直接在macOS发行的Ren’Py游戏，感觉也差不多。所以解决方法也很简单，要么把游戏文件放到Contents/Resources/autorun目录下，要么做个软链接放过去，我觉得单个.app管理起来会方便一些，所以就直接把游戏文件全部移动进去了。试了一下，总算可以正常运行了。而且多试了几个，基本上都没有问题。

但有些Ren’Py游戏连.app都没提供，我不知道SDK默认生成分发版的时候会不会包含macOS上用的.app文件，不过也有可能是发行的时候只针对Windows所以删掉了，对于一些非官方汉化版很有可能是汉化的人给删掉了。对于这种情况，可以先搞清楚这个游戏使用的Ren’Py版本，然后去Ren’Py官网下载对应版本的SDK，把SDK中的renpy.app复制出来，然后按照上面的方法把游戏拷进去就可以正常运行了。

另外macOS上还有一些坑，比如说Windows的文件名是不区分大小写的，但是macOS是区分的，有时候他们写脚本的时候文件名和程序里可能有些比如CG之类的大小写不一致，结果图片不能正常加载，这种情况就只能用unrpa解包然后把对应的图片名改成正确的才能运行了，当然Ren’Py提供了忽略错误的功能，但是不知道为什么只有英文模式下有，中文下就没有……这种情况还得先切换到英文才行。

#
总结

总的来看，以后如果想在macOS上玩Ren’Py游戏，优先应该用游戏自带的.app最好，把Contents/MacOS下的文件添加可执行权限，然后把文件全部移动到Contents/Resources/autorun下。不过旧版的Ren’Py基本上都是只有x86_64的可执行文件，新的才有两种都支持的，如果是用的Apple芯片的Mac，最好先看看可执行文件是不是通用的，如果不是优先应该先试试iOS版的RenPyViewer，毕竟原生运行肯定要更省电一些，如果不能运行再用上面的办法。

tags: Apple - macOS - 视觉小说 查看原始文件

#### 推荐文章

Loading...

上一篇：年终总结
下一篇：如何离线安装1Panel
想问这篇文章
召唤伊斯特瓦尔