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.
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.
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:
Dit is vergelijkbaar met exporteren voor iOS, behalve dat het platform voor Runtime-pakket moet worden geselecteerd als Android.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
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:
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.
De geïnteresseerde lezer zou de Simulator kunnen uitbreiden om hem aantrekkelijker te maken. Sommige ideeën staan hieronder in toenemende volgorde van complexiteit.