Thalie


Persistentní svět hry Neverwinter Nights
It is currently 12:25 28. Mar 2024

All times are UTC + 1 hour [ DST ]





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: NPC rozhovory - návod
PostPosted: 16:08 20. Jan 2008 
Offline
Čestný člen týmu Thalie
User avatar
 ICQ  Profile

Joined: 18:11 27. Apr 2007
Posts: 1274
Location: Praga
Pár základních rad pro ochotné psavce NPC rozhovorů


Byl jsem požádán zanést své zkušenosti se psaním standartních NPC rozhovorů, abych trochu pomohl všem, kdo mají zájem kdykoliv kdekoliv začít nějaké tvořit. Pokusím se tedy o to, ale nejzásadnější je vše si ohmatat na vlastní pěst a trénovat, neboť dialogy se dělají poměrně snadno a logicky, jen je potřeba pochopit základní principy...a s tím jsem neměl příliš problémů ani já. :)



Takže...vezmu to od píky...máme před sebou prázdný editor rozhovorů. Dostat se do něj lze jak z lišty nalevo, tak z vlastností NPC (po kliknutí na „Upravit“). No jo, avšak teď jak tam nastrkat nějaké to povídání?!


Hnedka povím. Většina klasických funkcí je dostupná přes pravé myšítko. Například pokud chceme napsat pozdrav NPC, stiskneme pravým „Kořen“ a zvolíme „Přidat“. Objeví se nám okno, kam můžeme napsat libovolnou reakci postavy (např. „Co je?“). To lze kdykoliv měnit dle potřeby v bílém oknu dole, pokud máme označenou tu kterou větu. Jakmile učiníme první řádek, získáme jednoduchou hlášku, která ve hře nezapne normální okno rozhovoru, jen se objeví nad hlavou NPC. Můžeme jí vybavit většinu „obyčejných“ NPC, se kterými si nechceme moc vyhrát. Ale my jsme přirozeně hraví, že? Takže můžeme v našich plánech popojet dál...regulérní rozhovor pokračuje tím, že na tuto první hlášku roubujeme další, opět s použitím možnosti „Přidat“ Tím vytvoříme prostor pro reakci hráčské postavy, dalším přidáním zase NPC, poté mluví PC, následně NPC... a tak lze pokračovat, jak dlouho chceme, přičemž rozhovor ukončuje hráč, pokud už pod sebou nemá žádnou hlášku NPC. V editoru je pro přehlednost odděleno, čí jsou které věty, v původním nastavení takto: Červenou barvou se označují průpovídky NPC, modrou to, co říká hráčská postava.


No jo, ale byl by to přeci jen nepatrně strohý dialog, kdyby hráč neměl možnost volby, žádná změna, jenom by se odklikávala jedna předtvořená hláška, táhnoucí se do dáli. Proto je nutné ve složitějších dialozích nadefinovat i jiné možnosti průběhu rozhovoru, více jednotlivých vět, které mohou být využity. U hráčské odpovědi to lze zvládnout bez jediného zádrhelu, protože hráč ve hře si může zvolit prostým kliknutím, kterou cestu chce následovat. Lze to sice být ovlivněno dalšími podmínkami, ale k těm se dostaneme později. Takových paralelních větví rozhovoru docílíme jednoduše, pokud dáme k reakci NPC „přidat“ více různých možností, například k úvodnímu pozdravu NPC přidáme „Taky zdravím. Jak se máte?“, „Hmm.“, či třeba ještě „Spěchám pardon. *odejít*“ Hráč si zvolí jednu z vyjmenovaných možností a tím se rozhovor bude ubírat podle toho, co máme napsáno pod nimi. Takto může dialog neuvěřitelně bujit a zabírá stále víc a víc času....hlavně při tvoření. Ale alespoň vypadá reálně.


V případě hlášek NPC to je horší, neboť sám počítač si nemůže dle libosti zvolit tu odpověď, na jakou má zrovna náladu. Právě k tomu budou zapotřebí skripty, které použijeme jako podmínky zobrazení té které věty. Základní postup je stejný jako u „modrých“ řečí, nejprve k nadřazené větě (či Kořenu) přidáme několik různých možností reakce na stejnou úroveň (dejme tomu „Buď zdráv/a*“ a “Zrovna nemám chuť rozprávět s cizinci.“). A teď po označení věty, se kterou pracujeme, je nutno využít rámečku vpravo dole, konkrétně podmínky „Text se objeví když“. Do volného okénka vložíme skript, jenž potřebujeme, aby se zobrazila ...já jim příliš (tzn. vůbec) nerozumím, takže jsem si zatím vždy vystačil se Script Wizardem (klobouček napravo) nebo původními NWN skripty (seznam těch podle mě nejužitečnějších pro rozhovory přikládám níže). Například jsem si vyrobil skript zz_nahoda30, jenž určoval třicetiprocentní pravděpodobnost pravdivosti toho jevu. Pokud byl pravdivý (hod náhody vyšel na těch 30%), ukázal hlášku, která ho má napsaný pod „text se objeví když“. Podobně lze vytvářet hromady podmínek, jestli se ta která hláška objeví, například pokud je postava té které rasy, pokud má tu kterou hodnotu charismatu, inteligence....stovky možností, je jen na psavci, jak moc chce mít svůj rozhovor zábavný a zároveň komplikovaný. Vše stále vypadá logicky, ale musíme dodržovat základní pravidlo: PRIORITA REAKCÍ NPC JE SESTUPNÁ SESHORA PODLE TOHO, JAK JSOU SEŘAZENY V SEZNAMU. To znamená, že pokud máme jako první v seznamu větví na stejné úrovni hlášku bez podmínky, není už možno, aby se zobrazily ty další, neboť tato má prioritu a pokud je podmínka vždy splněna (či jinak není žádná), již se logicky nepřejde k ověřování pravdivosti těch dalších. Ale žádné strachy z chyb, tahem myši není problém pořadí přehodit.

* - to je nejjednodušší forma podmínky, zanesená už v samotném systému toolsetu. Pokud při psaní hlášky klikneme pravým na určité místo v bílém oknu, je možno vložit proměnnou, která pak způsobí, že se zobrazí v rozhovoru hráči to, co je jeho postava. Například ženský rod nebo oslovení mluvy podle pohlaví, vlastní jméno postavy...etc.



Z toho vyplývá, že kupříkladu ve chvíli, kdy chceme vytvářet jen hlášky bez rozhovoru, ale zároveň jich pro zpestření chceme udělat víc a bude záležet na nějakých jiných vlivech (třeba i té náhodě), co zrovna NPC hráčovi poví, musíme z kořenu vytvořit třeba pět větví...a ke každé KROMĚ POSLEDNÍ dát podmínku s odpovídající pravděpodobností výskytu. Pak to bude vypadat tak, že počítač ověří, jestli je splněna podmínka u první, pokud ne, tak přejde ke druhé...až do poslední, která musí být bez podmínky, aby se vždy něco zobrazilo (kdyby se nesplnila, nebylo by už k čemu přejít a dialog by skončil/ani nezačal).


Postavy však nemusí při rozhovoru pouze mluvit, třeba pomocí okna „Jiné akce“ lze docílit, aby charakter, který právě říká označenou větu, vydal libovolný zvuk dostupný v modulu, nějak se zanimoval...nebo se třeba při pronesení té které průpovídky něco zaznamenalo postavě do deníku, což lze výtečně využít v dlouhodobých questech. (NPC questy vůbec staví na rozhovorech) K úkolům, ale zdaleka nejen k nim, dobře poslouží i další okno - „Provedené akce“, kterým (opět podle vloženého skriptu) lze například předat předmět či odměnu PC, vybrat poplatek, vytvořit podmínku pro složitější reakce NPC dle chování PC....apod.


Vsadím se, že i ti nejpilnější rádi využijí možnost kopírovat celé větve dialogu. Pokud pravým tlačítkem na již vytvořenou část rozmluvy zase (překvapivě) poklepáme, můžeme označenou větu a celý úsek, který z ní vyplývá, jí podřazený, zkopírovat a pak vložit na jiné libovolné místo, pod jinou větu. To se hodí např. když chceme udělat více podobných verzí rozhovoru pro hlupáky, elfy...apod., přičemž ho nemíníme psát znova, ale jen upravit podle potřeby již použité informace. Větev však lze i „vložit jako odkaz“, což vytvoří jistou smyčku a navrátí rozhovor do místa, které kopírujeme (ideální a vlastně nezbytné kromě mnoha jiných případů pro návrat do jistého „menu“, kdy se NPC ptá, „Jak mohu být nápomocna“ a PC má více možností volby).


O mnoho víc funkcí rozhovoru k rozebrání mě zrovna nenapadá, vše ostatní je již otázkou chvilky ohmatávání. Pokud by byl nějaký dotaz, zeptejte se mě zde.... anebo kdekoliv jinde. ;) Přeji hodně štěstí a pevné vůle všem tvůrcům!


PS.: Vyhrabal jsem jeden extrémně polopatický návod na jednoduchý quest s NPC, kde lze i pár základních ložek rozhovoru přidávám odkaz: http://nwvault.ign.com/View.php?view=Mo ... ail&id=283 (nejspíše to chce ho nejprve stáhnout v zipu, aby se rozparádil)


edit kucik:
Odkazy v rozhovoru jsou nesmírně užitečným nástrojem nejenom pokud se chcete dostat ve stromu rozhovoru někam blíže ke kořeni. Je velmi praktické je používat tím více, čím více se nám rozhovor větví. Pro příklad: Chceme, aby starý trpaslík zadal postavě úkol, ovšem takový brach by se měl jinak chovat k elfovi a jinak ke svému soukmenovci. Tam tedy rozhovor rozvětvíme. Po určitých peripetiích by se ale obě větve měli dostat k zadání úkolu. Je samozřejmě možné větem prostě zkopírovat, ale pokud je komplikovaná a pokud jich máme víc, je neskutečně pracné udržet všechno konzistentní, a každá další úprava takového rozhovoru bude znamenat víc a víc práce. Právě v takovývh případech je vhodné použít odkazy do jiné větve rozhovoru a ušetřit si tak mnoho práce a starostí.


Last edited by Žorž on 16:21 20. Jan 2008, edited 1 time in total.

Top
 

 Post subject: NPC rozhovory - skripty
PostPosted: 16:16 20. Jan 2008 
Offline
Čestný člen týmu Thalie
User avatar
 ICQ  Profile

Joined: 18:11 27. Apr 2007
Posts: 1274
Location: Praga
Zde nabízím několik použitelných podmínkových druhů skriptů do "text se objeví když", které jsem v původní NWN výbavě vypátral. Některé jsou jenom naznačeny, v seznamu je to podle abecedy, takže by neměl být problém najít konkrétní hledaný druh.

Nahota:

nw_d2_naked či nw_d2_gnaked (pokud to nemá testovat stoprocetně)


Pohlaví:

nw_d2_male


Skupiny povolání:

nw_d2_holy
nw_d2_nature (t.j. užitečné pro mluvení se zvířaty)
nw_d2_j_...
nw_d2_warrior
....

Jak je postava zraněna:

xp1_less...hp


Estli PC vlastní kouzlo "Y":

x2_d2_s_"Y"


Přesvědčení:

x0_d2_ischao či x2_d2_islaw, evil... etc.


Povolání nebo rasa:

xp1_pcis......


Stejná rasa jako NPC:

nw_d2_racesame


Otevřít obchod:

x1_openstore


První setkání/známe se:

x0_d2_notmet nebo naopak x2_con_notfirst (to prozkoumejte na vlastní pěst, je to ještě složitější, souvisí s provedenými akcemi)


Nějaké vztahy všeobecně, ale to je dost komplikované:

x0_d1_was....


NPC byla oživena rukou PC:

x2_d2_npc_resur


Atmosféra, chování NPC mimo rozhovor:

x2_am... (jako ambience)


Hody na schopnosti:

x0_d2_sk...

Dál např. x1_intimdt... , x2_appraise..., x2_bluff..., nw_d2_
pers................


Hody na vlastnosti mi přijde lepší tvořit ve skriptwizardu, kde
můžeme zadat jasné číslo dle své potřeby, nejen nízké/střední/vysoké.
Přesto, kdybychom je hledali, tak jsou někde pod nw_d2_... či x0_d1...
tam najdeme všeobecně jedny z nejužitečnějších psaníček pro
konverzace.


To snad zatím bude vše, doufám, že skripty přijdou vhod při tvorbě. Zatím se netýkají questů, ale pouze kosmetických rozhovorů, na úkoly opravdu ještě nemám.

_________________
Slovotepec Žorž = Písmák Matlafousek

Částečně mimo thalijský provoz, ovšem v psaní neustávající: http://kibucim.blogspot.cz/


Top
 

 Post subject: Re: NPC rozhovory - návod
PostPosted: 20:16 27. Feb 2008 
Offline
Čestný člen týmu Thalie
User avatar
 ICQ  Profile

Joined: 18:11 27. Apr 2007
Posts: 1274
Location: Praga
(Snad) užitečný dodatek:


Píšete-li s diakritikou, tak je velice výhodne, ba přímo nutné, aby se písmenka řádně zobrazovala. Bioware nám háže klacky pod nohy, avšak my si s tím poradíme, jsme zruční a šikovní! Pokud píšeme s háčky a čárky, doporučuji nám, abychom si přenastavili v souboru nwtoolset.ini níže uvedené výroky na nulu (jeden je někde ve středu seznamu, druhý na konci). Tedy takto:

CheckBadCharsConv=0
CheckBadCharsLoc=0



Toť naše strasti dočista vyřeší! A hrrr na tvorbu! *netuší, jestli nabušený optimismus napomáhá produktivitě práce, ale věří tomu*

_________________
Slovotepec Žorž = Písmák Matlafousek

Částečně mimo thalijský provoz, ovšem v psaní neustávající: http://kibucim.blogspot.cz/


Top
 

Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC + 1 hour [ DST ]



Who is online

Users browsing this forum: Bing [Bot] and 38 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group  
Design By Poker Bandits