概述-什么是模拟人
什么是模拟人?他是一个存在在模拟人生世界里的物件。不要觉得这很冷酷无情,在游戏当中它就是一个会利用某种方式沟通和通过随机定时行为等方式运动的物件(Objects)。只不过这个物件的名称叫模拟人罢了。
一个模拟人从模拟人生世界中生成开始,就会有一些固有的变量和数据存在,这些是它的既有数据,例如小人的名字、年龄状态、生理性别、性取向、外观、穿着衣服组合、特性、以及当前情绪、需求等变量存在,这些变量随着时间的不断变化而改变,从而让每一个模拟人都能做到不同的动作或反应。
每一个模拟人在对应的存档,或模拟人生的游戏世界当中,有一个唯一的ID,名字叫simid。不管你在什么世界当中,如果你记住了这个simid,在游戏当中你就可以通过各种方式来修改它,不管它是否实例化到你当前的世界中。
一个模拟人,如归属在当前家庭且在当前社区的环境下为玩家可控状态(不包括使用mod进行改装而产生的NPC控制情况)称为可控实例化对象,家庭无法控制的在外社区或工作(兔子洞)的模拟人称为非实例化对象,玩家无法控制的模拟人称为当前社区下实例化的NPC。
而自己控制的模拟人,在开启了自由意志后,会通过“自由意志”及“自由意志buff”来控制小人随机性的产生互动,同时,自由意志当中的互动随机性是可以按照需求调整的,这些互动之间也是有优先级关系的,而优先级又可以因模拟人的特性或当前的需求变量而改动,最终就能做到为他们的那些既有变量在列举出了他们所有可做内容的列表后,依次排序并随机选出了最可能做的一些事情,从而使他们在模拟人生的世界里面独一无二。
再举一个例子,在相同条件下,每个开启了自由意志的模拟人都会有一个可以进行的按照优先级顺序进行的动作列表,如果模拟人在某个时间段出现了较长的空闲(idle)时,系统就会随机这个动作列表,并利用优先级顺序的将列表排序后随机找一件事来去做。这就是为什么有些模拟人喜欢一到家就一屁股坐在电脑面前,一些模拟人反倒回家会开始读书、做作业等行为。
Mod的方式就是调整和增加一个个的变量、动作列表、特性、互动等,来给模拟人提供更多的可能性。因此,本文接下来就是需要带你重新认识模拟人的组成,让我们更好的了解他们是如何运行的,从而编写mod让他们在我们自己的偏好下运作。
模拟人的组成-外观(CAS)
众所周知,模拟人,如同真人一样拥有自己的“身体”和“四肢”,因此具体到mod层面如何描述呢?在官方释义上,模拟人的外观(BodyType)大致有以下这些分类(共73种):
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
30 | | | |
34 | | | |
35 | | | |
63 | | | |
33 | | | |
28 | | | |
73 | | | |
71 | | | |
5 | | | |
| | | |
11 | | | |
13 | | | |
2 | | | |
75 | | | |
1 | | | |
3 | | | |
22 | | | |
| | | |
16 | | | |
17 | | | |
29 | | | |
7 | | | |
| | | |
26 | | | |
| | | |
12 | | | |
0 | | | |
| | | |
19 | | | |
64 | | | |
| | | |
65 | | | |
68 | | | |
67 | | | |
| | | |
69 | | | |
24 | | | |
| | | |
8 | | | |
| | | ?疑似为着火、日光浴或低卫生需求时等增加的全身覆盖选项 |
| SKINDETAIL_CREASE_FOREHEAD | | |
| | | |
40 | | | |
41 | | | |
39 | | | |
55 | SKINDETAIL_MOLE_CHEEK_LEFT | | |
56 | SKINDETAIL_MOLE_CHEEK_RIGHT | | |
43 | | | |
44 | SKINDETAIL_MOLE_LIP_RIGHT | | |
62 | | | |
36 | | | |
| | | |
| | | 纹身都得有,要不然蒸桑拿的时候才好让其他人怕怕啊,【纹身类部分,下同】 |
| | | |
46 | | | |
48 | | | |
49 | | | |
50 | | | |
51 | | | |
| | | |
| | | |
| | | |
| | | |
42 | | | |
| | | |
6 | | | |
| | | |
15 | | | |
在模拟人生4当中,模拟人外观上的所有部件(包括穿的衣服,首饰等),统一称作CASPart,而这里需要延申一个点:DefaultParts
故名思意,DefaultParts指的是默认组件,这个默认组件代表的意思是模拟人身上所有组件的默认状态,这个状态一般为模拟人什么都没穿的情况下的状态(BirthdaySuit),部分将下身细节修改的mod也是利用将自己的组件替换为模拟人的某个部分的默认组件才可以在它身上体现的。
因此,这里延申出来的DefaultParts可以再次延申出模拟人生的一个判断方式——如何判断模拟人果体?
模拟人上身(UpperBody)果体一般不会触发特殊类需求,但下身(LowerBody)如果出现任何导致其默认组件(DefaultPart)露出(指没有任何东西覆盖在上面,不包括覆盖一层透明衣服,但是通过一些手段,例如casparts强行覆盖在上面的,依旧算露出)的状态,即会被判定为果体,会触发对应的果体效果。
此外,模拟人的出厂默认部件当中,不论是男性和女性,都没有生殖器描写。(简短的说就是无洞无鸟)
还有一点需要注意的是,上述内容仅为模拟人部件的数量,而在身体变量方面,模拟人也是有一套相当细致的调整模式,例如MCCC当中的调整身体部分部位的数值(肚子大小,屁股大小等),这部分目前我暂未发现覆盖类mod可以进行修改的点,因此就不做多解释了。
但这里我需要简单概述两个变量(Commodity):Fit和Fat。
Fit,顾名思义,就是健身值的意思,它管理着模拟人的肌肉量,是的,就是你创建模拟人时那个杠铃滑块,调整滑块就是调整这个值的。不管你希望你的模拟人是一个毫无肌肉的中等身材女人,还是一个身材魁梧的肌肉兄贵,进行肌肉量的调整你都需要找到这个变量。变量的id是16590,名字叫“commodity_Fitness_Fit”。它的大小在-100到100之间。100就是妥妥的肌肉量爆棚,-100就是完全没有肌肉,如果配合Fat值-100的情况的话,可以做到让模拟人皮包骨头的外观。
Fat,原理同上,是肥胖值的意思,管理你模拟人的肥胖率,这个变量的名字叫“commodity_Fitness_Fat”,id是“16589”,跟fit一样,值在-100到100之间取。
使用这两个变量可以更改你的模拟人整体外观状况。这里要注意的有几点:
1、 这两个变量是独立调整的,意思是这个人也可以很胖很有肌肉,也可以很有肌肉但很瘦(受吗?)。
2、 变量调整后有些模拟人不是立刻进行变化的,可能需要过至少3个模拟时以上才会生效。
3、 变量调整与技能无关,例如健身技能。但健身技能提升和使用健身器械是会调整这些值的。
4、 这些内容的变化与MCCC当中的Physique更改是一致的,因此针对肚子和屁股一类的调整跟上述两个值无关。(Cartman:I’M NOT FAT,I JUST HAVE BIG BONED!!!)
5、 过胖过瘦以及过壮过弱是会给小人主动加上buff的,名字分别叫Buff_MaxFat\Buff_MinFat;Buff_MaxFit\Buff_MinFit。根据不同情况这些buff甚至会提供mood。
基本上,以上几个内容就是模拟人在外观上面的一些细节认识。至于如何更改这些值以达到最核心的效果,嗯,那是后面坑…额教程的事情,本文暂不展开。
模拟人的组成-内在(Traits、Buffs、Mood)
说完了模拟人在外观上面的认识,现在应该来说说模拟人的内在了。
一个模拟人,除了拥有美丽的外在,还得拥有丰富的内在,才能被我们不断的蹂躏…额不是,不断为我们的展现出它独特的一面。
这里,先说说模拟人的三个内在重点:Traits、Buffs、Mood。
Traits指的是特性,特征,特点,就是在创建小人时你选的那些性格。他的作用展现了模拟人的不同性格特征,例如Sad的Traits可以让小人不定期伤心(Mood),并且可以选择在床上哭泣(buff\moodBuff)。说完了模拟人在外观上面的认识,现在应该来说说模拟人的内在了。
一个模拟人,除了拥有美丽的外在,还得拥有丰富的内在,才能被我们不断的蹂躏…额不是,不断为我们的展现出它独特的一面。
这里,先说说模拟人的三个内在重点:Traits、Buffs、Mood。
Traits指的是特性,特征,特点,就是在创建小人时你选的那些性格。他的作用展现了模拟人的不同性格特征,例如Sad的Traits可以让小人不定期伤心(Mood),并且可以选择在床上哭泣(buff\moodBuff)。
Traits在被模拟人应用后,这个traits是可以长期调用buffs或mood的,因为每次模拟人的实例化之后,除非互动或其他操作将该性格取消外,traits是永远带入的,这也对应了它为什么称为性格或特征的原因。
一个Traits分为显性Traits和隐性Traits,显性Traits就是你能够在编辑模拟人时选择的那些Traits,隐性Traits就是可以通过奖励或特定形式获得的,例如商界精英特性(business savvy)和诡奇小镇感染特性(StrangerVille_Infected)。而隐性Traits当中还有一个类型叫隐藏Traits,这种类型的Traits不会显示在模拟人的特性列表当中,但确实是相当重要的类型。例如模拟人的惯用手、年龄特性、性别特性、以及最近新出的喜好厌恶功能,都是隐藏Traits。
在有了Traits之后,就来讲讲跟Traits跟的最紧的两个部分:Buffs和Mood。
先说Mood吧,它也相当直接,它是模拟人生4的新功能,各位的老熟人:“状态良好”、“伤心”、“快乐”、“无聊”…这些模拟人的当前状态就叫mood,或者说“情绪”。一个Mood有自己的代表色,文字等。一般情况下还可以有一个到多个的附属buff,来进行一些实际的干扰操作。而抽象意义上的Mood本身没有任何的功能效应,只是一个展示颜色和模拟人外观+播放声音的类。具体的操作内容还是需要根据Buff来进行。
而说到Buff,最大的功能还是调整模拟人具体行为特性的,例如“生气”这个mood对应的buff作为存在检测,将部分的动画和互动(Intercation)替换为生气版,而在“紧张”这个mood下,部分互动是无法操作的,而这些内容都是buff带来的,当然,一个buff不止可以在mood下使用,在互动(Interaction)当中使用也是可以的。但是这属于另外一个坑(嗯),这里就不做展开了。
这里重申一下,如果你打开过模拟人生的官方tuning的话,你会发现部分buff名称加上了moodbuff这个词,该词只是用来标记这是一个mood的buff,实际上并没有这种类型的buff;在模拟人生当中,buff是可以被其他类(如互动、loot、Traits甚至是其他buff)调用的,这点很重要。
Traits在被模拟人应用后,这个traits是可以长期调用buffs或mood的,因为每次模拟人的实例化之后,除非互动或其他操作将该性格取消外,traits是永远带入的,这也对应了它为什么称为性格或特征的原因。
一个Traits分为显性Traits和隐性Traits,显性Traits就是你能够在编辑模拟人时选择的那些Traits,隐性Traits就是可以通过奖励或特定形式获得的,例如商界精英特性(business savvy)和诡奇小镇感染特性(StrangerVille_Infected)。而隐性Traits当中还有一个类型叫隐藏Traits,这种类型的Traits不会显示在模拟人的特性列表当中,但确实是相当重要的类型。例如模拟人的惯用手、年龄特性、性别特性、以及最近新出的喜好厌恶功能,都是隐藏Traits。
在有了Traits之后,就来讲讲跟Traits跟的最紧的两个部分:Buffs和Mood。
先说Mood吧,它也相当直接,它是模拟人生4的新功能,各位的老熟人:“状态良好”、“伤心”、“快乐”、“无聊”…这些模拟人的当前状态就叫mood,或者说“情绪”。一个Mood有自己的代表色,文字等。一般情况下还可以有一个到多个的附属buff,来进行一些实际的干扰操作。而抽象意义上的Mood本身没有任何的功能效应,只是一个展示颜色和模拟人外观+播放声音的类。具体的操作内容还是需要根据Buff来进行。
而说到Buff,最大的功能还是调整模拟人具体行为特性的,例如“生气”这个mood对应的buff作为存在检测,将部分的动画和互动(Intercation)替换为生气版,而在“紧张”这个mood下,部分互动是无法操作的,而这些内容都是buff带来的,当然,一个buff不止可以在mood下使用,在互动(Interaction)当中使用也是可以的。但是这属于另外一个坑(嗯),这里就不做展开了。
这里重申一下,如果你打开过模拟人生的官方tuning的话,你会发现部分buff名称加上了moodbuff这个词,该词只是用来标记这是一个mood的buff,实际上并没有这种类型的buff;在模拟人生当中,buff是可以被其他类(如互动、loot、Traits甚至是其他buff)调用的,这点很重要。
模拟人的组成-模拟人与其他人的称呼(Participants)
看到小标题请不要太担心,这里并不会考验大家的模拟语说的怎么样,而是要让大家了解,模拟人生当中操作的应用的不同对象。虽然不展开讲解互动类(Intercation),但是提前知道作用对象和范围是什么,那么在后期去进行互动改编的时候理解作用对象就会清晰很多。
首先,还是让大家先看一下这个表格,了解一下模拟人生当中有多少个应用对象类别。
| | | |
| | | |
| | | |
| | | |
56 | | | |
59 | | | |
81 | | | |
110 | | | |
93 | AllInstancedActiveHouseholdSims | | |
| | | *在模拟人所在街区内的所有模拟人(含自己、含NPC) |
| | | |
| | | |
6 | | | |
| AssociatedClubGatheringMembers | | |
54 | | | |
53 | | | |
44 | | | |
13 | | | |
9 | | | |
51 | | | |
4 | | | |
| | | |
50 | LotOwnerSingleAndInstanced | | |
| | | |
70 | | | |
69 | | | |
24 | OtherSimsInteractingWithTarget | | |
29 | | | |
25 | | | *一般会使用Picker让玩家选择后使用该方式返回的模拟人 |
| | | |
37 | PregnancyPartnerTargetSim | | |
65 | | | |
66 | | | |
46 | | | |
47 | | | |
48 | | | |
49 | | | |
27 | | | |
28 | SignificantOtherTargetSim | | |
23 | | | |
| | | |
21 | | | |
30 | | | |
45 | | | |
61 | | | |
57 | | | |
82 | | | |
105 | | | |
3 | | | |
| | | |
由于模拟人生4当中的称呼(参与者,Participants)非常多,这里利用示例讲述一下表格中黄色背景下使用较多的方式。
Actor:本人,作用于模拟人自身。
TargetSim:目标人。
举例:当一个模拟人对另外一个模拟人使用“毒云”互动时,一个模拟人=Actor;另外一个模拟人=TargetSim
这个图示简单吗?
AllInstancedActiveHouseholdSims:所有实例化的当前家庭模拟人
AllInstancedSims:所有实例化的模拟人
AllOtherInstancedSims:除了当前模拟人外其他所有实例化的模拟人
AllSims:所有模拟人,包括其他世界的所有虚拟人
举例:家庭里有一位男模拟人,是目前正在游玩的模拟人,还有一位女模拟人,一位男学生正在上学;而外面有一个女佣和两个邻居。
AllInstancedActiveHouseholdSims =家庭里的男模拟人和女模拟人;
AllInstancedSims=家庭里的男模拟人、女模拟人,女佣及两个邻居
AllOtherInstancedSims=家庭里的女模拟人、女佣及两个邻居。
那这个呢?XD
如果你觉得上面那张图不好看的话,我将关系图划分的部分单独做了一张,见下:
所以,你现在了解模拟人生当中的称呼(参与者)类型了吗?XD
模拟人的组成-常见变量(Commodity)
在前文当中已经提到了,一个模拟人自身会带着很多变量,而添加/修改这些变量方式就是mod的核心,而Commodity作为TuningMod,甚至是InjectedMod的核心,是一定要介绍的。
Commodity名字虽然直译叫商品,但它简而言之就是一个可以根据不同情况调整的通用变量,例如:模拟人的需求、肌肉指数、各性格的潜在动机等,你可以直接设定它对于目标参与者的数量或随机生成一个范围内的数值,以及确定它的满意/痛苦临界点,并确定他们在日常生活中的消耗曲线,甚至是消耗比率等等等等。
下面,这里就给出一些常见的变量,供各位未来需要调用时使用。