注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 无冬之夜2:西门城的秘密+无冬之夜2:泽希尔风暴 《无冬之夜2》任务编辑器使用说明 汉化版 04 ...
查看: 7000|回复: 4
打印 上一主题 下一主题

[原创] 《无冬之夜2》任务编辑器使用说明 汉化版 04 [复制链接]

帖子
503
精华
8
积分
2202
金钱
2310
荣誉
35
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2007-6-13 19:08:10 |只看该作者 |正序浏览

无冬之夜2 任务编辑器使用说明 04

翻译yangtou




为了方便查看,将各个章节分开。其它章节的链接如下:
01  引言
02  Module的制
03  放置对象
04  编写对话
05  触发器
06  创建道具


*****************************************************************************************

编写对话Conversation


在这一章节中,您将学会如何编写基本的分支性对话树,以供玩家按照自己的意愿做出选择。您将会了解如何运用条件和动作脚本来使对话变得更加充实有趣。您也将学会如何将完整的对话附加到生物对象上。



基础知识

在《无冬之夜2》的游戏中,对话是一个十分重要的东西。我们通过对话来与队友交谈,与商人交易,并且从NPC那里获取有用的信息。从本质上来讲,对话实际上只是一个分支菜单。介入谈话的双方不一定非得是两个人物角色,如果你想要玩家操作一个具有三个按钮的面板,那么一个具有三个分支选项的对话就是相当合适表现手法。


剖析对话
刚刚接触对话时,您可能会感到它们很复杂,实际上您很快就会学会使用它们。





这个截图展示了与Pitney的对话中的一部分,选自模组样本0100_UninvitedGuests。对话(有时体现为交谈)是以分支树的形式存在的,与Windows的文件路径模式几乎一样。每一行都被称作一个节点,左侧的文本部分text是展示给玩家的内容。

红色的节点行是NPC所说的话,蓝色的节点行是玩家所做出的回复/或回应。蓝色的[CONTINUE]说明在当前对话回合中,玩家没有任何选择可做,只能点击继续。然后对话将会前进到下一个红色节点,NPC讲出新的对话内容,直到玩家再次做出回应。



1.当前所选中的节点。

2.玩家所能选择的一系列选项。
  当其上的红色节点内容被陈述完毕之后,玩家们就可以通过点击或选按对应数字来做出自己的选择。
  注意左面的加号,表示该条目还可以继续扩展。

3.节点的其他信息。通过右键点击可以决定哪些被显示出来。
  在这个截图中,我们可以看到每个对话节点都具有动作、条件、和请求的选项。

4.节点属性。这里包括了该节点的更丰富的信息。

5.文本。当前所选中的节点的文本内容被显示在这里。点击这个文本区,就可以对文本内容进行修改。
  可以是NPC所讲的话,也可以是玩家所做出的回复内容。

灰色的节点是指向对话中其他节点的链接。使用链接可以避免为相同的条件重复的输入相同的内容。




想要加入节点,只需要在目标节点上点右键(即以该目标节点作为所添加节点的前驱),然后选择Add。一个新建“New Line”窗口就会出现。只需要输入您想要玩家们阅读的内容即可。 (语言选择菜单和 “Edit String Ref”按钮即被应用到您的模组中了,但只有官方战役中才能使用它们。)


对话脚本的基本知识
在本款游戏中,脚本是功能十分强大的开发手段,也很复杂。在本款游戏的官方剧情开发过程中,我们有很多专业的脚本程序员(你也可以叫他们为游戏设计师或者程序员,这取决于不同的角度)花费了大量的时间来调整脚本工具的功能,并开发了一系列的用来构建地区的新脚本。脚本编写的技术细节远远超出了这份帮助文件所能涵盖的范围,但我们还是会讲解一些要在对话中用到的基本脚本设计的内容。要想了解更多的关于脚本设计的知识,您最好反复体会并试验我们所提供的模组范例,看看我们是如何使用它们的。然后在您自己的模组中不断尝试脚本与对话的结合。


条件
条件 是绑定于某个对话节点的判定脚本,它的判定依据是“是”或“否”(TRUE or FALSE)。当判定条件成立时,它所指向的对话节点就会被执行。比如说,存在这样一个NPC,他会发出两种不同的问候方式,一种是热情而友好的,另一种是冷淡的。我们给第一个问候节点加上一个条件“是否是精灵族”,如果玩家使用的是精灵族的角色,那么该条件成立,玩家会得到NPC的热情问候;其他种族的角色则会得到冷淡的问候。从这个角度看,条件脚本可以用来塑造NPC的人物个性

在我们所提供的模组范例中,条件被用来判断玩家的任务执行状况,从而决定在对话中哪些节点将被显示。如果玩家拒绝帮助Pitney,那么对方会再次做出恳求。如果玩家杀死了敌人,那么Pitney 将会表示感激。




如果条件判定没有通过,那么玩家将看不到对应的对话节点。在具有4个回应选项的对话回合中,这意味着玩家可能只能看到其中的三个。对于NPC的陈述来说,第一个条件判定通过的节点会被显示出来。如果您深入调查一下模组范例,您会发现,在与Pitney的对话中实际上存在5个节点。玩家能看到其中的哪些取决于到当前为止所发生过的事情对各个判定条件产生的影响。


1.节点属性标签. 这些标签关联着对话节点的各项属性。在这个截图中所显示的,是节点的条件属性。
2.条件运算. 如果某个节点具有多重条件判定,我们可以指定“”或“”的运算关系来决定究竟是需要所有条件都成立还是部分成立才能触发节点。
3.脚本名称. 存放条件脚本的名称。
在这个例子中所显示的一个通用脚本,其名称是“gc_journal_entry”。该脚本是用来进行任务完成检定的。
4.脚本参数. 注解了该行中,各个条件都是向条件脚本传递哪些参数。
在这个例子中,参数sQuestTag的赋值是 “01_lizardfolk”,而参数sCheck的赋值则是“10”。脚本参数是十分有用的,它允许同一个脚本应用于多个对话中。比如说,gc_journal_entry这个脚本就能被用作检查游戏中所有任务的完成状况。在脚本中引入并使用参数是《无冬之夜2》所新加入的功能。
[注意: 如果您在条件或行为中加入了一个通用脚本,或者更换了某个脚本,要点击“刷新”按钮来设定新脚本的适用参数。]
5.脚本代码. 显示的是当前脚本的代码部分,是实现脚本功能的程序段。


动作
action在这里可以被译为动作、行为、操作、或者事件,它们是用来完成多种操作的一种脚本。当对应的对话节点发生时,其绑定的动作就会被执行。举例来说,可以是让一个NPC获得对玩家的敌对性、将玩家传送到另一个地图中、或者在箱子里放置一些金币等等。在我们所提供的范例中,有一个动作脚本是用来在玩家完成Pitney的任务之后赋予经验值奖励的。
给节点附加动作脚本与给它们附加条件脚本的方法是一样的。



编写对话
现在让我们来为那名被怪物关押在Pitney房子里的受害人编写一段对话。当玩家解决掉房间里的敌人之后,就可以与受害人触发这段对话。创建一段新对话,从下拉菜单中寻找File->New->Conversion.




新建的对话内容是空的,只由一个空的根节点组成。就像前面所提到的那样,我们可以右键点击根节点,然后选择“Add”来添加第一行对话。之后会弹出新建行窗口(New Line window),在这里您可以输入对话中的第一句对白。注意,根节点之下的第一句对白永远是由NPC所发出的。




点击“OK”来完成当前对白的设定。此时,受害人的第一句表达就完成了。




如果此时您以NPC的这句表白为前驱进行新节点的添加的话,您所添加的内容将被看做为玩家的回复(显示为蓝色)。如果您想让NPC连续做两句表白的话,则需要在两句NPC节点之间加入一个空的玩家节点。现在请您尝试着在对话中加入一个空节点。






怎么显示为“[END DIALOG](结束交谈)”?是这样的,如果一个玩家节点没有关联任何回应内容的话,将被编辑器看作是对话结束的节点。我们不妨在该节点之下再添加另一句NPC节点,看看会发生什么事情。




现在,那句蓝色的玩家节点变成了 [Continue](继续),并且NPC的第二句表白紧随其后。现在NPC已经讲了两句话,我们的玩家也该说点什么。现在让我们添加一些玩家节点来作为对NPC的回应。如果想让玩家在同一时间(同一会话界面)内具有三个回应选项,我们就需要以前文节点为前驱,在其下添加三个回应节点。如果想让玩家对于NPC所说的“我的腿失去知觉了…”这句话具有三个回应选项的话,只需要在这句话的节点上点右键,创建三个空节点,并分别添加内容。




我们为那句前文创建了三个空节点作为玩家的回应。现在分别点选它们,并在文本框中输入想要的内容。文本框在右下角,带有“Insert”按钮。




目前还没有对应的回复内容与玩家的表白关联,所以这三个玩家节点将被看作是对话的结束。它们的[END DIALOG]前缀还没有消失。如果您愿意,可以继续添加NPC的下一句表白,并且继续添加后继…直到把对话的核心内容表达尽致。添加对话节点的步骤就这么简单。


进阶说明:商店
在对话中,商店的触发只能通过脚本来实现,它们对于玩家来说是不可探测的。商店与其它游戏对象一样,也具有自己的蓝本。在建立了它们的蓝本之后,我们把它放置到地图中的方式是一样的。它们通常都被放在NPC的身边,您可以在范例中查看我们所放置的商店。



1.商店对话节点. 这句节点被附加了打开商店的动作脚本。
2.脚本名称 ga_open_store. 该动作脚本的功能是打开商店,它被赋予了商店脚本作为执行参数。
3.商店属性面板. 要编辑商店的货存,只需打开它的属性面板。点选“Store”标签,然后点击编辑“Edit”按钮,然后就可以更改商店的货存了。您可以在商店里放置任何道具蓝本的实例。
4.地区内容. 一个地区中的所有商店都可以在这里看到,就在“Store”标签下。


一些基本的对话编写技巧
链接 在编写规模庞大的对话时,链接的引入可以节约大量的时间。如果您想要让对话跳转到另一对话节点,使用链接可以避免重复输入相同内容。

就拿刚才的对话范例来说吧,我们假设幸存者处在死亡边缘,如果玩家继续提问问题,那么该幸存者将会失去知觉。
对话的实现效果是这样的:




注意到“Why should I help you?(我为什么要帮你?)” 和“Who are you?(你是谁?)” 这两个节点指向相同的回复内容。重复输入这些回复内容需要大量不必要的时间和精力,而且会使对话变得混乱而庞大。我们有更简单的办法使对话结构变得简明流畅。

第一步是把 “Who are you?”这一行后面的子成分都删除—我们不再需要它们了。右键点击“Who are you?”后面的 “Please… help me…” 这一行,然后选择“Remove”删除,那么这一行和他后面的子成分就都被删除了。

第二步是建立链接,我们要把 “Who are you?”链接到“Why should I help you?”后面,让它指向相同的回应内容。右键点击“Why should I help you?”后面的“Please… help me…”这一行,选择“Set Link Destination.”(设定链接目标)

<译者按:设定链接目标的功能是生成指向当前节点的链接 >




刚才的“设定链接目标”可以将任何选定的NPC节点设定为某个玩家节点的后续。只需要在目标节点(玩家节点)上点右键,然后选择 “Insert Link.”(植入链接)即可。




完成之后,我们就可以看到,“Who are you? ”变成了一个灰色的节点,这意味着当玩家选择了这句话时,会像他们选择“Why should I help you?”一样跳转到相同的NPC回应节点。如果您忘记了某个灰色节点所指向的目标,只需要双击它,编辑器会立刻把你引向目标节点。

链接使得你只需几分钟就可以完成原本需要花费数小时才能搞定的重复输入工作。


竖线和大括号
它们是用来区分注释和正文的工具。被夹在竖线中间或是被大括号括起的文本内容只会显示在编辑器中,而不会显示在游戏界面里。因此,如果您要编写一个庞大而复杂的对话,而又想留一些便于自己快捷区分而又不想让玩家们在游戏中看到的注释的话,只需要把注释文本放在竖线中间或是用大括号括起来就可以了。
|像这样|或者{像这样}.




上一行可能看起来很乱,但是在游戏中,玩家们只会看到“Thank you stranger, I won’t forget your kindness!”对话作者们可以用注释来区分话语的感情色彩,也可以用来标注当前话语所将触发的其它事件。比如说,在本例中,前缀注解说明该语句是一句友好的回复,而后缀注解则说明接下来玩家将会获得声望的提升。这些信息都注释的形式存在,以便作者进行区分。而在游戏过程中,玩家们所能看到的只有正文,他们是看不到注释内容的。


独白
是只包含NPC节点,而不包括玩家回复的对话类型。当与一个只附加了独白的对象进行交谈时,游戏不会切换到专门的对话界面或列出任何回复选项,而只是在讲话人的头上弹出对话框,显示独白内容而已。独白的触发不会造成游戏暂停

在我们提供的模组范例中,01_ginni 就是一个独白的对话例子。在该例子中,Pitney的妻子只是说一些简单的语句,而且也不需要玩家们作任何回复。


进阶说明:跳过-继续  Fall-through
跳过-继续 是用来处理多个附带条件判定的对话节点的机制。如果第一个节点不被显示的话,对话将跳过当前节点,继续到下一个节点。就像我们刚才所谈到的条件判定问题,如果一个节点所附带的条件判定没有通过,那么该节点将不被显示。我们来观察一下Pitney的对话:




我们可以看到,在根节点之下总共有5个NPC节点(沿着根节点下面的竖线观察)。第一句NPC节点不带条件判定,是确定会执行的;与跳转-继续无关的字节点我们把它们收起来了。接下来是条件判定部分,作者加了注释来标示该节点在满足何条件前提下被触发。当第二次玩家与Pitney交谈时,首先游戏要检测玩家是否拒绝Pitney的求助,如果拒绝,那么将显示第二行;否则将检查玩家是否同意帮助。

在您反复试验条件判定机制之后,您就能利用跳过-继续机制编写出色的具有反应性的对话了。从玩家的角度看,是5段不同的完整对话,它们取决于即时事态;但实际上只是巧妙运用了跳过-继续机制的同一段对话而已。

<译者按:在这个范例中,玩家与Pitney的第一段对话只有两种结束可能,一种是玩家同意帮助Pitney,另一种是玩家拒绝帮助Pitney。如果我们把第一段对话展开,就会发现,当玩家同意帮助Pitney时,该节点所附带的任务脚本(Quest)将会被触发,从而使玩家获得该项任务;在第二段的对话中,条件判定的依据就是这个Quest参数,从而令NPC获知玩家在第一段对话结束时是否拒绝了帮助请求。在第一段对话中我们也不难发现,根据玩家所做出的不同回应,对话节点中所附加的其它动作脚本也会被触发,包括使玩家获得武器、钥匙等等。>

<译者按:在本范例中,玩家第一次是否拒绝了NPC的帮助请求与第二次NPC的反应之间的剧情逻辑,是通过给第一段对话中加入动作/任务脚本来生成判定依据而实现的。>


进阶说明:一次性节点
有时您可能需要NPC讲一些话,并且以后不想让他再次重复。比如说,在我们提供的范例中,Pitney与玩家首次见面时,向玩家讲述遭遇并寻求帮助的对话,我们就只需要他讲述一次。在这之后,Pitney将只会根据玩家第一次所做出的答复而做出反应,以此营造NPC认识玩家、并对刚发生过的事情留有记忆的假象。

要把某个对话节点设为一次性显示,只需要在对话编辑窗中点选它,然后选择节点属性面板中的“Node”节点标签(应该在屏幕的最下方)。点击Show Once(显示一次)条目,然后在右侧的下拉菜单中选择赋值:默认的设定都是“Always”(永远显示),也就意味着每次与NPC对话,该节点都会显示,除非被特定的条件判定干涉。




把 “Show Once”条目更改为“Once per game”(每个游戏仅显示一次),则会使该节点在游戏中只做一次显示,并永不再出现。如果该节点后面没有以供跳过-继续的后继节点的话,对话就会直接关闭。

为了营造合理而稳定的游戏世界,我们通常都把“Show Once”条目的值设定为“Once per creature that uses this conversation.”(对每一个使用该对话的生物只显示一次)。否则,该节点将只对第一个访问它的玩家显示一次,之后就在游戏世界中彻底隐匿了,在多人游戏模式中,这有时并不是我们想要的效果。


把对话附加到生物对象上
对话可以附加到任何将要与玩家对话的生物或是物品身上。选择生物或者物品,然后在它的属性面板中寻找“Conversation”(对话)条目,点击弹出下拉菜单,当前模组中所有的可用对话都列于其中。选择我们需要的那个,该对话就附加在目标对象上了。当玩家与该目标对象试图交谈时,对话就会被触发。




小结

《无冬之夜2》提供了功能强大的对话系统,尽管它们一开始看起来令人望而生畏,但是掌握基本技巧并不困难。在对话的编写中尽量施展你的写作才华吧,看看你都能向玩家们展示什么。在我们结束这一章节的时候,您应该知道:

1.在《无冬之夜2》中,对话系统的基本结构和功能。
2.大概了解条件、动作、和脚本是如何在对话中使用的。
3.如何编写自己的对话。
4.如何在对话的文本中添加注释。
5.如何将对话关联到生物对象/物品对象上。

******************************************************************************************



[ 本帖最后由 yangtou 于 2007-6-20 19:10 编辑 ]
已有 1 人评分金钱 收起 理由
watermoon + 50 + 5 原创内容,值得鼓励!

总评分: 金钱 + 50  + 5   查看全部评分

生命的降临并不可喜,你不知道它曾经经历的苦痛与罪恶;
生命的终结并不可怕,那只不过是谁都要经过的一条路,而一切才刚刚开始。

使用道具 举报

帖子
503
精华
8
积分
2202
金钱
2310
荣誉
35
人气
0
评议
0
5#
发表于 2007-6-15 01:12:19 |只看该作者
接下来即将发布的是触发器部分的汉化
我刚刚做完
其他的要陆续放出,我也快不了,呵呵
生命的降临并不可喜,你不知道它曾经经历的苦痛与罪恶;
生命的终结并不可怕,那只不过是谁都要经过的一条路,而一切才刚刚开始。

使用道具 举报

帖子
125
精华
0
积分
63
金钱
206
荣誉
0
人气
0
评议
0
地板
发表于 2007-6-14 11:43:48 |只看该作者
感觉这个软件还是有很多不足之处,最让人窝火的是铠甲设置系统居然默认为男性。很多后来加装的铠甲只能在女性上才出现,男性模式下无法设置。
另外希望楼主详细讲解一下如何设置额外的跟随人物?

使用道具 举报

帖子
190
精华
0
积分
95
金钱
651
荣誉
0
人气
0
评议
0
板凳
发表于 2007-6-13 19:57:20 |只看该作者
可以 !!!!!!!!!!!!!

使用道具 举报

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

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-8-13 18:50 , Processed in 0.420029 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到