CryENGINE 3 kookboek Voorbeeld hoofdstuk Sandbox-basis

Vandaag zetten we onze CryENGINE 3 Cookbook-weggave voort en geven je een kans om een ​​voorproefje te krijgen van een deel van de inhoud die dit geweldige boek te bieden heeft. Hieronder vind je de tweede van drie aankomende voorbeeldhoofdstukken die we deze week zullen uitbrengen. Als je nog niet hebt ingeschreven voor je kans om een ​​exemplaar van het boek te winnen, lees dan hoe na de sprong!

Fall is eindelijk hier en we beginnen het in stijl af door samen te werken met Packt Publishing om je een kans te geven om een ​​van de drie exemplaren van hun langverwachte CryENGINE 3 Cookbook te winnen, geschreven door Crytek's eigen Dan Tracy en Sean Tracy. Met de recente release van CryENGINE 3 is dit het perfecte moment om in te duiken en te gaan werken met een van de krachtigste game-engines in de industrie.


Ga naar de wedstrijdpost en ontdek hoe je kunt meedoen!



VOORBEELD HOOFDSTUK

CryENGINE 3: Basisinformatie over sandbox

Dit artikel behandelt het merendeel van de hulpmiddelen die u regelmatig zult gebruiken, evenals de essentie voor het creëren van nieuwe en opwindende niveaus voor uw project. Het bevat ook het gebruik van een van de grootste functies van CryENGINE: Wat je ziet, is wat je speelt door te laten zien hoe je het niveau dat je hebt gemaakt op verzoek kunt spelen.

In dit artikel door Dan Tracy, auteur van CryENGINE 3 Cookbook, zullen we het volgende behandelen:

  • De objecten in de wereld plaatsen
  • De plaatsing van het object verfijnen
  • Gebruik de lagen voor samenwerking met meerdere ontwikkelaars
  • Overschakelen naar gamemodus
  • Je niveau opslaan
  • Exporteren naar een motor
  • Essentiële game-objecten
  • Een kaart uitvoeren vanuit de Launcher

De objecten in de wereld plaatsen

Het plaatsen van objecten is een eenvoudige taak; basissnel aansnijden wordt echter niet uitgelegd aan de meeste nieuwe ontwikkelaars. Het is gebruikelijk om te vragen waarom, bij het slepen en neerzetten van een voorwerp in de wereld, kunnen ze het object niet zien. In dit gedeelte leert u de eenvoudigste manieren om een ​​object op uw kaart te plaatsen met behulp van de Volg Terrain methode.

Klaar maken

1. Heb Mijn niveau open binnenkant van Sandbox (na het voltooien van een van de Terreinbeeldhouwen of Een procedureel terrein genereren recepten).
2. Bekijk de Navigeren op een niveau met de Sandbox-camera recept om bekend te raken met de Perspectief.
3. Heb de Rollup Bar open en klaar.
4. Zorg ervoor dat u de EditMode ToolBar open (klik met de rechtermuisknop op de hoofdtop ToolBar en tik EditMode ToolBar).

Hoe je dat doet?

Selecteer eerst de Volg Terrain knop. Open vervolgens de Voorwerpen tab in de Rollup Bar. Nu van de Borstels browser, selecteert u elk object dat u wilt neerplaatsen (bijvoorbeeld, defaults / box).

U kunt op het object dubbelklikken of het naar het bestand slepen en neerzetten Perspectief. Beweeg uw muis ergens waar zichtbaar terrein zichtbaar is en klik dan nog een keer om de positie te bevestigen waar u het wilt plaatsen.

Hoe het werkt?

De Volg Terrain tool is een eenvoudige tool waarmee het draaipunt van het object overeenkomt met de exacte hoogte van het terrein op die locatie. Dit is het best te zien op objecten met een draaipunt dichtbij of in de buurt van de onderkant ervan.

Er is meer?

Je kunt ook terrein volgen en naar voorwerpen snappen. Deze methode lijkt veel op de Volg Terrain methode, behalve dat dit ook objecten bevat bij het plaatsen of verplaatsen van het geselecteerde object.

Deze methode werkt niet op niet-fysieke objecten.


De plaatsing van het object verfijnen

Na het plaatsen van de objecten in de wereld met alleen de Volg Terrain of Snappen naar objecten, mogelijk vindt u dat u de positie, rotatie of schaal van het object moet aanpassen. In dit recept laten we je de basis zien van hoe je dit zou kunnen doen, samen met een paar sneltoetscombinaties om dit proces een beetje sneller te maken. Dit werkt met elk object dat op je niveau staat, van Entiteiten voor Solids.

Klaar maken

1. Heb Mijn niveau open binnenkant van Sandbox
2. Bekijk de Navigeren op een niveau met de Sandbox-camera recept om bekend te raken met de Perspectief.
3. Zorg ervoor dat u de EditMode ToolBar open (klik met de rechtermuisknop op de bovenste main ToolBar en tik EditMode ToolBar).
4. Plaats een voorwerp in de wereld.

Hoe je dat doet?

In dit recept zullen we uw object (het object waarvan u de locatie wenst dat u het wilt verfijnen) noemen voor een gemakkelijke verwijzing.

1. Selecteer Doos.
2. Na selecteren Doos, je zou een widget met drie assen moeten zien, die elke as in de 3D-ruimte weergeeft. Standaard stemmen deze assen overeen met de wereld:
* Y = Doorsturen
* X = Rechts
* Z = omhoog

Verplaatsen van de Doos in de ruimte van de wereld en verander zijn positie, ga verder met de volgende stappen:

3. Klik op de Selecteer en verplaats pictogram in de EditMode ToolBar (1 voor de sneltoets).
4. Klik op de X pijl en sleep je muis op en neer ten opzichte van de richting van de pijl.
5. Als u de muisknop loslaat, wordt de wijziging van de locatie bevestigd.

U kunt objecten op één as of twee tegelijk verplaatsen door te klikken en te slepen in het vlak dat grenst aan twee assen: X + Y, X + Z of Y + Z. Om een ​​object te roteren, doet u het volgende :

1. Selecteer Doos (als je dit nog niet hebt gedaan).
2. Klik op de Selecteer en roteer pictogram in de EditMode ToolBar (2 voor de sneltoets).
3. Klik op de Z pijl (deze heeft nu een bol aan het einde) en sleep je muis van links naar rechts om het object ten opzichte van de as te laten rollen.
4. Als u de muisknop loslaat, wordt de wijziging van de rotatie bevestigd.

U kunt een object niet langs meerdere assen draaien. Om een ​​object te schalen, doet u het volgende:

1. Selecteer Doos (als je dit nog niet hebt gedaan).
2. Klik op de Selecteer en schaal pictogram in de EditMode ToolBar (3 voor de sneltoets).
3. Klik op de CENTRUM en sleep je muis op en neer om op alle drie de assen tegelijk te schalen.
4. Het loslaten van de muisknop bevestigt de schaalverandering.

Het is mogelijk om op slechts één as of twee assen te schalen; dit is echter zeer ontmoedigd als Niet-uniforme schaling zal resulteren in gebroken fysieke mazen voor dat object. Als u wilt dat een object wordt opgeschaald, raden we u aan om alleen op alle drie assen uniform te schalen!

Er is meer?

Hier zijn enkele extra manieren om objecten in de wereld te manipuleren.

Lokale positie en rotatie

Als u de verfijning van positie of rotatie een beetje gemakkelijker wilt maken, kunt u proberen de widget te wijzigen of te roteren door deze te wijzigen zodat deze zich ten opzichte van de draaipunt van het object uitlijnt. Om dit te doen, is er een vervolgkeuzemenu in de EditMode ToolBar die de optie heeft om te selecteren lokaal. Dit heet Lokale richting.

Deze opstelling kan helpen om uw object te positioneren nadat u het hebt geroteerd.

Grid en angle snaps

Als u wilt helpen bij het plaatsen van niet-organische objecten, zoals gebouwen of wegen, wilt u mogelijk de computer inschakelen Klik op raster keuze. Als u deze functie inschakelt, kunt u het object op een raster verplaatsen (momenteel relatief ten opzichte van de locatie). Als u de rasterafstand wilt wijzigen, klikt u op de vervolgkeuzepijl naast het nummer om de afstand te wijzigen (de rasterafstand is in meter).

Angle Snaps bevindt zich rechts van de Grid Snaps. Als u deze functie inschakelt, kunt u een object om de vijf graden draaien.

Ctrl + Shift + klik

Hoewel het een sneltoets is, is deze sneltoets voor veel ontwikkelaars uiterst handig voor de eerste plaatsing van objecten. Hiermee kunt u het object snel naar elk punt op een fysiek oppervlak ten opzichte van uw verplaatsen Perspectief.


Gebruik de lagen voor samenwerking met meerdere ontwikkelaars

Een veelgestelde vraag die gewoonlijk over de CryENGINE wordt gesteld, is hoe één ontwikkelaar op hetzelfde niveau werkt als een andere op hetzelfde moment. Het antwoord is-Lagen. In dit recept laten we je zien hoe je het lagensysteem mogelijk niet alleen voor je eigen organisatie kunt gebruiken, maar ook om externe lagen in te stellen waar andere ontwikkelaars parallel aan kunnen werken.

Klaar maken

1. Heb Mijn niveau open binnenkant van Sandbox.
2. Bekijk de Navigeren op een niveau met de Sandbox-camera vertrouwd raken met de Perspectief.
3. Heb de Rollup Bar open en klaar.
4. Bekijk de De objecten in de wereld plaatsen (plaats minstens twee voorwerpen) recept.

Hoe je dat doet?

1. Voor dit recept gaan we ervan uit dat je een eigen repository voor je project hebt of een manier om je werk naar anderen in je team te sturen.
2. Ten eerste, begin met het neerzetten van twee objecten op de kaart. Omwille van het recept zullen we ze noemen als box1 en box2. Nadat u beide vakken hebt geplaatst, opent u de Rollup Bar en breng de Lagen tab.
3. Maak een nieuwe laag door op de knop Nieuwe laag te klikken (papier met een + -symbool).
4. A Nieuwe laag dialoogvenster verschijnt. Geef het de volgende parameters:
* Naam = ActionBubble_01
* Zichtbaar = waar
* extern = waar
* Bevroren = vals
* Exporteren naar spel = waar
5. Selecteer nu box1 en open de Voorwerpen tab in de Rollup Bar.
6. Hiervandaan ziet u in het hoofdpakket van dit object waarden zoals - Naam, Helper grootte, MTL, en Minimale specificatie. Maar ook in deze rollup ziet u een knop voor lagen (deze moet als Hoofd worden gemarkeerd). Als u op die knop klikt, ziet u een lijst met alle andere beschikbare lagen.
7. Als u nogmaals op een andere laag klikt die niet gemarkeerd is, wordt dit object naar die laag verplaatst (doe dit nu door op te klikken ActionBubble_01).
8. Sla nu je niveau op door op te klikken-Bestand | Opslaan.

Nu in jouw bouwen map, ga naar de volgende locatie: -? \ Game \ Levels \ My_Level. Vanaf hier zult u een nieuwe map zien genaamd Lagen. In die map zul je zien ActionBubble_01.lyr.

Deze laag is de laag waar je andere ontwikkelaars aan zullen werken. Om dit te kunnen doen, moet je je eerst engageren My_Level.cry en de Lagen map naar uw repository (het is het gemakkelijkst om de hele map te commiten).

Nadat je dit hebt gedaan, kun je nu je andere ontwikkelaar wijzigingen aanbrengen in die laag door te verplaatsen box1 naar een andere locatie. Laat ze de kaart opslaan.

Laat ze committen enkel en alleen de ActionBubble_01.lyr naar de repository. Als je het eenmaal hebt opgehaald uit de bijgewerkte repository, zul je dat merken box1 zal zijn verplaatst nadat je bent heropend My_Level.cry in de Editor met de nieuwste laag.

Hoe het werkt?

Externe lagen zijn de sleutel tot dit hele proces. Eens een .huilen bestand is opgeslagen om naar een externe laag te verwijzen, het krijgt toegang tot de gegevens in die lagen bij het laden van het niveau in Sandbox.

Het is een goede gewoonte om een ​​a toe te wijzen Kaart eigenaar wie zal zorgen voor de .huilen het dossier. Aangezien dit het hoofdbestand is, zou slechts één persoon verantwoordelijk moeten zijn voor het onderhoud ervan door indien nodig nieuwe lagen te maken.

Er is meer?

Hier is een lijst met beperkingen van wat externe lagen niet kunnen bevatten.

Externe laag beperkingen

Hoewel elke entiteit / object die u in uw niveau plaatst, in externe lagen kan worden geplaatst, is het belangrijk op te merken dat er sommige items zijn die niet in deze lagen kunnen worden geplaatst. Hier is een lijst met de algemene items die uitsluitend in het bezit zijn van de .huilen het dossier:

  • Terrein
  • * Hoogte map
    * Eenheidsgrootte
    * Maximum terreinhoogte
    * Gaten
    * Texturen

  • vegetatie
  • Omgevingsinstellingen (tenzij gedwongen door Game Logic)
  • * Hoogte van de oceaan

  • Time of Day-instellingen (tenzij gedwongen door Game Logic)
  • Gebakken AI Markup (De eigenaar van de .huilen bestand moet AI regenereren als nieuwe markeringen op externe lagen worden aangemaakt)
  • Minimap markers

Overschakelen naar gamemodus

CryENGINE is trots op het gezegde Wat je ziet, is wat je speelt, en het overschakelen naar de spelmodus is hiervan het bewijs.

Het spreekt voor zich dat het testen van uw werk vaak de sleutel is tot een succesvol project en het snelle, eenvoudige gebruik van overstappen naar Spelmodus binnen de Editor stelt u in staat om te testen zonder te hoeven sluiten Sandbox.

Hoewel de Editor is gebouwd met deze functie zodat ontwikkelaars hun werk kunnen controleren, is dit nog steeds slechts een emulatie. Dit betekent dat er in deze modus verschillende speciale editorregels en foutopsporingsopties beschikbaar zijn, wat niet volledig representatief is voor wat de speler zou kunnen zien in de Pure Game. Hoewel het een uitstekend idee is om vaak te testen door over te schakelen naar de Spelmodus, is het ook belangrijk om een ​​laatste test uit te voeren in de Launcher op je doelplatform om een ​​juiste te hebben Pure Game ervaring.

In dit recept behandelen we het eenvoudige, maar zeer belangrijke gebruik van overschakelen naar gamemodus. Met deze functie kun je direct naar je niveau springen en kun je testen wat de speler ziet, hoort en voelt op de locatie waar je bent met jouw Perspectiefcamera.

Klaar maken

Hebben Mijn niveau open binnenkant van Sandbox.

Bekijk de Navigeren op een niveau met de Sandbox-camera vertrouwd raken met de Perspectief.

Hoe je dat doet?

Zoek in de hoofdwerkbalk van Sandbox Spel | Schakel over naar Game of klik op Ctrl + G. Het is zo simpel.

Game Logic kan de aanvankelijke spawning-locatie van de speler wijzigen. Als deze logica is ingeschakeld, moet je ook op deze locatie spawnen bij het betreden van de gamemodus.


Je niveau opslaan

Op het eerste gezicht lijkt het opslaan van je niveau een eenvoudig proces; er zijn echter een paar belangrijke functionaliteiten waar u op moet letten bij het opslaan van uw niveau. Dit recept laat je zien hoe je een basisbesparing doet, je niveau kopieert / verplaatst (do niet gebruik Opslaan als) en automatische back-ups.

Klaar maken

Heb elk niveau open binnen Sandbox.

Open Windows Verkenner naar de volgende locatie: ? \ CryENGINE_Build \ Game \ Levels.

Hoe je dat doet?

Ga naar om een ​​niveau op te slaan Bestand | Opslaan.

Ctrl + S werkt niet standaard. Hiervoor moet je zelf een sneltoets instellen.

Bij het kopiëren / verplaatsen van niveaus:

1. Sla eerst uw niveau op naar de standaardlocatie.
2. Ga naar de locatie van het niveau in Windows Verkenner (? \ Game \ Levels).
3. Gebruik Windows-opdrachten om het geheel te kopiëren / knippen Mijn niveau map.
4. Plak het niveau op de gewenste locatie.
5. Hernoem, indien nodig, beide Mijn niveau map en My_Level.cry naar iets dat u verkiest.

We raden aan dat u nooit een Opslaan als voor jouw niveau. Helaas zijn er verschillende afhankelijkheden (Level.pak, TerrainTexture.pak, Layers, Minimap-afbeeldingen, enzovoort) die niet worden verplaatst of zichzelf opnieuw koppelen wanneer een Opslaan als is uitgevoerd. Ze zijn allemaal afhankelijk van de map waarin ze zijn geplaatst. Als je dit doet, zie je verschillende anomalieën binnen je niveau (gebroken texturen, bugs in spellogica, ontbrekende items).

Denk er bij het maken van een back-up aan dat Sandbox standaard maakt My_Level.bak bestanden na de tweede / derde keer dat uw niveau wordt opgeslagen. Deze .bak bestanden zijn in wezen de vorige saves van je .huilen het dossier.

Als je om welke reden dan ook terug moet naar een eerdere opslag van je niveau, kun je je account verwijderen My_Level.cry bestand en hernoem My_Level.bak # naar My_Level.cry en open je level opnieuw in Sandbox.

Sandbox maakt standaard ook maximaal twee eerdere revisies (My_Level.bak en My_Level.bak2).

Hoe het werkt?

Standaard worden alle niveaus opgeslagen in hun eigen map binnenin ? \ Game \ Levels door hun niveau naam. Bijvoorbeeld, Mijn niveau zal een eigen map hebben met de map van het niveau. Eenmaal opgeslagen, bevat elk niveau ook een *.huilen bestand, waarbij de * ook de naam van het niveau is. Elk van deze .huilen bestanden bevatten alle relevante informatie die nodig is om uw niveau te bepalen (net als een blauwdruk voor uw niveau).

Er is meer?

Afhankelijk van uw werkstijl, wilt u misschien het automatische back-upsysteem inschakelen. Hiermee wordt uw werk automatisch elke X minuten-interval opgeslagen met de naam van uw keuze (Automatische back-up standaard) in de map van uw niveau. Deze automatische back-ups worden continu opgeslagen zolang uw editor geopend is of als u deze functie uitschakelt.

Open om deze functie te gebruiken Sandbox | Hulpmiddelen | Voorkeuren | Algemeen / bestanden | Automatische back-up.


Exporteren naar een motor

Hoewel het opslaan van je niveau een a creëert .huilen bestand voor u, is het uiterst belangrijk op te merken dat een .huilen alleen zal niet werken in de Launcher. Daarvoor moet u dit recept uitvoeren, waarmee u de vereiste bestanden kunt maken om in te voeren Pure gamemode.

Klaar maken

Hebben Mijn niveau open binnen Sandbox.

Hoe je dat doet?

Ga naar Bestand | Exporteren naar engine of klik op Ctrl + E.

Hoe het werkt?

Deze cruciale stap is vereist om alle instellingen van de blueprint in je te converteren .huilen bestand in naar a level.pak binnenkant van de Mijn niveau map om in te gebruiken Pure gamemode. Deze level.pak is in feite een cache met gegevens voor het te gebruiken spel, waarin alle gebakken informatie over Game Logic, AI Markup, Deeltjeslijst, Brush lijst, enzovoort is opgeslagen.

Er is meer?

Hier is wat nuttige informatie waarover je meer zou moeten weten .pak bestanden.

.Pak-bestanden openen

Het is mogelijk om deze .pak-bestanden te openen en de hierin opgeslagen informatie te bekijken met behulp van compressiesoftware van derden, zoals WinZIP en WinRAR. We raden u echter niet aan dit te doen, tenzij u bekend bent met de bestanden die u mogelijk handmatig wilt wijzigen. Als je de bestanden binnen deze .pak-bestanden verandert, loop je het risico dat je het .pak-bestand beschadigt en je level voor de Launcher verlaagt..
Beschadigde .pak-bestanden moeten worden verwijderd en opnieuw worden geëxporteerd

Er is geen reden tot paniek als, om welke reden dan ook, een van je .pak-bestanden beschadigd raken en onbruikbaar worden in Pure Gamemode. Je kunt ze altijd verwijderen en een nieuwe versie van je My_Level.cry genereren door dit recept te herhalen.


Essentiële game-objecten

Hoewel we hebben besproken hoe je je niveau kunt exporteren om in te gebruiken Pure gamemode, je kunt merken dat wanneer je je level start, je niet op de juiste locatie op de kaart bent. Dit snelle recept laat zien hoe je een spawn-punt kunt maken Pure gamemode en herinner je ook aan het belang van een fysiek oppervlak waarop je kunt spawnen.

Klaar maken

1. Heb Mijn niveau open binnenkant van Sandbox.
2. Bekijk de Navigeren op een niveau met de Sandbox-camera vertrouwd raken met de Perspectief.
3. Bekijk de De objecten in de wereld plaatsen en Objectplaatsing verfijnen recepten.
4. Heb de Rollup Bar beschikbaar in uw Sandbox-indeling en klaar.

Hoe je dat doet?

Tenzij je spel een soort van mechanisch vliegende speler ondersteunt, raden we je aan om een ​​locatie te kiezen waar de speler kan staan ​​wanneer hij in eerste instantie op je niveau spawnt. Elk fysiek oppervlak (vloer, dak, terrein, rots, enzovoort) zal het doen.

Ga als volgt te werk om een ​​spawn-punt te plaatsen:

1. Ga naar uw Rollup Bar.
2. Open de Voorwerpen tab en klik op de Entiteit knop.
3. Open de anderen map in de entiteitenlijst.
4. Plaats Paaipunt op de locatie waar je de speler wilt spawnen.

Hoe het werkt?

Dit eerste spawn-punt werkt automatisch als het belangrijkste spawn-punt voor uw kaart in Pure gamemode (zolang u zich aan de standaardwaarde houdt SinglePlayer.lua spelregels). Als u vanaf de kaart op uw kaart springt Launcher nu zul je op deze locatie worden uitgezet.

Eventuele extra spawn-punten zullen niet werken tenzij er gamlogica is ingebouwd in hun functionaliteit.


Een kaart uitvoeren vanuit de Launcher

Het laatste recept in dit artikel gaat over hoe u toegang krijgt tot de Pure gamemode versie van Mijn niveau van de Launcher.

Klaar maken

Je moet een kaart hebben met een werkende spawn point (anders zul je spawnen op 0,0,0), die is geëxporteerd vanuit de motor met een functioneel level.pak.

Het niveau moet ook in je zijn Bouwen map.

Hoe je dat doet?

1. Open vanuit Windows Explorer een van beide? \ Bin32 of? \ Bin64.
2. Start het uitvoerbare bestand Launcher.exe.
3. Open de console (~).
4. Typ het volgende: kaart My_level.
5. Druk vervolgens op invoeren.

Hierdoor wordt de kaart geladen en wordt u uitgezet in het spawn-punt dat is verstrekt.


Samenvatting

In dit artikel hebben we de basis en meest gebruikte functies van Sandbox geleerd.


Over de auteur :

Dan Tracy

Dan Tracy is Crytek's technische niveauontwerper voor de bekroonde CryENGINE en Crysis 2. Hij is verantwoordelijk voor het maken en onderhouden van tal van technische functies en externe toepassingen die worden gebruikt voor telemetrie en optimalisatie. Als meer dan een levelontwerper beschouwd, gaat Dan er prat op de grenzen te verleggen als het gaat om het verbeteren van zowel technische als game-gerelateerde ontwerpen in meerdere productiedisciplines. Dan werd in 2009 door Crytek aangeworven nadat hij het jaar ervoor als Quality Assurance Technician voor BioWare werkte. Hij werd gerekruteerd vanwege zijn cruciale rol in het mede-oprichten en leiden van de ontwikkeling van het bekroonde totale conversieproject 'MechWarrior: Living Legends'. Sindsdien is hij te zien in tal van gokmagazines en is hij geïnterviewd door verschillende media. Dan is een gepassioneerde gamer, maar een nog meer gepassioneerde modder- en gameontwerper met een enorme kennis en ervaring met meerdere engines en titels, waaronder Never Winter Nights '? Aurora ?, Battlefield's engine? Frostbite ?, Unreal 3 en CryENGINE.


Ga naar de wedstrijdpost en ontdek hoe je kunt meedoen!



Opmerking van de uitgever: Dit bericht werd gesponsord door Packt Publishing.