《上古卷轴5》动物随从mod制作教程 怎么制作动物随从

时间:2016-02-14 来源:88130安卓下载 作者:佚名

  《上古卷轴5》自己制作一个动物随从做宠物是不是也很有趣,下面为大家带来《上古卷轴5》动物随从mod制作教程,教大家怎么制作动物随从,一起来看看吧。

  各种随从制作的教程已经很多了,唯独没有动物随从(宠物)的制作教程,于是决定来一波教程。这里说的宠物指狗这一类,也就是你可以带着你家莱妹(占随从位),还可以带着一条狗(占宠物位)(或者我们自己做的某种生物),还有一匹马(占坐骑位)

  为照顾各位小白,本教程尽可能详细,但过程繁琐请耐心看完

  本教程使用的ck为英文版(稳定一点),我会翻译出来,而且和中文版位置一样,应该不影响使用。英语渣的同学注意看翻译。

  制作工具:CK(CreationKit)(下载地址:点击进入)

动物随从制作教程

  好的,教程现在开始。

  打开ck

  选择档案:

  skyrim必选,其他的如果你需要用到其他DLC的内容,比如死亡猎犬什么的,把对应DLC勾上。

  点OK,然后开始载入,过程挺久,由电脑配置决定。中途一切报错弹窗一律  取消(Yes to all),慢慢等会载入的。如果发现某个窗口取消又不断弹出,而点 否(No) CK会崩掉,这是你电脑或CK安装的问题,这种情况不在本教程讨论范围内,请自行查找解决办法,

  转了半天,各种取消,终于载入完成

  首先我们现新建一个新的种族(必须)。先确定你要做什么,鸡呢,牛呢,龙呢,狼呢,还是……人?(也可以的哦)

  本教程以人为例(瞬间暴露疯狂本性),于是找个人的种族,什么精灵,诺德,虎人都随便的啦……,要做别的就找别的,嗯这里需要一点英文基础,因为游戏中原有物件的ID是不可能汉化的。英文渣的救星:鸡chicken 牛cow 狼wolf 兔子hare 龙dragon 虎人Khajiit,种族Race,其他的自己百度或有道吧……

  另外,没有攻击动作的种族,无法造成伤害,你可以加斗篷魔法或其他什么手段造成伤害,本教程不涉及这些。没有偷窃动作的种族,同理不能命令他去偷东西。

  思考后决定:虎人,就是你啦,做我的宠物吧(丢出大师球……)

  做一个虎人宠物的种族,新建太麻烦,我们找个参考,就用原版虎人。在物品窗口,角色(Character)——种族(Race),找到khajiitRace(虎人种族),可以键入检索

  双击打开,记得先改名字,否则会修改到原版虎人,那就麻烦了

  修改如下图,可自由发挥,注意重要的几条

  1.允许PC对话 一定要勾,这样你才能E键激活它

  2.不能开门,一定不勾,有的话勾掉,这样他才能随你到海角天涯

  3.可扮演,不勾,(应该会添加新的可选种族?总之建议不要勾,出啦问题别怪我)

  4.右边的关键词一定要有ActorTypeAnimal,一定没有ActorTypeNPC

  其他选项卡可以自由发挥,事实上参考原版就行,几乎没什么可改的啦,但如果你的宠物需要战斗或者其他造成伤害的魔法什么的,请不要勾下图中这个选项,有也要勾掉。

  然后,点OK(确定),提示是否要新建一个(窗口如下图),点确定就能新建一个。如果提示ID不唯一,把ID改一下然后OK,同前。

  ps:如果点否就会把原版虎人ID改掉,要注意不要点错。

  点完后之后窗口关掉了,可以看到刚才我们新建的种族,右边代码上还有*,表示被修改过。本例中我新建的种族ID是00PetKhajiitRace。

  建议要经常保存,因为CK容易崩,而且做错了重新载入也不会损失太多步骤。

  点保存后要取名,看喜好取一个,你开心就好。

  然后我们新建一个人物来做我们的宠物,找一个原版人物做参照,还是找物品窗口:人物(Actor)——人物(Actor)——某种族(**Race)(如果你知道他是哪个种族,本例虎人)

  检索的话有名字写名字,普通动物就写某动物。本例中虎人,大家都熟悉 杰·扎格,就要他了。

  双击打开之后,如图修改



  其他选项根据自己情况来改。

  PS取名字的时候不能使用中文,写中文会乱码,包括CK里制作的任何内容,请务必写英文……如需中文请进行汉化

  完成后点OK,照旧提示是否新建,点确定(OK)新建然后找到我们刚才新建的人物再次打开,我取的ID是00Petjzargo

  双击打开,我们来给它添加脚本,作用是只要我们没有宠物,并激活它,它就会成为我们的宠物。

  点Add(添加)后, 短暂卡顿,并会有报错,照旧点取消,然后打开了一个脚本列表(咦?好像暴露了我写的其他脚本)

  双击[New Script]后,打开新建脚本的窗口

  填完点OK,回到人物的页面,就会看见我们新建的脚本,如图我取的脚本名字是PJScript,鼠标右键点击

  然后就打开一个窗口,这个窗口已经有两行文字了,说明如图



  接着我们要在下面写执行功能的语句,这个脚本是挺麻烦的东西,我就不详细教了,专注做宠物先。

  直接复制以下文字,粘贴接到刚才那两行后面,注意另起一行。这里面右键没菜单,用快捷键Ctrl+V粘贴。

  如果你不知道这些语句是什么作用,请不要修改它。

  DialogueFollowerScript Property DialogueFollower Auto

  GlobalVariable Property PlayerAnimalCount Auto

  auto state Waiting

  event onActivate(objectReference AkActivator)

   ;if player does not have an animal, make this animal player's animal

   If PlayerAnimalCount.GetValueInt() == 0

    (DialogueFollower as DialogueFollowerScript).SetAnimal(self)

   EndIF

  endEvent

  endState

  state done

  endstate

  好的,复制完之后,保存,提示如图就成功了,然后关掉窗口。

  又回到熟悉的人物窗口,双击刚才写好了的脚本,关联变量,这个为什么做,不好解释,我就不解释了。

  如果你们要学脚本,可以自己看教程(需要英文基础,嗯,还需要……穿越的梯子?)

  按图里的提示做,只要那两项里面和图里是一样的就行,然后OK保存就好。

  之后人物就做好啦,人物窗口那里点OK。之后最好保存一下esp(你不怕做错或突然崩溃数据丢失也可以不保存的嘛,但经常保存是好习惯呀)

  好了,人物有了,我们来讲讲人物外观(模型)。人物的果体其实也是一件衣服(armor,直译盔甲),换衣服其实是把整个身体都换掉了。天际里的衣服一件会有很多个模型,这些模型会被用到不同的种族。也就是说,同一件衣服,给不同种族穿模型可能是不同的。因此一件衣服下可能会有多个模型设定,CK里叫(ArmorAddon,直译盔甲附件,根据它的作用我们就叫它模型信息好了)。

  我们找一个皮肤(盔甲)来做例子,教程里做的虎人,我们看看虎人的皮肤。按之前讲的,种族(Race)里找到虎人种族(KhajiitRace)。

  双击打开,我们可以看到,它的皮肤是SkinNakedBeast。

  然后我们在物品窗口中,物件(Items)——盔甲(armor)中可以找到SkinNakedBeast

  双击打开,我们就能看到,如图,红圈里是种族,红色方框里就是我们刚才所说的 “模型信息”(我取的名字,哈哈)。虎人这个皮肤里由四个部分,头、身、手、脚(其他人,精灵也如此),一般动物则只有一个部分。

  调到其他种族可以查看那个种族对应的模型(当然大部分是空的,因为这个皮肤叫野兽*体皮肤,可见亚龙人应该也会有)。

  那么问题来了,我们的种族是新建的,所以,不会有模型信息,结果就是,什么也看不见的一团空气。额虎人还好一点,因为头模输出了,你能看到:一个飘着的头

  所以我们需要给我们的宠物来指定皮肤。我们直接就着原版的改就好了。如下图。

  PS:因为衣服也是一样的,所以你的宠物是人的话,衣服没有添加这个新种族的模型信息,所以结果理论上就是,穿上衣服身体就不见了,穿上鞋,脚就不见了。但目前就我自己测试来看,穿上后还是*体,还不至于全没了,还是很令人欣慰的。当然你可以直接把某衣服的模型作为皮肤,这样不穿衣服也会有衣服了。教程这里就干脆裸奔啦!!不过还要注意,如果你装了SOS,那是按种族加JJ的,SOS当然不可能给你的新种族加JJ,所以……算了太滑稽我就不说了

  依次打开四个,都按下图做一遍。其实就是参照这四个都各新建出一个给新种族用的模型信息。

  我是直接ID前加00了,大家做的时候还是勤一点,改得特殊一点,比如再加名字缩写啦,加个SB啦,这样MOD之间不容易有冲突。不然我加00,你也加00,最后不同MOD项目里有同一个ID,轻则一个被另一个覆盖,重则CTD

  额,图里忘说了左边两个框里,上面一个是男性模型,下面是女性模型。因为我们参照原版的做,已经设好,我们不需要改动,如果想要改模型,自行修改。

  然后,我们照着SkinNakedBeast,也一样改ID新建一个皮肤,选择我们的新种族,然后加上四个我们给它做的模型信息



  改完OK,完成新建。例子中,新皮肤名字叫00SkinNakedBeast

  然后我们在种族里找到我们的新种族,如图皮肤那里,选择我们的新皮肤。

  为了保险的话,我们新建的虎人宠物下也可以选上这个皮肤。

  然后,这些都做完,保存,我们的虎人就做出来啦。注意:有头模的人物(人、精灵、虎人之类),需要输出头模,否则可能会黑脸。我们在物品窗口里,选中这个人物,按快捷键Ctrl+F4,然后会有弹窗提示,就已经输出头模了。

  我们做完了还要把它丢到地图里,才能招募他。如图找一个位置

  双击打开,会卡顿,各种报错,照旧取消。然后等一会,发现渲染窗口里出现地图了。基本操作:滚动鼠标滚轮,拉近推远镜头。按住(不是滚)鼠标滚轮拖动,可以拖动场景。注意移动场景时,不要使用鼠标左键,左键拖动单个物体,一不小心就把一块地板拖出来了。鼠标点击选中一个物体,然后按住Shift移动鼠标可以让镜头以物体为中心旋转。按E可以开关物体平移模式,按w开关旋转模式,便于调整物体位置。

  熟悉操作之后就可以在里面四处游荡了,别忘了正事,把我们的宠物拖到地图里,如图,看到裸奔了吧

  放到满意位置之后,保存esp。现在我们只要和他对话,他就会跟着我们了。但是,还不能解散,不能等待,不能帮拿东西。

  太不完美了,所以我们来给它添加对话。当然,如果你做的是人,比如像我这样做虎人的,原版语音已经配了对话了,就可以不用加了。但解散和跟随,随从和宠物并不是一个脚本,所以解散和跟随对话虽有,但会失效,所以还需要各做一个解散和跟随的对话。以下工程量略大,您的耐心需要充值。如果你觉得上面的功能就够了,你就可以停下了。

  好啦,留下来的同学我们继续。我们在物品窗口里,角色(character)——任务(quest)里面找到DialogueFollowe

  双击打开了任务窗口,如图,这些对话中,想要什么功能就做什么,想要不想就不做,但如果做了“命令”的话,建议“命令过程"也要做。不然会有一些诡异情况,比如命令你家兔子时,他干完了突然冒出汪的字幕,那就很尴尬了。以下我只示范解散对话的制作,其余也一样,特殊的地方我将注明。

  好,栗子来啦,点解散的对话,在右边空处新建一个。新建时卡顿较长,并有报错,该怎么办你懂的……CK就是这么讨厌。

  然后就打开了这么一个窗口,这里是编辑对话中对方如何回应主角的。如图。



  OK之后,又自动打开一个窗口。看图

  新建弹出小窗口如图。

  完成后OK,修改对话的窗口也点OK,新建完成。但我们还需以一些修改,具体修改我们可以参照狗的对话,狗的对话都有一个括号,很明显的。注意事项见如下两图。

  另外,某些同学可能显示器分辨率不够,导致CK的窗口太大,点不到下面的OK,比如我图里面OK都只有一半了(还好)。解决方案:鼠标左键按住标题栏,同时按小键盘↑,可以将窗口上移,这样就能看到下面的OK了。但你放开鼠标会马上弹回原处,还是点不到OK,再按Tab就能看见一个移动的虚线框,一直按,直到虚线框移到OK按钮上,回车解决。

  找到我们要参照的对话后,双击打开,复制以下两个内容,可以同时进行。复制完点cancel(取消)或直接右上角的×关掉

  复制完了之后粘贴到相应位置,注意,中间那一块的条件某些要留,某些要删,具体看图里的说明。

  如前做完,下面中间部分切换到Advanced选项卡,如图



  改完名,名字变了之后,如下图打开脚本进行编辑。我取得名字是JZDismiss

  打开以后发现里面有一段文字,注意:这一次和上次不一样了,删掉里面全部文字!!!

  然后复制以下文字,,粘贴,注意:要把XXXXXXX改成你刚才取的脚本名字,比如我刚才取JZDismiss,那么我里面修改如图,其他的不要改

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 1

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_0

  Function Fragment_0(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  (pDialogueFollower as DialogueFollowerScript).DismissAnimal()

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  Quest Property pDialogueFollower  Auto

  同之前做的那样保存,如果提示不是成功,注意看名字改对没有,如果名字对了,注意看有没有按我要求的做。

  保存完了之后,同上要关联变量,双击打开脚本。

  关联变量到底填什么,我们同样可以去狗的对话中参考,到同一个位置,打开狗的对话中那个脚本看看,看它填的什么,跟着填就没错。这里解散的例子里图里我给出了,可以不用去找了

  但是好像只有这一个需要关联变量,其他的都没有要关联的变量呢……没有的如图

  关联了之后就完成了,艰难地点到OK,保存esp,就成功地添加了对话

  其他对话也同样操作,下面附上各个对话要用的脚本,同上,全部删掉,粘贴,改名,祝大家一番辛苦之后做出自己的宠物哦!!!!

  跟随(Follow)的脚本

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 2

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_1

  Function Fragment_1(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  (GetOwningQuest() as DialogueFollowerScript).AnimalFollow()

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  等待(Wait)的脚本

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 1

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_0

  Function Fragment_0(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  (GetOwningQuest() as DialogueFollowerScript).AnimalWait()

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  交易的脚本

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 1

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_0

  Function Fragment_0(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  akspeaker.OpenInventory()

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  命令(Favor,直译是帮助)的脚本

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 1

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_0

  Function Fragment_0(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  akspeaker.SetDoingFavor()

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  命令过程中有三个子对话,看狗的对话的参照,其中两个没有有脚本,有一个有,一般取名字会写作(FavorFalse),它的脚本如下

  ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

  ;NEXT FRAGMENT INDEX 1

  Scriptname XXXXXXX Extends TopicInfo Hidden

  ;BEGIN FRAGMENT Fragment_0

  Function Fragment_0(ObjectReference akSpeakerRef)

  Actor akSpeaker = akSpeakerRef as Actor

  ;BEGIN CODE

  akSpeaker.SetDoingFavor(false)

  ;END CODE

  EndFunction

  ;END FRAGMENT

  ;END FRAGMENT CODE - Do not edit anything between this and the begin comment

  关于MOD的导出,做了留着多不好……分享才是好孩子。

  如图,点那里可以输出bsa文件。然后和esp文件一起放在一个Data文件夹里,Data文件夹用压缩软件打个包,就可以用NMM或MO安装了,这个压缩文件也可以发出来,分享给别人。

  当然,bsa其实不是很受欢迎,可以用bsa浏览器打开,导出里面的东西,放在Data文件夹里,bsa文件就不要啦,同样带上esp,打个包就好了。



热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高