Uitgebreide en gedetailleerde gids voor het toevoegen van nieuwe eenheden in The Hand of Merlin, geschreven door de game-ontwerper Mat.
Introductie
In deze gids zullen we het hebben over het toevoegen van meer eenheden aan onze game. Dit kunnen zowel nieuwe personages zijn als nieuwe vijanden.
Wat is een eenheid?
In The Hand of Merlin is een Unit een dynamische entiteit die in staat is om acties te ondernemen. Het heeft attributen, waaronder Health en Armor, en maakt altijd deel uit van een Warband, een "side" - Player of Enemy.
Elke unit wordt beschreven met twee bestanden: een Unit Params en een Unit Class.
Eenheidsparameters
Een Params-bestand (van parameters), met de extensie .ep, is waar we de meeste visuele informatie en identificatie van een eenheid bevatten.
Je kunt er een maken met het menu Aanmaken (CTRL+N). Ga naar de Generic groep, en blader door het (Merlin) Unit params type.
Sla het bestand vervolgens op onder de Inhoud/Merlijn/Helden map voor afspeelbare eenheden en Inhoud/Merlijn/Vijanden voor degenen die dat niet zijn. Door de Heroes-map te gebruiken, kan een eenheid verschijnen in het selectiescherm voor roosters in de lobby.
Laten we nu eens goed kijken naar een Unit Params-bestand en uitleggen hoe elk item werkt.
Ten eerste hebben we de identificatie van de eenheid.
- Identificatie wordt gebruikt in ontmoetingen om naar een specifieke eenheid te verwijzen, let ook op de eigenschappen in het midden van het document, waar je "persoonlijkheidskenmerken" kunt plaatsen zodat deze held tijdens ontmoetingen kan worden ondervraagd.
- namen worden gebruikt om de eenheid te vertegenwoordigen waar deze zich ook bevindt. Korte namen staan meestal op portretten, en de volledige naam in het boek en grotere tooltips. In het geval van Breunor is zijn volledige naam "Sir Breunor"
- Eindelijk heb je de biografie, weergegeven in het boek, die een klein verhaal over het personage vertelt.
Merk op dat omdat dit tekstinvoeren zijn, ze zowel een identifier als een daadwerkelijke tekst moeten hebben om vertalingen te vergemakkelijken.
Dan komen we bij #1, Schermutseling-gedrag van de eenheid.
- Eenheidsklasse bepaalt de attributen, startvaardigheden en passives van een eenheid. Het is een belangrijk aspect, en daar zullen we het later in dit document over hebben. Merk op dat elke afzonderlijke eenheid een unieke klasse heeft in ons ontwerp, maar dit is niet verplicht.
- Unit Size bepaalt of de eenheid een 1×1 (normaal) of een 2×2 (groot) toestel zal zijn.
- Eenheid Soorten, gebruikt in een groot aantal effecten, zoals Heilige Ontheiliging. We redden 'alien' voor de monsterlijke gruwelen waar je tegen vecht, maar al je helden en bandieten zijn 'mensen'.
In categorie #2, vindt u Portretten. We hebben er een heleboel, dus kijk gerust eens bij de reeds gemaakte exemplaren om de juiste maten en stijlen te ontdekken.
- Schermutseling portretten worden gebruikt in de strijd, weergegeven in de portretbalken links en rechts. Je kunt er meerdere in de categorie "levend" plaatsen als je ze gerandomiseerd wilt hebben per eenheid (dat doen we met bandieten!). En de "dode" (die we meestal gewoon een schedel maken, wordt alleen weergegeven als je deze in het bovenstaande selectievakje instelt. Anders zal het portret gewoon verdwijnen zodra de eenheid sterft.
- Kaartportretten worden gebruikt in het boek, voor de krijgsbandpagina en in ontmoetingsopties.
- Scoreweergave wordt opgeslagen voor de banner die verschijnt wanneer je een gevecht beëindigt, zoals het tonen van de eenheid die je hebt verloren wanneer het gevecht is gewonnen.
- Markeer en Silhouet zijn te zien in het Hero-selectiescherm, als een personage zweeft of nog steeds is vergrendeld.
Daarna heb je verschillende vermeldingen over de unit's visuals. Het .mdl-item verwerkt de eigenlijke model- en animatie-informatie, maar de rest configureert hoe het apparaat zich op de kaart gedraagt. Wees bijzonder voorzichtig bij het gebruik Schiet doel en Oorsprong, omdat dit bepaalt hoe de eenheid omgaat met projectielen - waar andere eenheden erop proberen te schieten en waar de projectielen vandaan komen.
Merk op dat Citaatkaart en Wapens zijn afgekeurd.
Eindelijk bereikten we #3 – Ontgrendelingsgedrag.
De eerste zijn de vereisten om een held te ontgrendelen - niets hier betekent dat het personage al is ontgrendeld. Zo is Rana bijvoorbeeld ingesteld:
Dit is een complexe invoer waarbij je kunt bepalen wat voor soort in-game-evenement er moet gebeuren om een personage te ontgrendelen. Let op het voor de hand liggende Omschrijving invoer, maar de magie gebeurt wanneer u het gebeurtenistype bepaalt. Elk type gebeurtenis beschrijft hoe het werkt, en vervolgens bepalen de laatste 4 items hoe het evenement wordt gecontroleerd. Voor het bovenstaande voorbeeld luisteren we naar >=5 gevallen van de gebeurtenis 'Valuta besteden', maar we stellen de tracker opnieuw in aan het einde van elke run/sessie.
Om het evenement te kwalificeren, gebruiken we de inspecteurs. Voor de ontgrendeling van Rana hebben we er twee ingesteld: de ene beschrijft dat de valuta die we zoeken is Wat, en de andere beschrijft dat we alleen kunnen controleren op gebeurtenissen die plaatsvinden in een specifieke zone, Albion. Hier is hoe we het deden:
Zodra u een Waarde om te inspecteren, zie je erin geschreven de informatie van welke andere items we moeten invullen, zoals aangegeven in de afbeelding hierboven. Dit kost wat vallen en opstaan om het goed te krijgen, maar alle vereiste informatie staat in de beschrijvingen (bedankt, MarkoP!)
Nu, B-kant ontgrendelt (In-game "Prowess unlocks" genoemd) werken op een vergelijkbare manier.
Maar behalve hoe je het daadwerkelijk ontgrendelt (we gebruiken trouwens dezelfde ontgrendeling voor alle personages: laat het gewoon een run voltooien zonder dood te gaan. Controleer een van onze helden in de Heroes-map voor hoe we het hebben ingesteld), je kunt a Naam voor deze alternatieve versie, voeg wat toe bonusattributen, en zelfs een alternatief model/textuur.
Eenheidsklasse
Laten we nu werken aan de Klasse. U kunt het menu Maken gebruiken, maar ik raad u aan gewoon op het juiste item in het Params-bestand te klikken en "Nieuw" te selecteren. Vergeet dan niet om het nieuwe bestand op te slaan - we gebruiken de Inhoud/Merlin/Eenheidsklassen map daarvoor.
Nu is het Unit Class-bestand een beetje eenvoudiger, maar het bevat veel belangrijke configuraties. Kijk eens bij Breunor's:
Ten eerste heb je een Naam van de klasse. Dit is alleen voor de show. Als u wilt specificeren of deze klasse moet worden beschouwd als een Krijger, Houtvester or Mysticus gebruik voor vaardigheids- en AI-doeleinden de Eenheidsrol binnenkomst, toewijzen Tank, atoombom en Support respectievelijk.
Vervolgens moet u beslissen welke vaardigheden de eenheid kan uitvoeren. EEN Bewegingsvermogen, hoogstwaarschijnlijk Run.rsc, en dan de Startvaardigheden. Voor spelerspersonages raden we slechts 2 vaardigheden aan, een basisaanval (Slash, Singe en Shoot zijn onze voorbeelden) en een extra, zoals Bash voor ons Breunor-voorbeeld.
Als je echter aan een vijandelijke eenheid werkt, word dan gek. We raden maximaal 5 mogelijkheden aan om de AI redelijk te houden.
Dan heb je je Basiskenmerken, waar u uw eenheidsstatistieken kunt definiëren. Vrij vanzelfsprekend als je de game kent, maar let op: "Defense" verwijst naar ontwijking, "Reaction Takes" wordt niet gebruikt in het huidige ontwerp en "Passive Power" is een verborgen attribuut dat je kunt gebruiken om dingen achter de schermen te schalen , maar de speler heeft daar geen weet van.
Let nu op Bonusattributen per rang en willekeurige upgrades op Spawn. Dit is hoe eenheden sterker worden of een kleine variatie in hun statistieken hebben.
Bonusattributen per rang wordt alleen gebruikt voor spelerpersonages. Het is een vlakke verhoging die wordt toegevoegd wanneer de eenheden een niveau hoger worden. Op dit moment is dit ingesteld op 0, maar je kunt dat veranderen en zelfs fractionele getallen toevoegen als je wilt. Vijandelijke eenheden, die niet kunnen rangschikken, worden niet beïnvloed door de vermeldingen hier.
Rankup-bonus (niet zichtbaar op de schermafbeelding) creëert kaarten bij rangschikking waarmee de speler kan kiezen welk attribuut hij wil verhogen. Het is momenteel ingesteld als 2HP of 1 pantser met een toegevoegde willekeurige kaartkeuze tussen kracht, ontwijking, bereik, nauwkeurigheid, beweging om de 4 niveaus. Ook vijandelijke eenheden krijgen dit niet.
In The Hand of Merlin schalen we de vijandelijke macht per zone-index, in een bestand dat is toegevoegd aan de Willekeurige upgrades bij spawn-invoer. Om dat te doen, gebruiken we een structuur die lijkt op de Blacksmith-upgrades, waarbij elke zone een nieuwe laag vertegenwoordigt.
Als voorbeeld, hier is MinorAbominationUpgrades, gebruikt op Alruin, Wyvern en militaire politieman. Alle andere vind je in de Merlijn/Vijanden/Smid Upgrades map.
Er zijn 3 "stijlen", om wat afwisseling te genereren. Elke stijl heeft 4 upgrades *voor elke zone - Albion, Marca Hispanica, Al-andalus, Jeruzalem). Elk item heeft een paar attribuutmodifiers. De uitgebreide invoer hierboven betekent dat 1 op elke 3 kleine gruwelen die in Jeruzalem worden voortgebracht, +10 Max Armor, +12 Max Health en +6 Power hebben toegevoegd aan hun basisstatistieken.
Vrij eenvoudig aan te passen, hoop ik!
Tot slot, als je eenheid een vijandelijke eenheid is, wijs dan een Hersenen param. We praten er meer over in hun eigen gids - kunstmatige intelligentie.
Vijanden toevoegen aan een level
Goed, laatste stukje. Laten we een personage als vijand aan een level toevoegen, zodat we het kunnen zien spawnen. Hoewel het maken van kaarten wordt behandeld in een andere gids, volgt hier een kort overzicht van hoe je een vijand aan een kaart kunt toevoegen. Ik raad aan om te controleren Content\Merlin\Voorbeelden\Gameplay\GameplayTest als basislijn.
- Maken/vinden het scriptobject. Het wordt in de wereld weergegeven als een oranje kubus, maar je kunt op de N-toets drukken en ernaar zoeken.
- Dupliceer een van de eenheidsvariabelen. In het script staan al een paar CHOUnitParams. Dupliceer er gewoon een en werk aan de dubbele.
- Blader door een nieuw Unit Params-bestand
- Doe een beetje scripting typ in het .lua-bestand na de eerste installatie de opdracht
homSpawnUnit(worldInfo, XXXXXX, wbEnemyWarband, worldInfo:GetEnemySpawnPoint(“”, 0))
Waarbij XXXXXX de naam is van de params, zoals warlockParams of test1Params.
Zo simpel is het dat wanneer die schermutseling begint, de eenheid op een spawnpunt wordt uitgezet. Zorg ervoor dat er geen andere zijn ingesteld op hetzelfde spawn-punt, zoals te zien is in de handleiding Nieuwe niveaus maken.
Karakters testen
Een paar tips om je karakters te testen:
- Wanneer je een level vanuit de editor start in plaats van door het Lobby/Hoofdmenu te gaan, wijst het spel je de karakters in de Inhoud\Merlin\Databases\TestingRoster.rsc document, zodat u die tekens kunt wijzigen in de tekens waaraan u werkt.
- Om vijanden te testen, kun je de console gebruiken om te typen hom_dbg_bDisableAI = 1, waarmee je de vijandelijke krijgsbende kunt besturen
Nieuwe units zullen je ervaring nog gevarieerder maken. Plezier hebben!
Dat is alles wat we hiervoor vandaag delen De hand van Merlijn gids. Deze handleiding is oorspronkelijk gemaakt en geschreven door midden. Als we deze handleiding niet kunnen bijwerken, kunt u de laatste update vinden door deze te volgen link.