Shui_gui_chong 所谓Mod移植,就是将电脑版的Mod打包成apk供手机游玩。 看到各种安卓mod有没有想过自己移植一个喜欢的mod呢, 想的话就来看这个教程吧! TeamSalvato团队近日表明,mod移植安卓的权限放开啦,那么我们国产的汉化mod是不是要抓住这个好机会让更多没有PC的粉丝玩到汉化呢,具体教程请看下文 测试机型:Windows 10 注意:mod移植会失败的原因在于mod内部有移植版本(无外部文件)不支持的代码块,比如读取chr就会造成闪退,而不支持的代码在各种mod上体现的也是多姿多彩,所以不能保证你跟着教程走就能成功移植,总体来说移植更多的还是需要自己排错来积累经验的
Shui_gui_chong DDLCMods移植安卓教程 编写:Shui_gui_chong(Poem_Game) 鸣谢名单1:曦山,博雅,monika◆,列宁,ElixirGolem,一般通过の文学部部长 鸣谢名单2:小青坏蛋(K’Dash),以及转发该文档的各位 P.S.本教程只针对安卓移植,移植所需必要知识如安装mod,解包,反编译rpyc等请自行查看汉化教程
Shui_gui_chong 首先要明白mod大概可以分为三类 (1) 使用国外大佬制作的mod模板进行开发 (2) 直接拿原版ddlc当模板进行开发 (3) 用renpy提供的库,适当复制ddlc的资源文件进行开发 工具: Renpy (推荐版本7.3.5下载地址:https://www.renpy.org/dl/7.3.5/renpy-7.3.5-sdk.7z.exe), rpatool unrpyc mod的安装有两种方式,覆盖原版game文件夹或是自带启动器,安装完成后查看mod的game文件夹 一般如下,由几个rpa文件和文件夹组成,如果打开后发现没有rpa,是已经解包好的rpyc,图片等可无视解包这一步。 rpa文件是无法被安卓打包工具读取的,所以要先进行解包,解包后如下 现在全由文件夹和其他文件组成(rpyc或是mod资源),这里需要注意,如果ddlc原文件的优先级要低于mod的优先级,比如源文件中有gui.rpyc这个文件,mod中也有同名文件(一开始没有包含进rpa),那么要使用mod中的gui.rpyc 打开renpy,找到这个工程 点击启动工程,测试可运行度 然后95%的mod都会弹出这个页面(如没弹出正常运行工程,则是后两种没有使用mod模板的情况,可直接跳到打包安卓) 这是mod模板为了检测有无ddlc源文件而写的保护措施中的抛出错误(具体原理不在这里论述) 找到game文件夹中的splash.rpyc,使用unrpyc反编译得到rpy文件 将这一段删除后放入mod的game文件夹 然后再次启动工程就可以打开了,也会自动编译splash.rpyc 确定是mod模板的作品之后,还需要另一步操作 Mod模板自己写了一套发行版生成代码,会对安卓打包造成影响, 导致rpyc文件和一些mod专属文件夹无法打入安卓包(apk) 它的位置在options.rpy,使用unrpyc反编译options.rpyc后翻到最下面几行 从最上面的” init python:”开始,将图片中包含的代码全部删除即可 再次运行工程,编译文件
Shui_gui_chong 做完这些基础工作,接下来是比较简单的安卓移植 如mod没有使用mod模板,可直接跳到这里 在renpy的工程页面,点击”安卓” 随后下载rapt 下载完成后,显示如下界面 如果你没有下载JDK,renpy还会提示你下载,在Oracle下载后安装即可 随后点击”安装SDK并创建密匙”按钮,下载完成后会询问是否生成密匙,点击是并随便写一个喜欢的密匙 然后点击”配置” 对apk进行配置 应用全名,即安装时显示的名称或是安装完成后显示在设置里应用列表的名称 应用简称即手机桌面上显示的名称 包名称随意(很少有人关注这个) 下面三个选项随意 随意*3 选择”不支持内购” 这里,如选择第一项,则会生成一个完整的apk。选择第二项会生成一个携带obb数据包的apk,推荐第一项 有可以上网的mod么(?) 如果不对rapt工程进行修改的话,请选择第一项 配置到此结束,可以点击”生成应用包”生成apk了 构建成功后apk会存放在两个目录,renpy工程目录会生成一个新文件夹名称是[mod名称]-[版本号]-dists或者renpy文件夹中的rapt\bin目录,此时有四个apk,选择universal版即可 2020/10/31更新 rpyc全部打入包内却不能运行?那么就是代码不支持了 如果不支持的代码位于开头读取界面的位置(抽象max)就会直接闪退 我们要做的就是把这一条代码删除 寻找的过程是根据你的经验来的,所以我在此也无法说明,在这里分享一下最容易出现错误的一条代码。如果你发生了如上情况,请看下文 在definitions.rpy中有一条restore_all_characters()的定义如下图 意思是读取chr文件,这里可以忽略,要明白安卓移植是不存在外部可读取文件的,所以read()就会报错,那么我们把这一段删掉 另外由于游戏内部存在调用,直接删除定义会导致新的报错,所以我们不删除它的定义,只删除它定义的内容,最好补充一个return即可
Shui_gui_chong 那么mod移植教程到此结束,以下是一点小附言 1. renpy中文文档的移植相关操作教程,可以参考一下,重点是里面教了如何修改apk图标,我就不教了(屑)那两个图标文件在renpy文件夹\rapt\templates中 地址https://www.renpy.cn/doc/android.html 2. Rapt文件夹中有一个blacklist.txt,可以在里面写上不需要打入apk的文件,让你的apk更整洁,我也不教了(屑)估计一块看就知道怎么写了。至于whitelist.txt,存在感太小了直接无视吧(?)
HERO-科艺 非常感谢sgc大佬的这份移植教程,真的让我受益了很多,通过学习这份教程我也自己试着移植了几个简单的MOD,然后根据自己有限的经验,想着能给移植的MOD做一点自己的优化。 我们都知道电脑和手机的屏幕大小有区别,所以有的时候移植好的MOD放到手机上可能会是这个样子 很明显,文本跑到了对话框的外边,虽然说也无伤大雅,但总归还是看起来不太舒服吧,那么要如何解决这个问题呢。 首先,我们要明白控制文本位置、字体大小等的脚本是gui.rpy,那么为了让文字不错位,我们就需要对gui.rpy做一些小的调整,但是我们可能会担心,如果改成了适应手机屏幕的位置的话,电脑上会不会又显示错位了呢?其实这一点,不用担心,我们先打开gui.rpy看看里面都有些什么 应该能看出来,截取的这一部分是设置游戏中各种字体的字号的,但是先别急,我们接着往下看 可以看到,似乎有些和上面相同的设置,那么下面的这些部分又有什么用呢,我们不妨看看它的注释: This changes the size and spacing of various GUI elements to ensure they are easily visible on phones. 翻译:这会更改各种GUI元素的大小和间距,以确保它们在手机上容易看到。 这样我们就明白了,下面的这些的设置是仅在手机上应用的,所以我们只需要改一改它的部分变量的值,就能让文本在手机上正常的显示了,这里方便大家进行修改,我把MOD模板一般用的数值展示一下,供大家参考 gui.text_size = 25 gui.name_text_size = 26 gui.notify_text_size = 25 gui.interface_text_size = 28 gui.button_text_size = 30 gui.label_text_size = 28 gui.textbox_height = 240 gui.name_xpos = 360 gui.name_ypos = 55 gui.text_xpos = 260 gui.text_ypos = 116 gui.text_width = 740 gui.choice_button_width = 640 gui.navigation_spacing = 20 gui.pref_button_spacing = 10 gui.history_height = 190 gui.history_text_width = 690 gui.file_slot_cols = 2 gui.file_slot_rows = 2 gui.nvl_height = 170 gui.nvl_name_width = 305 gui.nvl_name_xpos = 325 gui.nvl_text_width = 915 gui.nvl_text_xpos = 345 gui.nvl_text_ypos = 5 gui.nvl_thought_width = 1240 gui.nvl_thought_xpos = 20 gui.nvl_button_width = 1240 gui.nvl_button_xpos = 20 gui.quick_button_text_size = 18 大家只要找到对应的变量,然后将数值修改成上面展示的,这样我们的文本就不会显示错位了 给大家看一下我移植的48HR(樱花翻译) 可以看到,文字没有错位。 另外,如果MOD不是用MOD模板制作的,要修改的数值可能会不太一样。 基本就是这样了,希望能帮到大家!