查看: 1780|回复: 15
收起左侧

[教程] 模拟人生4功能性模组教程

[复制链接]

发表于 2021-3-17 03:23:00 | 显示全部楼层 |阅读模式

快快登录说出你的故事吧~!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
写在教程之前


@北城卧龙 跟我说了国内社区功能模组相关作者比较少,让我来做做这块。楼主对Python等语言算是熟悉,但说实话之前也并没有了解过多少TS4功能模组的开发。因此,我的构想是在自己在去外网找资料学这一方面的同时,把自己的理解阶段性地总结出来,形成一个基本但成系统的教程,以期起一点抛砖引玉的作用。也期待有更多懂技术且热爱模拟人生的人们加入制作的行列。


因为楼主最近还有科研项目要做,时间不算非常充裕,所以目前暂定的更新频率是1~2周一次,如果有什么疑问和建议都可以提,尽量做到每天回复。


楼主目前在Mac上未安装模拟人生4,所以当前的教程主要面向Windows平台开发,macOS平台的支持有条件的情况下会后续跟进。


开始这篇教程前,建议掌握的知识有Python基础信息搜索能力。Python是这个教程的主要编程语言,也是一门很简洁优雅的语言,如果有兴趣入门的话可以去看看Head First Python这本书的前几章;同时,这个教程会尽量多囊括一点内容,但实践中不可避免的会遇到别的各种问题,这时候就需要能自主高效地搜寻解答,考虑到功能模组这块中文互联网有关资料实在不多,个人比较建议用英文去Google搜寻答案。


扯远了。最近简单看了一些外网的教程,越发觉得这一块是摸着石头过河。不过我也希望能把这篇教程做好、做长久。8年前从2代开始接触模拟人生,4年前开始接触三宫六院,能为这款游戏和社区贡献一些绵薄之力也是幸事。


咖啡喝多了有些失眠,先写这么多。第一次更新应该在这两天发布,讲一讲开发环境的配置和IDE的基本操作。谢谢各位的支持。


评分

参与人数 6S币 +100 辣条 +12 收起 理由
姜姜姜姜喜奶茶 + 1 给力!
LENNYBBK + 1 感谢分享!
哈哈静 + 1 助人为乐!
鱼子酱糖宝 + 2 给力!
北城卧龙 + 6 哇,朕果然看对了人,大佬加油!

查看全部评分

楼主热帖

共收到 0 菊花
打赏榜
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
版权声明
本站积极遵守中华人民共和国各项法律法规,促进良好社会公共道德,鼓励劳动者劳有所得。
为保护作者和平台的共同利益,在本站发布的原创内容所包含模型、图片、代码等版权归作者和平台共有,平台承诺不将此权利行使于法律行为以外用途。
本站原创作品仅供购买或下载者本人使用,任何平台或个人擅自转载、售卖本站原创作品,本站均保留诉讼权利。
此条款自作品发布起即时生效。

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

发表于 2021-3-17 08:36:40 手机访问 | 显示全部楼层
十分感谢,期待教程!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2021-3-17 13:27:42 | 显示全部楼层
期待期待,后续辛苦大大了~
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2021-3-17 14:37:30 | 显示全部楼层
哇,朕果然看对了人,大佬加油!期待这一伟业的实现!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2021-3-17 16:31:12 | 显示全部楼层
期待教程!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-17 18:31:45 | 显示全部楼层
本帖最后由 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也要选上) Screenshot 2021-03-17 151739.png Screenshot 2021-03-17 151818.png
这么做的主要原因是不让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
如图(这张图是后截的,所以输出会不一致):
Screenshot 2021-03-17 182650.png
耐心等待安装完成,会出现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” “$_”}
请仔细输入,注意花括号和空格的存在,使用英文输入法。
输入完成后回车运行。因为有大量的文件需要反编译,整个过程会极其占用计算资源且极其漫长,请耐心等待,反编译过程应类似下图:
Screenshot 2021-03-17 163053.png
中途如果注意看会发现有decompile failed的情况出现,不必担心。这里也扯一句不算题外的话,EA本身对第三方开发者真正开放的接口几乎为0,许多功能性模组的开发需要自己反编译来“挖掘”出一些可用的接口。整个功能性模组开发过程就宛如戴着镣铐舞蹈。有一些文件反编译错误本属正常现象,也并非我们所能控制,只能利用好能挖掘出来的资源。
等待一段时间(测试的i9-10900K平台上约40分钟)后反编译全部完成。PowerShell窗口不要关闭,输入第二个命令来更正反编译结果文件拓展名(建议直接复制粘贴):
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(“.pyc.py”,”.py”)}
稍等十几秒后执行完毕。打开项目目录下文件夹里的文件类型应该类似下图:
Screenshot 2021-03-17 173412.png
至此,反编译的步骤完成。一般来说,没有大版本更新的话这个反编译操作只需做一次。

IDE配置
本次教程的最后一部分是IDE(集成开发环境)的配置。为了方便起见,本教程中IDE使用JetBrains公司的PyCharm社区版本。
下载地址:https://www.jetbrains.com/pycharm/download/
选择右侧的Community版本下载,默认安装选项安装即可。
安装后打开,选择新建项目,会出现类似下图界面:
Screenshot 2021-03-17 173946.png
首先选择一个目录存放PyCharm项目文件,然后点击Interpreter那一行右侧的三个小点进入如图示的Python解释器配置界面,如下图:
Screenshot 2021-03-17 174006.png
选择System Interpreter,定位到之前的Python安装目录(PyCharm有可能会自己找到,不过请再三确认),确认后新建项目页面应该类似下图:
Screenshot 2021-03-17 174016.png
打开新建的项目后,前往菜单栏File-Settings-Project: XX(项目名)-Project Structure,点击右侧Add Content Root,如图:
Screenshot 2021-03-17 174535.png
添加你的项目目录下base/lib,/core,/simulation三个文件夹(可按住control键多选),完成后界面应类似下图:
Screenshot 2021-03-17 174747.png
然后依次点击新添加的三个文件夹,每选中一个后点击上侧Mark as部位的Sources将其标记为源目录。全部标记完后应类似下图所示:
Screenshot 2021-03-17 175041.png
一切无误后,点击右下角Apply回到编辑器界面。左侧的资源管理器展开后应类似下图:
Screenshot 2021-03-17 175235.png

至此,IDE已配置完成。

如果你看到了这里并且上述操作均没有问题的话,恭喜你已经完成了功能模组开发的第一步也是重要一步。这一节内容虽然繁琐,但作为基础环境搭建对后续开发非常重要,请务必重视每一个细节。

感谢各位的阅读,下面一节计划的内容是最简易的Hello World脚本的开发实现。这篇教程写作时尽可能做到通俗易懂,但有些知识还是绕不开的。所以为了下一节的内容,建议有时间有兴趣的读者可以去了解一下Python的函数装饰器有关知识。



本教程在一定程度上参考了外网教程https://levelup.gitconnected.com ... -setup-83d1a100c5f6,英文能力强的朋友们也可去自行了解一下。


收起回复
土豪用I9
2021-03-17回复

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则