超级玩家
 
- 贡献度
- 99
- 金元
- 4074
- 积分
- 803
- 精华
- 0
- 注册时间
- 2006-9-10
|
正在学习如何制作任务对话,没找到中文的教程,就自己在官方的GECk wiki 上找,顺便翻出来分享。。。[em61]
>边翻边贴,可能会贴几天吧,原文在此 http://geck.bethsoft.com/index.php/Quest_and_Dialogue_Tutorial
>如果已经有人翻过了,告诉我一下,减少重复劳动,所以暂时只贴一块先
>本人英语勉强4级,水平有限,翻译缓慢而且不可能精确,严重翻错了回帖告诉我
>因为对话与脚本不能用中文编写,所以部分内容保留原文
>开始
=================================================================
前奏曲
任务在游戏中无处不在。有些是“真实”的,充满对话,阶段,目标等-这些都是平常的任务,由玩家在游戏中完成。 但是有些任务可以是隐藏的,并只用于运行脚本来检查或设置了一些事件。 它们可用于玩家与NPC间的对话,包括可以是两个或两个以上的NPC,甚至独白,甚至作为一个广播电台。
==================================================================
本指南中,我们将用一个简单的故事建立一个任务。 我们将通过:
设计一个简单的任务,
设置世界中的任务物品,
编辑任务的数据和目标,
加入任务目标,
执行对话。
只有一个要求-你必须熟悉GECK环境。如果您看过了“My First Vault 教程”(英雄末日大大的翻译在此http://3dmgame.chnren.com/bbs/showtopic-572041.html),那么我们就可以开始了。
===================================================================
写故事
本教程的故事是很短的一个:
在Megaton诊所有一个女孩,Amanda,以前住在斯普林韦尔学校。 当她从那里逃出来的时候,她失去了她的朋友,一个玩具熊。 现在,她正在等待有谁能为她找回这个玩具。 作为回报,她可以教如何传唤熊(perk) 。
我还准备第一个版本的Amanda和玩家之间的对话:
1. GREETING 问候
NPC: Can I ask you a question?
标准的问候,只在Amanda和玩家之间的第一次对话出现。正如你所看到的,我已经在使用topic IDs,这是GECK中分配给话题的标识。这个话题中只有NPC的回应。
2.aBHTopicWelcome 欢迎
PC: Hello young lady.What can I do for you?
NPC: Could you find my teddy bear please?
I lost him while I was escaping with my mother, in Springvale School.
He was my friend... Find him please... (之后使玩家选项3.1-3.5)
这是玩家选择的对话和NPC的反应,也只在Amanda和玩家之间的第一次对话出现。根据不同的条件,后面会跟着对话选项3.1到3.5。这个话题在游戏中只会出现一次。
3.1 aBHTopicAgreeWithChallenge 挑战话题(就是要求你有某个perk或者需要你某个技能达到多少)
PC: [检查主角是否有 "children perk" ,说服,中等难度] Maybe I will give you another teddy bear, what you say, eh?
I. NPC: (success) OK, I will be waiting for him, thanks. (告别)
II. NPC: (failure) No, he is my friend, a special one. (回到对话)
如果玩家有“the ChildAtHeart” perk,这一选择将在对话框菜单中显示。我也希望它是一个中等难度的挑战话题(challenge topic)。如果失败,将需要一个特别的话题,但我们先不管它。
3.2 aBHTopicAgree 同意
PC: OK, I will bring it for you.
NPC: Thank you. I will be waiting for your return. (告别)
3.3 aBHTopicDisagree 不同意
PC: What?I have better things to do. Get lost.
NPC: I don't like you. (告别)
3.4 aBHTopicHaveTeadyBear 找到玩具熊
PC: Yes, I have found a toy with your name on it. Here it is.
NPC: Thank you. As a reward I will teach you how to summon a friend, a bear, so you will never be alone anymore. (告别,任务结束)
这个对话选项将出现在玩家找到玩具熊后的第一次与Amanda对话的时候
3.5 aBHTopicByeBye 告别
PC: I must go now.
NPC: Bye bye. (告别)
全部成立。因此,游戏中当玩家开始第一次跟Amanda对话时会如何?第一次Amanda会说#1对话--问候:NPC says: Can you help me? 我们将在之后讨论的问候和告别
--------------------------------
现在可以模拟对话--在问候Amanda后,对话菜单将打开。这是玩家和Amanda之间的第一次对话,所以玩家将只有一个选择对话框,对话#2:
主角说: 您好年轻的姑娘。我能做些什么吗?
在对话框菜单上点击这一话题后,主角将得到NPC的回应:
NPC说: 你能找到我的玩具熊吗?
NPC继续说: 当我从斯普林韦尔学校我母亲那儿逃出来时,我失去了他。
NPC继续说: 他是我的朋友... 请帮我找到他...
在这之后根据不同的条件出现不同的对话选项 #3.1 - #3.5。假设这是第一次对话而且主角没有玩具熊,那么可以选择将是#3下除#3.4外所有的对话选项。
--------------------------------
我希望现在你已经理解了,所以让我们继续第二次交谈。
4. GREETING 问候
NPC: Do you have a teddy bear for me?
(3.4) aBHTopicHaveTeadyBear 有玩具熊
(主角有一个玩具熊,所以这个对话与#3.4是一样的)
(3.2) aBHTopicAgree 同意
(玩家想开始任务,所以这个对话与#3.2一样)
(3.3) aBHTopicDisagree 不同意
(玩家拒绝任务,所以这个对话与#3.3一样 )
4.1 aBHTopicNotYet 还没有
PC: No, not yet.
NPC: So please hurry. He is the dearest friend of mine. (告别)
(3.5) aBHTopicByeBye 告别
(告别都一样)
为什么有“aBHTopicAgree”话题?因为这是第二次交谈,而在第一次交谈中那个只显示一次的选项中,玩家可以拒绝任务。因此,玩家应该有另一个开始任务的选项。在第二次交谈有许多条件--时间不多,因此我们将在GECK中构建对话的时候再来讨论。
===============================================================================
编制环境
最基本的,我们需要两个对象:NPC-Amanda 和一个物品-泰迪熊。在游戏中已经有可以使用的两个对象。打开GECK的object window->Actors->NPC我找到了Flower,一个同我的Amanda很像的女孩,而Items->Misc Item->Clutter->TeddyBear01就是一个玩具熊
-------------------------------------
NPC Amanda – 重要角色(就是打不死的)- 让我们双击Flower,并建立新的基础对象。
ID: aBHAmandaFlower
Name: Amanda
Essential: 是 (勾选)
“Essential”框被选中,因为我不想让Amanda在任务完成前挂了。我不修改任何人物数据,但在<Factions>标签(阵营)中有“RepublicOfDaveFaction”。这和Amanda没有任何关系,所以我删除了此项,并添加了一个新的。她将被放在Megaton诊所,所以我增加了“MegatonClinicFaction”(rank=0)。这种变化对于一个新的NPC加入特定环境是很重要的。 我现在不会谈论这个问题,但你可以进入菜单Character->Faction,看到一些派别不喜欢其他的。如果在相同的单元中有两个敌对派系的角色,他们将开始战斗。所以,哪怕Amanda是好人(alignment在<Traits>标签中设定),也最好为她选择一个适合所在环境和任务的派系。
<AI Data>标签 :
Aggression: Unaggressive (侵略:非侵略)
Confidence: Cowardly (信心:怯懦)
Assistance: Helps Nobody (援助:不帮助人)
Mood: Pleasant (心情:高兴)
Energy: 50 (能量)
Responsibility: 50 (责任)
<AI Packages>标签中我删除了所有项目--如果我不这样做,Amanda将神秘消失而不能在Megaton诊所找到她。现在,右键点击列表中的包,并添加一个新包:
ID: aBHStandardWander
Package Type: Wander (包类型:游荡)
Wander location: Near editor location (游荡地点:编辑位置附近)
Radius: 50 (半径)
Allowed behavior: (all) (允许的行为:所有)
“编辑位置附近”是指,在她一般行为时Amanda将留在一个地方,就是GECK中放置她的单元 。
<Flags>标签(标记)我只勾选了“Enable Fallout Behavior”选框 –这样她将像一个普通的的村民一样行动: 她会与其他NPC对话, 有战斗时跑开等等
<Schedule>标签(日程表)
Schedule:any time(日程表:任何时候)
Duration: 0 (有效期)
这意味着“AI Packages”将在任何时间起作用。
如果你是跟着我做插件,您可以使用Sandbox Package(沙盒包)取代游荡。再说一遍,我现在不会深入“AI packages”,因为本教程我只需要标准的NPC行为。
这是所有关于AI的。在<inventory>标签(存货),我发现“RDGateKey”-删除它。“KIDOutfitWastelandChild04”是一套儿童的标准服装,所以我留下了它。其他NPC属性标签我没动。如果您愿意,您可以修改Amanda的外貌。
-----------------------------------------
任务物品-泰迪熊
在Object Window->Items->Misc Item->Clutter中搜寻TeddyBear01。我想使用这个物品,它的.nif模型和.dds存货图标文件,作为Amanda的玩具熊。所以,我双击TeddyBear01修改其属性。(修改后创建一个新的)
ID: aBHTeddyBear
Name: Amanda's Teddy Bear (名称)
Weight: 0.0000 (重量)
Value: 100 (价值)
Quest item: 是 (任务物品-勾选)
修改后,点击确定按钮。编辑器问我是否要建立一种新类型(create a new form)-是的,这是我要做的,所以选“YES”。
这个对象被标记为任务物品,如果玩家拿了它就扔不掉了。这就是为什么任务物品的重量通常是0.0000。泰迪熊将被结果脚本删除,我们将在教程结尾编写这个脚本。
------------------------------------------
添加对象到世界单元中(就是房子内部或者地块)--对象做好了,所以现在是将其添加到游戏世界中的时候了。
Amanda将在Megaton诊所。在“Cell View”窗口我搜索MegatonClinic并双击它。在加载对象的时候,我得到一个警告消息,一些东西丢失了.dds纹理--这不重要,因为我使用原始的物体,我相信他们是没问题的。所有单元中的物体加载完成后,在“Render Window”(渲染窗口)我看到了一个诊所。我双击对象列表中某物体,按T键切换到俯视视角(其实可以按住shift移动鼠标转换视角)。现在我寻找一些空间,在那里我可以加入“aBHAmandaFlower”这个NPC对象。这是在渲染窗口太暗,按A键,开启灯光效果。好了,我发现一个地方,现在将NPC拖放到那儿。
现在最重要的事情。当Amanda被放置在单元中后,我对她双击打开属性窗口。请注意,在渲染窗口中的物体实际上不是对象,而是对基础对象的引用。在“Reference”引用窗口我做两件事:
检查“Persistent Reference”持久引用选框是否打勾-它应该是,如同对于任何其他NPC,
加入一个新的“Reference Editor ID”(引用编辑编号)名称--我输入了“aBHAmandaFlowerREF”。请注意,Amanda的基础对象ID是“aBHAmandaFlower”。这是一个标准命名的提法:对象名后加“REF”。这很重要,因为后面我将在一些条件(如任务的目标)甚至在脚本中多次用到这个NPC引用名。
泰迪熊将放在“SpringvaleSchool01”单元中。 This is the first, main floor of the Springvale School.这是Springvale学校第一层。然后跟处理Amanda一样。
检查“Persistent Reference”选框是否打勾--它不是,所以勾选它; 加一个新的“Reference Editor ID”--我输入了“aBHTeddyBearREF”。其实在这种情况下没有必要,因为我确信它不会被用于任何脚本和任何条件。
-----------------------------------------
我认为现在一切都准备就绪了,可以开始构建任务了。
============================================================================
新任务 |
|