本帖最后由 LA001 于 2021-3-17 21:35 编辑
本节教程主要关注开发环境的配置和IDE的基本使用。
Python安装
首先是Python版本的问题。务必确保安装的是3.7x版本,任何3.6及以前或3.8及之后的版本均不可使用。个人在这里的建议是单独从官网下载一个Python 3.7的安装包。链接如下(这里用的版本是3.7.9):https://www.python.org/downloads/release/python-379/
如果系统中之前没有安装过Python,勾选Add to Path选项后直接默认选项安装即可。若已安装其他版本的Python,安装时不要选择Add To Path选项,选择Customized Installation,参考以下几张截图中所给选项进行安装。(截图时有个错误,Optional Features界面第二行的pip也要选上)
这么做的主要原因是不让3.7这个较老版本与已有Python版本冲突。如果你很清楚截图中每个选项代表什么,也可以自行取舍。
注意,安装路径中不得含有空格!此处我的Python 3.7.9安装目录为C:\Users\Lincoln\Development\TS4\Python\python.exe,如上图2.
反编译
安装完成后,我们来处理模拟人生4接口的反编译.进入游戏安装目录中找到base.zip, core.zip, simulation.zip三个压缩包(通常路径为C:\Program Files\The Sims 4\Data\Simulation\Gameplay),复制到自己创建的一个项目工作目录下,全部解压。这里我的工作目录是C:\Users\Lincoln\Development\TS4\Dev,往后的教程中均以此为示例。
下一步调用Python包管理器pip安装反编译工具uncompyle6。打开Windows命令提示符(开始菜单搜索可以找到),按以下格式输入指令并回车运行:
{PYTHON_INSTALLATION DIRECTORY} -m pip install uncompyle6
命令开头是Python 3.7的安装路径。在我的系统中,完整的指令即为:
C:\Users\Lincoln\Development\TS4\Python\python.exe -m pip install uncompyle6
如图(这张图是后截的,所以输出会不一致):
耐心等待安装完成,会出现successfully installed的文字提示。
然后开始反编译。前往Windows PowerShell(可在开始菜单搜索得到),使用cd指令定位到项目的工作目录(即三个压缩包解压得到的文件夹所在的目录)。
例如,我的工作目录是C:\Users\Lincoln\Development\TS4\Dev,则输入以下命令:
cd C:\Users\Lincoln\Development\TS4\Dev
然后回车。
下面输入以下命令:
dir -recurse -include *.pyc | %{{PYTHON_INSTALLATION DIRECTORY} {UNCOMPYLE6_INSTALLATION DIRECTORY} -o “$_.py” “$_”}
{PYTHON_INSTALLATION DIRECTORY}为Python安装目录,上面已经讲过。{UNCOMPYLE6_INSTALLATION DIRECTORY}为反编译程序的安装目录。在Python安装文件夹的Scripts文件夹下。
例如,在我的系统中,反编译程序路径为:
C:\Users\Lincoln\Development\TS4\Python\Scripts\uncompyle6.exe
完整的命令则为:
dir -recurse -include *.pyc | %{C:\Users\Lincoln\Development\TS4\Python\python.exe C:\Users\Lincoln\Development\TS4\Python\Scripts\uncompyle6.exe -o “$_.py” “$_”}
请仔细输入,注意花括号和空格的存在,使用英文输入法。
输入完成后回车运行。因为有大量的文件需要反编译,整个过程会极其占用计算资源且极其漫长,请耐心等待,反编译过程应类似下图:
中途如果注意看会发现有decompile failed的情况出现,不必担心。这里也扯一句不算题外的话,EA本身对第三方开发者真正开放的接口几乎为0,许多功能性模组的开发需要自己反编译来“挖掘”出一些可用的接口。整个功能性模组开发过程就宛如戴着镣铐舞蹈。有一些文件反编译错误本属正常现象,也并非我们所能控制,只能利用好能挖掘出来的资源。
等待一段时间(测试的i9-10900K平台上约40分钟)后反编译全部完成。PowerShell窗口不要关闭,输入第二个命令来更正反编译结果文件拓展名(建议直接复制粘贴):
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(“.pyc.py”,”.py”)}
稍等十几秒后执行完毕。打开项目目录下文件夹里的文件类型应该类似下图:
至此,反编译的步骤完成。一般来说,没有大版本更新的话这个反编译操作只需做一次。
IDE配置
本次教程的最后一部分是IDE(集成开发环境)的配置。为了方便起见,本教程中IDE使用JetBrains公司的PyCharm社区版本。
下载地址:https://www.jetbrains.com/pycharm/download/
选择右侧的Community版本下载,默认安装选项安装即可。
安装后打开,选择新建项目,会出现类似下图界面:
首先选择一个目录存放PyCharm项目文件,然后点击Interpreter那一行右侧的三个小点进入如图示的Python解释器配置界面,如下图:
选择System Interpreter,定位到之前的Python安装目录(PyCharm有可能会自己找到,不过请再三确认),确认后新建项目页面应该类似下图:
打开新建的项目后,前往菜单栏File-Settings-Project: XX(项目名)-Project Structure,点击右侧Add Content Root,如图:
添加你的项目目录下base/lib,/core,/simulation三个文件夹(可按住control键多选),完成后界面应类似下图:
然后依次点击新添加的三个文件夹,每选中一个后点击上侧Mark as部位的Sources将其标记为源目录。全部标记完后应类似下图所示:
一切无误后,点击右下角Apply回到编辑器界面。左侧的资源管理器展开后应类似下图:
至此,IDE已配置完成。
如果你看到了这里并且上述操作均没有问题的话,恭喜你已经完成了功能模组开发的第一步也是重要一步。这一节内容虽然繁琐,但作为基础环境搭建对后续开发非常重要,请务必重视每一个细节。
感谢各位的阅读,下面一节计划的内容是最简易的Hello World脚本的开发实现。这篇教程写作时尽可能做到通俗易懂,但有些知识还是绕不开的。所以为了下一节的内容,建议有时间有兴趣的读者可以去了解一下Python的函数装饰器有关知识。
本教程在一定程度上参考了外网教程https://levelup.gitconnected.com ... -setup-83d1a100c5f6,英文能力强的朋友们也可去自行了解一下。
|