Maak een 3D Flight Simulator-app voor iOS en Android - Project Export

In deze tutorialserie zullen we een vluchtsimulatortoepassing maken met ShiVa3D Suite. Om deze applicatie te bouwen, behandelen we alle onderwerpen die nodig zijn voor het maken van 3D-games, educatieve toepassingen en nieuwe 3D-apps. In deze zelfstudie, het vierde en laatste deel, concentreren we ons op het exporteren van de toepassing voor meerdere platforms.

Deel 3 van deze serie was gericht op het toevoegen van de code en het testen van het eindproduct. In deel 4, het laatste deel van de serie, zullen we de applicatie exporteren vanuit de ShiVa-editor en importeren in de ShiVa Authoring Tool. Vervolgens leggen we uit hoe je de applicatie converteert naar een platformspecifiek uitvoerbaar bestand via de ShiVa Authoring Tool. De platforms die we zullen overwegen zijn Android, iPad en iPhone. We zullen schermafbeeldingen van de Simulator geven van apparaten die daadwerkelijk zijn getest, een Motorola Droid-telefoon met Android OS 2.2, een iPad2 met iOS 4.3 en een iPod Touch met iOS 4.3. Tot slot zullen we in de 'Slotopmerkingen' een conclusie geven aan de serie.


Ook verkrijgbaar in deze serie:

  1. Maak een 3D Flight Simulator-app voor iOS en Android - Theoretisch overzicht
  2. Maak een 3D Flight Simulator-app voor iOS en Android - Environment Creation
  3. Maak een 3D Flight Simulator-app voor iOS en Android - Simulator-programmering
  4. Maak een 3D Flight Simulator-app voor iOS en Android - Project Export

Het spel exporteren

Momenteel is de ontwikkeling van de Simulator-game voltooid. We zullen nu de Simulator exporteren voor twee verschillende platforms voor authoring: iOS, voor inzet op iPad- en iPhone / iPod Touch-apparaten en Android OS, voor inzet op Android-apparaten.

Exporteren voor iOS

Selecteer in de verkenner van Gegevens, onder de map Games, Simulator. Selecteer Game uit het menu rechts klikken (als je wordt gevraagd om iets op te slaan met het spel, selecteer je Ja).


Stel in het dialoogvenster Exporteren de veldnaam Export in op "Simulator". Zorg ervoor dat het selectievakje Lokale map is aangevinkt en kies een lokale map om het spel te exporteren. Vink ook het selectievakje Runtime-pakket (.stk) aan en kies iOS voor het bijbehorende platform.


Druk op "Exporteren" om het spel te exporteren. Het kan een tijdje duren om de export te voltooien. Na voltooiing ziet u een bevestigingsvenster als volgt:


Exporteren voor Android

Dit is vergelijkbaar met exporteren voor iOS, behalve dat het platform voor Runtime-pakket moet worden geselecteerd als Android.



De ShiVa Authoring Tool

Tot dusverre hebben we de Simulator ontwikkeld zonder code te schrijven die specifiek is voor iOS- of Android-platforms. We zullen nu de ShiVa Authoring-tool gebruiken om de Simulator in drie verschillende applicaties om te zetten, één voor Android, één voor iPhone / iPod touch en één voor iPad.

Het Android-platform

Breng de ShiVa Authoring Tool ter sprake. Selecteer het tabblad Android. Druk op de pijl onder 'Of ga nu aan de slag ...'.


Stap 1 van de Authoring Tool wordt weergegeven. Selecteer voor 'Application pack' uit uw bestandssysteem het Simulator.stk-bestand dat is geëxporteerd vanuit ShiVa Editor voor Android. Selecteer voor 'Icon' de flight-48-48.png die deel uitmaakt van het bronarchief dat bij deze serie hoort. Selecteer voor 'Startup splashscreen' de flight-480-800.png die ook deel uitmaakt van het bronarchief bij dit artikel. Houd er rekening mee dat de ShiVa Authoring Tool een voorbeeld van de afbeeldingsbestanden weergeeft die zijn opgegeven in de selecties 'Pictogram' en 'Startup splashscreen'. Druk op 'Stap 2: Authoring' boven op het scherm.


Stap 2 van de Authoring Tool wordt weergegeven. Hier zullen we een uitvoerbaar bestand van Android maken dat direct op een Android-apparaat kan worden geïnstalleerd. Selecteer 'Authoring type' als 'APK Package' (Als u wilt dat een Eclipse-project wordt gemaakt in plaats van een uitvoerbaar bestand, selecteert u in plaats daarvan 'Project'. De optie Project is niet getest in deze serie). Voer voor de 'Bundle identifier' com.shiva3d.simulator in. Laat 'Version' en 'Version code' blijven als respectievelijk 1.0.0 en 1. Druk op 'Stap 3: Bouwen' boven op het scherm.


Stap 3 van de Authoring Tool wordt weergegeven. Selecteer 'Bouwtype' als 'Ontwikkeling'. Het selectievakje 'Open OpenGLES 1.1 gebruiken' moet zijn uitgeschakeld (we hebben de build niet getest met dat checkbox aangevinkt). Omdat we de Simulator als onderdeel van de build op ons Android-apparaat willen installeren, hebben we het selectievakje 'Installeren op verbonden apparaat' aangevinkt. Om die optie te laten werken, moet je de stappen in 'Het Android-apparaat gereedmaken voor installatie' hieronder hebben voltooid. Als het selectievakje 'Installeren op verbonden apparaat' niet is aangevinkt, maakt het Authoringtool het Android-uitvoerbare bestand voor de Simulator-applicatie in de 'Uitvoermap', die later kan worden geïnstalleerd met behulp van de adb-tool in Android.

Laat 'Audio backend' als 'Default' staan. Selecteer 'Minimum OS-ondersteuning' als 'Android 2.2 (API-niveau: 8)'.


Definieer een uitvoermap voor de Authoring Tool om de bestanden op te slaan die het genereert tijdens het bouwproces. Laat 'Custom post build script' selectie behouden als een 'Geen script' optie. Druk op de knop Bouwen.


Het zal een tijdje duren om de build te voltooien. Zodra de build is voltooid, ziet u een bevestiging in de console waarin staat dat de build met succes is voltooid.


Als u de optie 'Installeren op verbonden apparaat' hebt geselecteerd, is de Simulator-applicatie op dit moment op het aangesloten apparaat geïnstalleerd. Ongeacht of die optie is aangevinkt of niet, een Android-programma genaamd Simulator-debug.apk is gemaakt in de uitvoermap die u in stap 3 hebt gedefinieerd.

Bereid het Android-apparaat voor op de installatie

Als u wilt dat de Shiva 3D Authoring Tool de Simulator op het Android-apparaat installeert als onderdeel van de build, moet u het apparaat voorbereiden voor installatie. Controleer eerst in de applicatie-instellingen 'Onbekende bronnen', zoals hieronder weergegeven.


Controleer vervolgens in de ontwikkelingsopties van uw apparaat 'USB-foutopsporing' zoals hieronder wordt weergegeven.


Zorg er ook voor dat uw apparaat via een USB-kabel is aangesloten op uw ontwikkelmachine (houd er rekening mee dat wanneer u een bepaald Android-apparaat voor de eerste keer op uw Windows-pc aansluit, Windows OS het juiste apparaatstuurprogramma op uw computer installeert. moet u de Wizard Hardware toevoegen naar de locatie van de Android SDK-installatiemap brengen voor de wizard om een ​​geschikte driver te vinden).

Simulatieschermen voor het Android-apparaat

De Simulator is geïmplementeerd in een Motorola Droid-telefoon met Android 2.2 OS. De onderstaande figuur toont de snelkoppeling voor Simulator in het startmenu van Android (het opstartpictogram is het afbeeldingsbestand met de naam flight-48-48.png hierboven gebruikt in de ontwerptool).


Het volgende is een screenshot van de Simulator op een Android-apparaat.


Het iPad-platform

We zullen nu de ShiVa Authoring Tool gebruiken om de Simulator-applicatie voor implementatie op een iPad-apparaat te maken. Breng de ShiVa Authoring Tool ter sprake. Selecteer het tabblad iPad. Druk op de pijl onder 'Of ga nu aan de slag ...'.


Stap 1 van de Authoring Tool wordt weergegeven. Selecteer voor 'Application pack' uit uw bestandssysteem het Simulator.stk-bestand dat is geëxporteerd vanuit ShiVa Editor voor iOS. Selecteer bij 'Icon' de flight-72-72.png die deel uitmaakt van het bronarchief dat bij deze serie hoort. Selecteer voor 'Startup splashscreen' de flight-768-1024.png die ook deel uitmaakt van het bronarchief dat bij deze serie hoort. Houd er rekening mee dat het ShiVa-hulpprogramma een voorbeeld van de afbeeldingsbestanden weergeeft die zijn opgegeven in de selecties 'Pictogram' en 'Opstartscherm'. Druk op 'Stap 2: Authoring' boven op het scherm.


Stap 2 van de Authoring Tool wordt weergegeven. Hier zullen we een Xcode-project maken dat kan worden gebruikt voor het bouwen en installeren van de applicatie op een iPad-apparaat. Selecteer 'Authoring type' als 'Project'. Voer 'com.shiva3d.simulator' in voor 'Bundle identifier'. Voor 'Provision profile' geeft u het ontwikkelingsprovisioningprofiel op vanaf de Apple Provisioning Portal. Geef voor 'Ondertekening identiteit' de naam van de ontwikkelaar (of organisatie) op in de sleutelhanger die is gekoppeld aan het certificaat in uw Mac OS-ontwikkelingsmachine. Laat 'Versie' 1.0.0 zijn. Druk op 'Stap 3: Bouwen' boven op het scherm.


Stap 3 van de Authoring Tool wordt weergegeven. Selecteer 'Ontwikkeling' als het 'Bouwtype'. Het selectievakje 'Open OpenGLES 1.1 gebruiken' moet zijn uitgeschakeld (we hebben de build niet getest met dat checkbox aangevinkt). Geef een uitvoermap op voor het Authoringtool om een ​​Xcode-projectmap te maken. We definiëren bijvoorbeeld de uitvoermap als / Users / cocoderkatz / Desktop / tmpiPad. Vervolgens maakt de Authoring Tool een map met de naam /Users/cocoderkatz/Desktop/tmpiPad/Simulator_iPad.s3dxproj en kopieert hij de Xcode-projectbestanden / -mappen onder die map. Wijzig geen andere opties. Druk op de knop Bouwen.


Nadat de build is voltooid, ziet u een bericht in de console dat de authoring-tool een Xcode-projectmap heeft gemaakt en de bijbehorende bestanden naar die map heeft gekopieerd. Nu kun je xCode gebruiken om de Simulator-applicatie op een iPad-apparaat te bouwen en uit te voeren, zoals je normaal zou doen met andere Xcode-projecten.


Simulatieschermen op een iPad 2-apparaat

De Simulator is geïmplementeerd op een iPad 2-apparaat met iOS 4.3. De onderstaande figuur toont de snelkoppeling voor de Simulator op een startmenu van iPad 2 (het startpictogram is het afbeeldingsbestand met de naam flight-72-72.png hierboven gebruikt in de ontwerptool).


Het volgende is een screenshot van de game op een iPad 2-apparaat.


Het iPhone-platform

We zullen nu de ShiVa Authoring Tool gebruiken om de Simulator-applicatie voor implementatie op een iPhone / iPod touch-apparaat te maken. Breng de ShiVa Authoring Tool ter sprake. Selecteer het tabblad iPhone. Druk op de pijl onder 'Of ga nu aan de slag ...'.


Stap 1 van de Authoring Tool wordt weergegeven. Selecteer voor 'Application pack' uit uw bestandssysteem het Simulator.stk-bestand dat is geëxporteerd vanuit ShiVa Editor voor iOS. Selecteer voor 'Icon' de vlucht-114-114.png die deel uitmaakt van het bronarchief dat bij deze serie hoort. Selecteer voor 'Startup splashscreen' de flight-640-960.png die ook deel uitmaakt van het bronarchief dat bij deze serie hoort. Houd er rekening mee dat ShiVa Authoring Tool een voorbeeld toont van de afbeeldingsbestanden die zijn opgegeven in de selecties 'Pictogram' en 'Opstart splashscreen'. Druk op 'Stap 2: Authoring' boven op het scherm.


Stap 2 van de Authoring Tool wordt weergegeven. Hier zullen we een Xcode-project maken dat kan worden gebruikt voor het bouwen en installeren van de applicatie op uw iPhone of iPod touch-apparaat. Stel het 'Authoring type' in op 'Project'. Voer 'com.shiva3d.simulator' in voor 'Bundle identifier'. Voor 'Provision profile' geeft u het ontwikkelingsprovisioningprofiel op vanaf Apple Provisioning Portal. Geef voor 'Ondertekening identiteit' de naam van de ontwikkelaar (of organisatie) op in de sleutelhanger die is gekoppeld aan het certificaat in uw Mac OS-ontwikkelingsmachine. Laat 'Versie' 1.0.0 zijn. Druk op 'Stap 3: Bouwen' boven op het scherm.


Stap 3 van de Authoring Tool wordt weergegeven. Selecteer 'Ontwikkeling' als het 'Bouwtype'. Het selectievakje 'OpenGLES 1.1 gebruiken' moet zijn uitgeschakeld (we hebben de build niet getest met dat checkbox aangevinkt).


Geef een uitvoermap op voor het Authoringtool om een ​​Xcode-projectmap te maken. We definiëren bijvoorbeeld de uitvoermap als / Users / cocoderkatz / Desktop / tmp. Vervolgens maakt de Authoring Tool een map met de naam /Users/cocoderkatz/Desktop/tmp/Simulator_iPhone.s3dxproj en kopieert de Xcode-projectbestanden / -mappen onder die map. Wijzig geen andere opties. Druk op de knop Bouwen.


Nadat de build is voltooid, ziet u een bericht in de console dat de authoringtool een Xcode-projectmap heeft gemaakt en de gerelateerde bestanden in die map heeft gekopieerd. Nu kunt u Xcode gebruiken om de Simulator-applicatie op een iPhone- of iPod Touch-apparaat te bouwen en uit te voeren, zoals u normaal zou doen met andere Xcode-projecten.


Simulatieschermen op iPod Touch-apparaten

De Simulator is geïmplementeerd in een iPod touch met iOS 4.3. De onderstaande afbeelding toont de snelkoppeling voor Simulator in het startmenu van iPod touch. Het opstartpictogram is het afbeeldingsbestand met de naam flight-114-114.png hierboven gebruikt in de ontwerptool.


Het volgende is een screenshot van het spel op een iPod touch.



Slotopmerkingen

In deze serie hebben we een eenvoudige vluchtsimulator ontwikkeld met behulp van de ShiVa 3D Suite en geïmplementeerd op Android- en iOS-apparaten. De belangrijkste ontwikkelingshulpmiddelen die we hebben gebruikt, zijn de ShiVa-editor en de ShiVa Authoring Tool. De ShiVa-editor wordt gebruikt om een ​​3D-game te ontwikkelen op een platformonafhankelijke manier. Hiermee kan de ontwikkelaar 3D-afbeeldingen van de toepassing en de bijbehorende code maken. De uitvoer van de ShiVa-editor is een platformspecifiek exportbestand, b.v. één voor Android OS of één voor iOS. Het exportbestand van de ShiVa Editor wordt vervolgens geïmporteerd in de ShiVa Authoring Tool om een ​​uitvoerbaar bestand of een projectbestand voor het specifieke platform te genereren. Voor Android OS hebben we een uitvoerbaar bestand van Android gegenereerd met behulp van de ShiVa Authoring Tool. Voor iPad2 en iPhone / iPod hebben we overeenkomstige Xcode-projecten gegenereerd met behulp van de ShiVa Authoring Tool.

Een productsuite om platformonafhankelijke applicaties te ontwikkelen zonder enige platformspecifieke code te schrijven, ShiVa 3D Suite biedt geweldige hulp aan diegenen die geïnteresseerd zijn in het maken van 3D-applicaties voor iOS- en Android-apparaten. Bezoek ShiVa3D Suite voor extra platforms die worden ondersteund door de ShiVa-editor en de ShiVa Authoring Tool.

Hieronder geven we aanvullende opmerkingen over de Simulator-applicatie die we in deze serie hebben besproken.

Terrain Creation

Tijdens de ontwikkeling van de Simulator introduceerden we verschillende basisfuncties van de terreincreatiefunctionaliteit in ShiVa Editor. Meer geavanceerde visuele effecten kunnen aan een terrein worden toegevoegd. U kunt bijvoorbeeld sneeuw toevoegen aan bergen, verschillende structuren definiëren zoals rots, grond, vegetatie of water. Sommige van die visuele effecten vereisen echter het importeren van afbeeldingsbestanden die de specifieke terreinextuur vertegenwoordigen. Met andere woorden, u zult hulpmiddelen nodig hebben die buiten de ShiVa 3D Suite zijn gemaakt.

Het terrein dat we hebben gemaakt heeft beperkte afmetingen. Het vereist speciale technieken om een ​​terrein te ontwikkelen dat nooit eindigt, d.w.z. een terrein dat oneindige dimensies heeft. Voor een discussie hierover zie http://www.stonetrip.com/developer/forum/viewtopic.php?f=39&t=20668.

Eenheden en variabelen

Het idee van een afstandseenheid in Shiva3D Editor is geen absoluut concept. Het moet worden geïnterpreteerd ten opzichte van de toepassing en het specifieke apparaat waarop de toepassing wordt uitgevoerd. In de Simulator zijn drie belangrijke parameters gerelateerd aan de afstandseenheid

  • grootte van het terrein, dat is 4.096 x 4.096 eenheden;
  • oorspronkelijke hoogte van het vlak, 50 eenheden, gedefinieerd als de coördinaat van de eerste Y-as,
  • de variabele V, die de snelheid weergeeft, waarvan de waarde 0,25 is.

Uit een bespreking van de functie move () waarbij we de variabele V gebruiken, is het gemakkelijk te zien dat het vliegtuig 0,25 eenheden per frame aflegt. (Herinner dat de functie verplaatsen () bij elk frame wordt aangeroepen.) Als u de toepassing implementeert in een apparaat dat 20 frames / seconde weergeeft, is de gesimuleerde snelheid 18.000 eenheden / uur. Laten we nu aannemen dat één afstandseenheid overeenkomt met 30 voet. Houd vervolgens in gedachten dat 1 mijl = 5.280 voet:

  • grootte van het terrein is ongeveer 23.3 mijl (= 4.096 eenheden x 30 voet x 1 mijl / 5.280 voet)
  • oorspronkelijke hoogte van het vlak is 1500 voet (= 50 eenheden x 30 voet)
  • de snelheid van het vliegtuig is ongeveer 102,3 mijl / uur (= 18.000 eenheden / uur x 30 voet x 1 mijl / 5.280 voet)

We hadden kunnen aannemen dat één afstandseenheid overeenkomt met 50 voet. Dan zouden de grootte van het terrein, de aanvankelijke hoogte van het vliegtuig en de snelheid van het vliegtuig dienovereenkomstig veranderen. We becommentariëren eenvoudigweg het feit dat een afstandseenheid geen absolute fysieke waarde is. Het is een parameterinvoer naar verschillende functies in onze Simulator-game. Wat er echt toe doet, is of de gebruiker de gesimuleerde dynamiek als verstandig zal ervaren of niet.

Andere twee variabelen die belangrijk zijn voor het creëren van een realistische vluchtervaring zijn dP en dR (zie pitch () en bank () hierboven). De dP wordt gebruikt om de snelheid van de pitch te regelen, terwijl dR wordt gebruikt om de snelheid van de worp en de draaisnelheid te regelen. We hebben de eindwaarden voor V, dP en dR met vallen en opstaan ​​bepaald na meerdere keren de Simulator in de doelapparaten te hebben ingezet.

We merken ten slotte op dat de huidige waarden voor V, dP en dR in de bovenstaande codevoorbeelden beter leken te zijn voor iPad 2 en iPod touch-apparaten dan Motorola Droid. Dit komt waarschijnlijk omdat Motorola Droid, een vroeg voorbeeld van Android-telefoons, een langzamere CPU heeft dan de andere twee. Met de herziene waarden als volgt ingesteld, hebben we een meer realistische dynamiek waargenomen in Motorola Droid.

  • V = 0,75 (in plaats van 0,25)
  • dP = 0,2 (in plaats van 0,04)
  • dR = 0,15 (in plaats van 0,05)

Hoe de simulator uit te breiden

De geïnteresseerde lezer zou de Simulator kunnen uitbreiden om hem aantrekkelijker te maken. Sommige ideeën staan ​​hieronder in toenemende volgorde van complexiteit.

  • Voeg geluid toe aan het spel dat wordt afgespeeld wanneer een bepaalde manoeuvre begint. Een goed uitgangspunt is de tutorial in hoofdstuk 7 van Shando's Shiva Book.
  • Voeg oriëntatiepunten toe aan het terrein zodat het vliegtuig rond slalomt. Voor elk gemist doel een strafpunt toewijzen en dit op het scherm weergeven.
  • Voeg een 3D-vliegtuigmodel toe dat voor de camera moet volgen. Wijs de bedieningsknoppen toe om dat vlak te manoeuvreren. Laat de duimacties de camera besturen. De gebruiker navigeert door het vliegtuig en de camera, zodat het vliegtuig nooit uit het zicht verdwijnt.