Begin met het gratis maken van Virtual Reality Games in Unity 5
Virtual Reality neemt op een grote manier af Waarom Virtual Reality-technologie je geest in 5 jaar zal opvlammen Waarom Virtual Reality-technologie je geest in 5 jaar zal opblazen De toekomst van virtual reality omvat head-, eye- en expressiontracking, gesimuleerde aanraking en nog veel meer . Deze verbazingwekkende technologieën zullen over 5 jaar of minder voor u beschikbaar zijn. Meer lezen - Valve, HTC, Samsung en Facebook verzenden in de nabije toekomst allemaal high-end virtual reality-hardware. Aan de software kant ontwikkelen zich tientallen grote studio's voor de nieuwe hardware, en ze geven allemaal vrijelijk toe dat ze geen idee hebben wat ze doen.
Deze handleiding kan als gratis PDF worden gedownload. Download Aan de slag Maak nu Virtual Reality Games in Unity 5 voor gratis. U kunt dit kopiëren en delen met uw vrienden en familie.Het is net als de begindagen van DOOM en Wolfenstein helemaal opnieuw. Niemand weet hoe een goede VR-game eruit ziet, en het veld staat open voor indie-studio's om belangrijke spelers te worden. Als je videogames wilt maken Start met games maken in no-time met Unity3D Gratis beginnen met games maken in no-time met Unity3D gratis Lees meer, dit is misschien wel de beste kans die je ooit hebt om een naam voor jezelf te maken.
Dus laten we zeggen dat je mee wilt doen. De tools zijn gebruikersvriendelijker dan ooit en ze zijn bijna allemaal gratis. Maar waar begin je? Deze gids biedt u alle tools en informatie die u nodig heeft om aan de slag te gaan - geheel gratis.
Klaar? Laten we ernaar toe gaan.
Wat je nodig hebt:
Om aan de slag te gaan met VR-games, heb je slechts drie dingen nodig:
- Ten eerste heb je een VR-headset nodig. De beste algemeen beschikbare optie op dit moment is de Oculus Rift DK2, die u hier voor $ 350 kunt kopen.
- Ten tweede heb je een redelijk capabele gaming-pc nodig. VR is ongeveer drie keer zo intensief dan normaal pc-gamen, dus u wilt een krachtige CPU en kaart. Oculus beveelt een i5, een GTX 970 of equivalent en acht gigabytes RAM aan.
- Een recente versie van Windows 7, 8 of 10.
Afgezien van dat, alles wat je nodig hebt is gratis. Wat betreft software gebruiken we:
- Unity 5 Personal Edition
- Het GIMP (Gnu Image Manipulation Program)
- De SteamVR Unity Plugin
- De plug-in Primitive Plus Unity
- De Oculus Windows Runtime
Uw hulpmiddelen instellen
Laten we beginnen met alles te laten installeren. Download en voer de installatieprogramma's uit voor Unity en GIMP GIMP: een snel overzicht van ieders favoriete Open Source Image Editor GIMP: een snel overzicht van de favoriete Open Source Image Editor van iedereen Lees meer. Dit zou vrij duidelijk moeten zijn. Wanneer u Unity voor de eerste keer opent, wordt u gevraagd een account te maken: doe dit en onthoud uw gebruikersnaam en wachtwoord.
Inside Unity, maak een nieuw project aan (zorg ervoor dat je een “3D” project - niet “2D”). Stel de projectdirectory in op Mijn documenten / Mijn project.
Gebruik nu uw browser om naar de Unity Asset Store te gaan en meld u aan met dezelfde inloggegevens. Hiermee krijgt u toegang tot ontwikkelaarstools en bronnen. Gebruik de Primitive Plus- en SteamVR-links hierboven, zoek de pakketten op en klik op de knop 'Openen in eenheid' in de linkerbovenhoek. Omdat dit gratis bezittingen zijn, hoeft u niet te betalen - anderen zijn misschien niet gratis, dus wees voorzichtig. Volg de aanwijzingen die naar boven komen en importeer deze pakketten in Unity. U zou nieuwe mappen moeten zien in het submenu 'Project'. Het kan een minuut duren voordat ze zijn gedownload, dus wees geduldig en sluit de eenheid pas als ze zijn voltooid.
Scripting in Unity
Unity is extreem gemakkelijk te gebruiken als je ooit eerder hebt geprogrammeerd. Als u niet vertrouwd bent met C #, besteedt u wat tijd om uzelf vertrouwd te maken met de syntaxis (probeer deze uitstekende interactieve tutorial). Als je nog nooit eerder hebt geprogrammeerd, doe deze stap dan ook en besteed je tijd om je een weg te banen door de puzzels op Project Euler. Dit zal je helpen om vertrouwd te raken met de soorten problemen die je tijdens het programmeren zult aanpakken, en het soort probleemoplossende vaardigheden dat je nodig hebt.
Zodra je je comfortabel voelt bij het oplossen van problemen met C #, raad ik je aan wat tijd door te brengen met het verkennen van Unity met behulp van hun uitstekende tutorials voor beginners. Je kunt ook onze eigen spoedcursus gebruiken voor Unity Programming Een spel met eenheid: een beginnershandleiding Een spel met eenheid programmeren: een gids voor beginners In het zich ontwikkelende landschap van indie-game-ontwikkeling, is Unity als iets van een de-facto standaard naar voren gekomen: de lage kosten, het gebruiksgemak en de brede functies maken het ideaal voor een snelle ontwikkeling van games. Lees verder . Ik zal een korte uitleg geven van alle componenten die ik gebruik, maar er is veel waardevolle informatie daar die je goed van pas zal komen als je grotere projecten probeert.
Als u een Unity-script wilt gebruiken, hebt u eerst een object nodig om dit bij te voegen. In de editor kunt u 3D-objecten op drie manieren maken.
- U kunt ze als onderdeel van een pakket importeren.
- U kunt de bestanden naar uw map Mijn project / Activa slepen.
- Je kunt ze in de editor maken via het GameObject-menu bovenaan het scherm - hiermee kun je eenvoudige primitieve vormen maken, zoals kubussen en bollen, evenals tekst en deeltjes.
Als u ze importeert of ze naar de map met items sleept, worden ze weergegeven in het subvenster 'Project'. Je kunt ze in het spel plaatsen door het tabblad 'Scène' te selecteren en ernaar te slepen. Je zou ze dan in de wereld moeten zien verschijnen. Het besturingselement schakelt in de linkerbovenhoek zodat u ze naar wens kunt schalen, draaien en positioneren. Objecten kunnen aan elkaar worden 'gekoppeld' (waardoor ze roteren en samen bewegen) door hun namen naar elkaar te slepen op het tabblad 'Hiërarchie'.
Zodra een object in de scène staat, kunt u er een of meer scripts aan koppelen. Deze scripts zorgen ervoor dat het object tot leven komt. Ze maken geweren vuur, kogels bewegen en personages lopen en praten.
Als u een script wilt toevoegen, selecteert u het object dat u wilt beheren op de tabbladen 'Scène' of 'Hiërarchie'. Het tabblad 'Inspecteur' wordt gewijzigd om alle onderdelen weer te geven die aan het betreffende object zijn gekoppeld. Een typisch object ziet er ongeveer zo uit en bevat een paar elementen:
- Een mesh-filter laat de game-engine weten welke vorm het object is.
- Een Renderer tekent het object eigenlijk naar het scherm.
- Een Rigidbody laat de physics-engine weten dat het object bestaat en definieert de eigenschappen ervan.
- Een Collider definieert de fysieke grenzen van het object: u kunt natuurkundige berekeningen goedkoper maken door een complex object een eenvoudige collider te geven, zoals een doos of een bol.
Op het tabblad van de inspecteur kunt u een nieuw script toevoegen met de knop 'Component toevoegen' onderaan. Vanaf hier kunt u een script toevoegen dat u al hebt gemaakt, of u kunt een nieuw script maken. Verander de taal in 'C #', voer de gewenste naam in en klik op 'maken'. Hiermee wordt een nieuw (leeg) script aan het object toegevoegd. Als u dubbelklikt op de naam van het script op het infovenster, wordt het script geopend in MonoDevelop, de codebewerker van Unity.
In uw nieuwe bestand ziet u een functie 'Start' en 'Update'. 'Start' wordt uitgevoerd wanneer het object voor het eerst wordt gemaakt. Doe hier elke setup die je nodig hebt. 'Update' voert elk frame uit en is waar de meeste logica naartoe zou moeten gaan.
Om toegang te krijgen tot de componenten van het object, kunt u 'gameObject.Renderer', gameObject.rigidbody, 'etc. typen, afhankelijk van welk element u wilt besturen. Openbare variabelen die voor de' start'-functie zijn gedeclareerd, zijn zichtbaar in de editor, om het eenvoudiger te maken om ze te tweaken. Voor meer informatie over het omgaan met verschillende systeemelementen, bekijk de Unity-handleiding.
Dit is een eenvoudig script dat ik heb gemaakt en dat ervoor zorgt dat een object ritmisch wordt uitgebreid en samentrekt, gebaseerd op een sinusgolf. Maak een kubus in Unity, voeg een script toe en kopieer het script naar de 'Update'-methode. Nadat je het hebt opgeslagen en op de knop 'play' in de editor hebt gedrukt, zou je de kubus moeten zien uitzetten en krimpen. Zorg ervoor dat het 'Camera'-object zo is geplaatst dat het het object kan zien!
VR-modus inschakelen
Nu we een basale Unity-scène hebben ingesteld, laten we hem laten weergeven op je VR-headset. We zullen de SteamVR-plug-in gebruiken, die wordt uitgevoerd naar zowel de Oculus Rift, als de HTC Vive wanneer deze uiteindelijk wordt vrijgegeven. Het is een gemakkelijke manier om voor beide te ontwikkelen.
Ga op het tabblad 'Project' naar de SteamVR-map en open de submap 'prefab'. Je ziet verschillende entiteiten klaar voor gebruik. Sleep de prefab 'CameraRig' en 'SteamVR' naar de scène. Deze zijn al ingesteld met alles wat je nodig hebt. Verplaats ze naar je scène (op hetzelfde punt geplaatst). Verplaats ze zodat ze de kubus kunnen zien. Verwijder nu de originele (niet-VR) camera-objecten - met meer dan één actieve camera in een scène wordt een fout gegenereerd, omdat Unity niet weet welke u wilt gebruiken.
Installeer nu, als u dat nog niet hebt gedaan, Oculus Windows Runtime en sluit uw DK2 aan.
Herstart je computer. In het systeemvak ziet u het oculus-ooglogo. Als u erop klikt, krijgt u de optie om de selectiemodus 'Weergavemodus' en het configuratiehulpprogramma te openen. Stel de weergavemodus in op 'Direct'. Open vervolgens het Oculus Configuration-hulpprogramma. Controleer of u de demo-scène kunt zien. Als dit niet lukt, moet u dit debuggen voordat u doorgaat.
r / Oculus is een goede hulpbron voor dit soort dingen. De demoscene moet soepel lopen en de rotatie en positie van je hoofd volgen, zonder schokkerigheid of dubbele afbeeldingen.
Als het niet goed werkt, controleer dan of uw camera u kan zien en of deze correct is aangesloten. Controleer ook of uw videokaart voldoende krachtig is en of u geen intensieve applicaties op de achtergrond hebt..
Zodra je hebt gecontroleerd of je VR-headset correct werkt, open je Unity en druk je op de afspeelknop. De eenvoudige scène die we hebben ingesteld, moet worden weergegeven op je VR-headset! Gefeliciteerd: je hebt zojuist je eerste VR-demo gemaakt!
Je eerste VR-spel maken
Tot nu toe, zo eenvoudig - maar dit is geen bijzonder indrukwekkende demo. Om je een idee te geven van hoe het is om een meer betrokken project te maken, ga ik je vertellen hoe ik een volledig VR-arcadespel heb gemaakt dat ik al heb voltooid, getiteld AsteroidVR.
Dit is geen Skyrim, maar het is een volledige game die je kunt spelen, met werkende graphics en een complete set mechanica. Het duurde een paar dagen om te maken, en gaat ongeveer op het niveau van de proof-of-concept-demo's die je veel zult maken terwijl je experimenteert met verschillende soorten games.
De game is eenvoudig genoeg: je bestuurt een schip dat gevangen zit in een grote ruimte. Het vaartuig zal met een constante snelheid bewegen. Je kunt sturen en schieten, maar niet stoppen. De kamer wordt langzaam gevuld met willekeurige grootte “asteroïden,” die doelloos door de kamer zal stuiteren. Het is uw taak om te voorkomen dat u zo lang mogelijk tegen deze asteroïden of de muren botst. Je zult in staat zijn om asteroïden te schieten, maar je munitie zal langzaam opladen als je opraakt.
Dat is het basisidee. Laten we beginnen. Omdat dit slechts een demo is, maken we onze troeven uit eenvoudige primitieven zoals kubussen en bollen (met behulp van het Primitive Plus-item).
Schip
Dit is het schip dat ik heb gemaakt.
Ik geef toe, het lijkt veel op een vorkheftruck, maar het zal voor deze demo goed zijn.
Zorg bij het bouwen van de cockpit voor een aantal voor de hand liggende constructies in het gezichtsveld van de gebruiker, vooral in de periferie. Dit helpt om bewegingsziekte te voorkomen door de gebruiker een aantal vaste elementen te geven, waardoor het gevoel wordt verminderd dat ze bewegen. Dat maakt het voor hun hersenen gemakkelijker om te gaan met het gebrek aan beweging dat wordt gemeld door hun innerlijke oren.
Ik moest met verschillende cockpitconfiguraties experimenteren voordat ik er een vond die me niet ziek maakte. Voeg bij twijfel meer stutten toe en verplaats de camera terug. Wees voorzichtig met schaal! Eén eenheid in Unity is één meter in VR, dus houd de grootte van de elementen in de gaten die u aan het maken bent. Het is gemakkelijk om objecten te maken die belachelijk groot of belachelijk klein zijn in VR, en de resultaten kunnen verontrustend zijn.
Wanneer je klaar bent met het bouwen van je schip, maak dan een kubus die het omringt, en ouder alle primitieven van het schip erop. Dit levert de aanvaringsdoos en het bewegingscentrum op. Voeg een ... toe “star lichaam” naar de externe kubus en schakel de renderer uit (door het vinkje in het infovenster te verwijderen). Zorg ervoor dat de rigide body zo is ingesteld dat 'kinematic' en 'use gravity' beide zijn uitgeschakeld. Voeg andere rigidbodies toe aan elk van de primitieven van het schip, deze keer plaatst u ze zo “kinematisch,” maar uitzetten “gebruik de zwaartekracht.”
Verplaats de 'CameraRig'- en' SteamVR'-objecten in de cockpit en plaats ze op de plaats waar het hoofd van de gebruiker zich binnen het schip moet bevinden. Ik heb een ander gratis Unity-item (een humanoïde robot) gebruikt om ervoor te zorgen dat de positie correct wordt uitgelijnd. Breng ze naar de externe kubus - hierdoor zullen ze met het object meebewegen.
Nu om het schip te beschrijven! Dit zijn de twee scripts die ik heb gemaakt - Vehicle Controller en Vehicle Destroyer. De eerste leest input van de gebruiker in en geeft stoten aan het schip, waardoor het beweegt. De tweede detecteert wanneer het schip botst met iets met de tag 'rock' en eindigt het spel. Als een leuk extraatje breekt het schip ook uit elkaar in de componenten, waardoor je ze tijdens een botsing weg ziet vliegen. Het script maakt een reeks objecten die u moet invullen met alle primitieven in het schip, in de editor.
Het script geeft ook enkele instructies weer die verschijnen wanneer je sterft. Maak een TextMesh GameObject en stel het in om te zeggen “Je stierf! Maak een opname om opnieuw te starten!” Plaats deze TextMesh in de cockpit, koppel deze aan het schip en schakel de component van de renderer uit. Sleep het vervolgens naar de “instructie” variabele van het VehicleDestroy-script in het infovenster. Deze tekst is normaal onzichtbaar, maar verschijnt opnieuw wanneer je sterft.
Asteroïde
Vervolgens gaan we onze asteroïden maken. Dit is de asteroïde waarmee ik eindigde, gemaakt van een paar primitieven die aan elkaar vastzaten, en de standaard shader. Niets is te ingewikkeld, maar het ziet er goed uit.
Ik heb een rigidbody toegevoegd en getagd als een “rots.” Als u niet bekend bent met het eenheidstagsysteem, raadpleegt u de betreffende handleidingpagina. Kort gezegd, met tags kunt u speciale eigenschappen toewijzen aan objecten, die kunnen worden gedetecteerd tijdens botsingen, zodat scripts weten waarmee ze in wisselwerking staan. In dit geval zorgt de tag ervoor dat het scheepsobject detecteert dat het is geraakt door iets gevaarlijks.
Nu om de asteroïde te beschrijven. Het script is hier “AsteroidInit,” wat twee dingen doet.
- Ten eerste, het maakt de asteroïden een beetje willekeurig om ze er anders uit te laten zien en geeft elke speler een trap in een willekeurige richting.
- Ten tweede detecteert het of de asteroïde is geraakt door iets dat is getagd als 'opsommingsteken'. Als dat zo is, activeert het een deeltjes-emitter die ik op de asteroïde heb bevestigd en vernietigt het oorspronkelijke object.
Arena
Super goed! De twee basiselementen van het spel zijn aanwezig. Vervolgens de arena. Het kan elke gewenste vorm hebben, maar zorg ervoor dat het groot is. Door in kleine cirkels te draaien, worden mensen vaak ziek. Rechtdoor vliegen is relatief onschuldig. Tag alle rotswanden van de muren om te zorgen dat het schip wordt vernietigd als het erin vliegt. Dit is de arena waar ik mee eindigde:
Je zult merken dat de muren een eenvoudige tijdelijke aanduiding hebben die ik heb gemaakt in de GIMP. Voor het grootste deel ontwierp ik het spel met een textureless esthetiek voor de eenvoud. Ik merkte echter dat ik het moeilijk had om te vertellen wanneer ik bijna in een muur terechtkwam, zodat ze texturen krijgen voor gameplay-doeleinden. Ik heb ook een deeltjeszender aan de arena toegevoegd en deze gevuld met vage, langlevende, statische deeltjes. Dit maakt het gemakkelijker om te vertellen hoe je beweegt wanneer je niet in de buurt van een object bent. Gelukkig is de arena behoorlijk passief, dus er is zelf geen scripting voor nodig.
Maak tot slot een primitieve (ik gebruikte een holle cilinder) en plaats deze tegen een muur.
Dit wordt je asteroïde spawner. Voeg dit script eraan toe. U zult opmerken dat dit script een declareert “Asteroïde” GameObject-variabele, die zichtbaar moet zijn in de editor. Sleep uw asteroïdeobject erop in de editor. Hierdoor kan het een onbeperkt aantal asteroïden spawnen, met een snelheid van één per seconde, waardoor het spel een langzaam escalerende moeilijkheidsgraad krijgt. Plaats uw originele asteroïde erg ver weg, om te voorkomen dat deze per ongeluk wordt vernietigd of problemen veroorzaakt.
HUD en Gun
Op dit punt is de meest elementaire vorm van het spel in wezen speelbaar. Nu voegen we enkele secundaire functies toe die het een beetje meer diepte geven. Dit script, gekoppeld aan een “TextMesh,” zal bijhouden hoelang je hebt geleefd. Een tweede script zal met een bestand praten om uw hoge score te bepalen, die door de voertuighandler naar het bestand wordt geschreven wanneer u opnieuw opstart. Nu heb je een eenvoudig scorebordsysteem, waarmee de speler een doelpunt krijgt. Anker deze netten in de cockpit waar ze gemakkelijk zichtbaar zijn.
Ten slotte moeten we de wapens van de gebruiker implementeren. Voeg een ... toe “geweer” bezwaar maken tegen het schip (het hoeft niet ingewikkeld te zijn) en sleep dit script er naartoe. U moet een opsommingstekenobject koppelen, wat elk object kan zijn met een star lichaam en het 'opsommingsteken'. Maak het felgekleurd, zodat het zichtbaar is. Nogmaals, plaats het ver weg, zodat het geen interactie heeft. Eindelijk moet je een munitie-display maken. Voeg dit script toe aan een ander tekstnetwerk en veranker het in de cockpit waar het gemakkelijk te zien is.
Scherpstellen
Dat is het eigenlijk wel! Op dit punt zijn alle basiselementen van het spel voltooid. Nu is het tijd om te testen. Je kunt het groottebereik voor de asteroïden, de vorm en grootte van de arena, de snelheid van het schip, de hoeveelheid munitie, de oplaadsnelheid en de afkoeling wijzigen. Je kunt experimenteren met de manier waarop het schip omgaat. Als je wilt, en wat 3D-modelleringsvaardigheden hebt, kun je zelfs mijn programmeerkunst vervangen door echte troeven en er een gepolijst spel van maken. Het belangrijkste is om veel te experimenteren en uit te zoeken wat goed voor je voelt en comfortabel is voor testers (bij voorkeur testers die nog niet bekend zijn met VR en nog geen ijzeren maag hebben ontwikkeld).
Als je het hele Unity-project wilt zien en er mee wilt rommelen, kun je het hier downloaden. Als je alleen mijn versie van de laatste game wilt spelen, kun je deze hier downloaden.
Bouw je eigen demo's
Als u uw eigen zelfstudie volgt en in de documenten graaft wanneer u iets vindt dat u niet begrijpt, krijgt u een redelijk goede greep van het maken van basis-VR-spellen in Unity. Als je verder wilt gaan, ben je goed uitgerust om dit te doen.
Dat gezegd hebbende, VR game-ontwikkeling is heel anders dan traditionele game-ontwikkeling, dus ik ga wat algemeen advies geven voor het ontwerpen van VR-ervaringen die comfortabel zullen zijn en ten volle zullen profiteren van het medium.
Beweging
Eerst en vooral moet je de beweging van het hoofd van de gebruiker respecteren. Schaal het niet, verwring het niet, verander het gezichtsveld niet, of knoeien met de basis. Oculus en Valve hebben veel moeite gedaan om dit spul te verfijnen om mensen niet ziek te maken. Tenzij je een aantal perceptuele psychologen bij de hand hebt, ben je niet gekwalificeerd om ermee te knoeien. Niet doen! Wees ook voorzichtig en schakel het nooit uit. Maak geen menu's zonder head-tracking. Niets maakt je sneller misselijk dan een enorm voorwerp tien seconden of langer op je hoofd te hebben!
In dezelfde geest, wees voorzichtig met beweging. De belangrijkste factor die mensen ziek maakt, is wanneer hun ogen beweging waarnemen die hun binnenoor niet heeft. Houd de beweging in het algemeen langzaam en stabiel. Versnellingen moeten onmiddellijk zijn en rotatie moet worden geminimaliseerd. Wanneer rotatie moet plaatsvinden, moet u de gebruiker voorzien van vaste referentiepunten in hun perifere visie. Als je kunt, bouw dan games die helemaal zonder beweging plaatsvinden. Er is veel cool spul dat je kunt doen in een enkele kamer, of met behulp van kleine voorwerpen (denk aan Real Time Strategiegames 4 uitstekende realtime strategiespellen die je kunt spelen op de goedkope 4 uitstekende realtime strategiespellen die je kunt spelen op de goedkope Het real-time strategy-genre is vandaag een van de hoofdbestanddelen van het gamen. Andere genres, zoals first-person shooters en rollenspellen, zijn verzadigd met honderden verschillende titels, maar real-time strategie biedt niet de ... Lees meer over schaal van plastic legermannen), en het zal een stuk eenvoudiger zijn om deze ervaringen comfortabel en aangenaam te maken.
UI
Veel mensen willen VR-content automatisch willen toevoegen aan het hoofd van de gebruiker, zoals Military Heads Up Displays. Helaas blijkt dit niet erg goed te werken. Als je ogen gericht zijn op iets dat ver in de wereld is, worden voorwerpen dicht bij je hoofd een onscherpe pixel. Bovendien zorgt het scherpstellen op objecten in de buurt voor vermoeidheid van de ogen.
Om dit te voorkomen, probeert u uw gebruikersinterface zo veel mogelijk in de wereld te plaatsen. Kijk naar spellen als Dead Space voor inspiratie. Je zult opmerken dat in AsteroidsVR, de cemo hierboven, alle gebruikersinterfaces verankerd zijn in de cockpit. Omdat het in de ruimte om je heen is, is de gehele gebruikersinterface logisch en is het comfortabel om naar te kijken.
Aanverwante opmerking, wees voorzichtig met tekst. De huidige VR-headsets hebben een vrij lage resolutie, vooral wanneer u rekening houdt met hoeveel van uw gezichtsveld ze dekken. Dat betekent dat tekst vrij moeilijk te lezen is. Probeer er zo min mogelijk op te vertrouwen. De tekst die je wel hebt, moet groot genoeg zijn om onder normale kijkomstandigheden leesbaar te zijn. Onthoud dat sommige van uw spelers mogelijk ouderen of slechtzienden zijn! Err aan de zijkant van te groot.
grafiek
Onthoud dat VR erg intensief is. De DK2 moet draaien op 1080p, in 3D, op 75 fps. Zowel de consument Rift als de HTC Vive zullen met nog hogere resoluties en framerates draaien. Als deze framesnelheden niet worden bereikt, resulteert dit in flikkerend dubbel zien. Het is buitengewoon schokkend en een one-way ticket voor desoriëntatie en vermoeidheid van de ogen.
Het resultaat is dat u veel zorgvuldiger moet zijn met de prestaties dan u normaal zou doen. Dat betekent dat poly-tellingen worden beperkt en dat dure grafische effecten worden geminimaliseerd. Gebruik eenvoudige modellen, beperk het aantal lampen tot een minimum, schakel dynamische schaduwen uit en probeer zoveel mogelijk objecten hetzelfde materiaal te laten gebruiken. U moet ook objecten markeren die niet veranderen of verplaatsen zoals “statisch” in de inspecteur. Dat maakt het eenvoudiger voor Unity om ze samen te voegen en prestaties te besparen. Wanneer je kunt, maak deze beperkingen dan deel uit van je gameontwerp, door een cartoonachtige esthetiek voor je spel te kiezen. Over het algemeen, als je een visueel effect kunt elimineren zonder het spel te beschadigen, doe het dan.
De enige uitzondering op deze vuistregel is anti-aliasing. Aliasing (een gekarteld artefact veroorzaakt door de discrete aard van computergraphics) komt in elk oog verschillend voor, wat leidt tot een onaangename afbraak van het 3D-effect, wat vermoeidheid van de ogen kan veroorzaken. Gebruik zoveel mogelijk anti-aliasing als u zich kunt veroorloven (ik raad MSAA aan) en probeer texturen te vermijden met hoogfrequente visuele details (zoals gebladerte, fijne roosters of complexe texturen die ver weg zijn geplaatst).
Sommige visuele effecten zijn ook slechte pasvormen voor VR in het algemeen, zelfs als je ze kunt betalen.
- Wees voorzichtig met nabewerkingseffecten zoals bloom, wat kan resulteren in hun eigen stereoverstoringen.
- Houd er ook rekening mee dat 3D ervoor zorgt dat sommige veel voorkomende visuele cheats buitengewoon slecht lijken. Normale kaarten, een nietje van videogames, zien er helemaal plat uit als ze van dichtbij in VR worden bekeken. Spreuken van het reclamebord (van het type dat gewoonlijk wordt gebruikt voor explosies) zien er ook plat uit en kunnen echt de onderdompeling onderbreken. Evenzo lijken veel van de sprite-gebaseerde technieken die gebruikt worden om puin of vegetatie te laten lijken plat en verkeerd.
- Tenslotte, wees op uw hoede voor transparante objecten. Moderne rendering engines hebben moeite om de diepte bij te houden wanneer je veel transparante objecten in dezelfde scène hebt. Dit wordt extreem schokkend in VR. Probeer het aantal transparante objecten tot een minimum te beperken en vermijd scenario's waarin u het ene transparante object door het andere kunt zien.
Houd dit allemaal in gedachten wanneer u kunstitems maakt en het bespaart u veel pijn.
Als je dat merkt, ziet je game er na het uitschakelen van al deze grafische effecten een beetje saai uit, gebruik je lichtkaarten en nep ambient-occlusie. Lichtkaarten bakken verlichting direct in een structuurlaag op de kaart, die er fantastisch uitziet voor alles dat niet beweegt, en kan veel diepte en stevigheid aan uw wereld toevoegen. Raadpleeg voor gebruik van dynamische objecten (zoals tekens) “schaduw klodder” texturen om ambient occlusion te creëren. Het is niet helemaal realistisch, maar het doet veel om ze in de wereld te aarden, en het is extreem grafisch goedkoop!
Naarmate de tijd vordert, zullen dit soort hacks minder nodig zijn, maar voor nu zul je zoveel mogelijk van je voordeel moeten doen om prestaties te besparen.
Experimenteer vroeg en vaak
Het belangrijkste advies dat ik heb is om je vooroordelen los te laten. VR is niet precies wat we allemaal dachten dat het in de jaren 90 zou zijn. De realiteit heeft bewezen veel voordelen en beperkingen te hebben die niemand had kunnen voorzien. Wat klinkt geweldig op papier (zoals VR Halo) blijkt in de praktijk een desoriënterende, misselijkmakende puinhoop. Enkele van de best ontvangen VR-ervaringen Oculus Rift VR-simulaties die je moet zien om te geloven Oculus Rift VR-simulaties die je moet zien om te geloven Je hebt de Oculus Rift gezien, maar je hebt sommige van de krankzinnige toepassingen nog niet gezien naar. Bekijk deze geweldige Oculus Rift-demo's van over de hele wereld. Meer lezen is echt raar, zoals Job Simulator, een sandbox-spel in een keuken.
VR is een volledig nieuw medium en niemand begrijpt de regels tot nu toe volledig. In traditionele videogames weten we vrij goed hoe je een FPS, een RPG en een cover shooter moet maken. Deze basisgenres zijn genageld. Er zijn best-practices. Elke nieuwe game die wordt gemaakt, is een stapsgewijze verbetering, maar het is meestal geen nieuw genre. In VR zijn er niets MAAR nieuwe genres. De basis van het medium is nog niet eens uitgevonden. Niemand weet wat ze doen.
Dit is ongelooflijk spannend, maar het betekent wel dat je flexibel moet zijn. Als je een geweldig idee hebt, doe het dan! Per direct! Haal een prototype zo snel mogelijk af en kijk of het werkt. Maar wees bereid om het experiment te laten mislukken. Als je idee niet leuk is of je testers ziek worden, gooi het weg en probeer iets nieuws.
Maak wekelijks een nieuwe game, of zelfs elke dag, totdat je goud bereikt. Hoe meer mislukte prototypen je maakt, hoe groter je kansen om iets heel cools uit te vinden. Maak rare spellen. Maken werkelijk rare spellen. Niemand weet wat er gaat werken en wat niet, dus gooi een breed net. Je zult misschien verrast zijn door wat geweldig lijkt te zijn.
Dus ga daarheen, maak een paar spellen - en bovenal veel plezier!
Ontdek meer over: Game Development, Longform Guide, Video Game Design, Virtual Reality.