找回密码
 立即注册

QQ登录

只需一步,快速开始

简单一步 , 微信登陆

手机号码,快捷登录

快捷导航
发帖
首页收藏加入我们入正指南:正版资讯小黑屋
系统
9分钟前
全站
2小时前
全站
10小时前
全站
16小时前
系统
16小时前
系统
18小时前
系统
18小时前
全站
21小时前
系统
21小时前
全站
21小时前
全站
22小时前
系统
22小时前
全站
23小时前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
系统
1天前
全站
1天前
全站
1天前
全站
1天前
系统
1天前
全站
1天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
全站
2天前
系统
2天前
系统
2天前
全站
2天前
全站
2天前
全站
2天前
系统
2天前
系统
2天前
全站
2天前
系统
2天前
系统
2天前
全站
3天前
全站
3天前
系统
3天前
系统
3天前
系统
3天前
查看: 213|回复: 8
收起左侧

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

[复制链接]

族谱关系0
发表于 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的基本操作。谢谢各位的支持。


评分

参与人数 3S币 +100 辣条 +9 收起 理由
鱼子酱糖宝 + 2 给力!
北城卧龙 + 100 + 6 哇,朕果然看对了人,大佬加油!
samysims4 + 1

查看全部评分


共收到 0 菊花
打赏榜
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
楼主热帖

族谱关系0
发表于 2021-3-17 08:36:40 三宫六院APP更新啦! | 显示全部楼层
十分感谢,期待教程!
贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 1000 个字符
回复 支持 反对

使用道具 举报

族谱关系0
发表于 2021-3-17 13:27:42 | 显示全部楼层
期待期待,后续辛苦大大了~
贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 1000 个字符
回复 支持 反对

使用道具 举报

族谱关系57
发表于 2021-3-17 14:37:30 | 显示全部楼层
哇,朕果然看对了人,大佬加油!期待这一伟业的实现!
贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 1000 个字符
回复 支持 反对

使用道具 举报

族谱关系0
发表于 2021-3-17 16:31:12 | 显示全部楼层
期待教程!
贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 1000 个字符
回复 支持 反对

使用道具 举报

族谱关系0
 楼主| 发表于 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-3-17 19:39 回复
B Color Smilies
还可输入 1000 个字符
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

下载客户端
安卓客户端 苹果客户端

快来加入我们吧!!

官方微信公众号

三宫六院吧

(豫ICP备2021003909号-1 | 豫公网安备41010302002732号)

Powered by Discuz! © 2001-2020 Tencent Cloud.

公众号| 手机版| 小黑屋| 三宫六院涅槃社区

GMT+8, 2021-4-15 18:32