Saturday, 30 April 2016

The clock is ticking

Animation updates
Check out http://sgiangptolemi.blogspot.com.au/2016/04/crash-test.html

It has a great description for creating an object using wayfire in 3ds max and then animating it crashing over another object. Pretty cool stuff. Simon is one the students taking part in our AR team. 

http://benv2423tiaradobbs.blogspot.com.au/2013/10/week-2-wayfire-demo.html is one of my earlier blogs that outlines wayfire as well.

A stab at submitting to an app store 
1. https://unity3d.com/learn/tutorials/modules/beginner/platform-specific/how-to-submit-to-the-ios-app-store
2. Download iTunes connect
3. Create an account and subcribe to a yearly membership aproximately $150 AUD a year
4. You will have to register a bundle ID. The bundle identifier is an ID for your application used by the system as a domain for which it can store settings and reference your application uniquely. It is represented in reverse DNS notation and it is recommended that you use your company name and application name
5. Once you have submitted your game to Apple App developer, the waiting period is 1-2 weeks for confirmation.
That means we need this time up and running at the end of this week. at leaste a deployed one.

For android
For the mean time, take a look at http://docs.unity3d.com/Manual/android-GettingStarted.html I haven't gotten a chance to check it out myself yet but I'll cross that bridge when I come too it. 

Project updates


"People want to learn because they want to get better. They want to be part of 'next' to learn their way into bigger opportunities.” Jacques Panis


So the AR project for VIVID is officially underway. EXCITING STUFF! Now we have recruited a team of able students from the faculty of Build Environment at UNSW, we can finally get the show on the road.

Project components 

Object/Animation        >         Game environment       >         AR      >         APP(X-platform)

The first step on the agenda is to make a crude AR product and follow it up with more detailed design work later.

Object/Animation

1. Concept development (after initial mechanics have been sorted)
2. Possible technologies: 3Ds Max/ UNITY, CRYSIS, UnrealEngine

Game Environment
1. Will be where the magic happens.

AR
1. Wikitude, Layer,

App builder (across platform)
1. Choose/test with technology
       1. Unity
       2. Wikitude
       3. Applier
2. Strong call to action
3. KISS (keep it simple stupid)

Current further readers:
http://www.wikitude.com/…/d…/-/message_boards/message/607151

https://unity3d.com/…/pl…/how-to-submit-to-the-ios-app-store

http://www.wikitude.com/blog-unity-boost-ar-apps/

http://appindex.com/…/ten-best-cross-platform-development-…/

Monday, 28 March 2016

Unity: Exporting for App development

Export and Xcode Build settings changes 
Android studio:http://www.wikitude.com/developer/documentation/unity#_48_INSTANCE_Zk7M2pQVPDDi_=setupguideunity.html

Once the application is setup in Unity and ready for testing on a real device, it needs to be exported as an Xcode project for iOS or built for Android either directly by creating an .apk file using Unity or by exporting an Android Studio project. (3)

(3)This method follows the instructions outlined on the wikitude documentation page: http://www.wikitude.com/developer/documentation/unity#_48_INSTANCE_Zk7M2pQVPDDi_=setupguideunity.html

Unity: Scripting and Geocaching

I started familiarising myself with the Unity interface and tutorials. I particularly found the tutorial Unity Scripting extremely helpful in implementing the Geocaching for the AR.

using UnityEngine;
using System.Collections;
public class Gps : MonoBehaviour {
 // Use this for initialization the geolocation/location based information
 IEnumerator Start () {
   // First, check if user has location service enabled
   if (!Input.location.isEnabledByUser)
   {
     // remind user to enable GPS
     // As far as I know, there is no way to forward user to GPS setting menu in Unity
   }
   // Start service before querying location
   Input.location.Start();
   // Wait until service initializes
   int maxWait = 20;
   while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) {
     yield return new WaitForSeconds(1);
     maxWait--;
   }
   // Service didn't initialize in 20 seconds
   if (maxWait < 1) {
     print("Timed out");
   }
   // Connection has failed
   if (Input.location.status == LocationServiceStatus.Failed) {
     print("Unable to determine device location");
   }
   // Access granted and location value could be retrieved
   else
     print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " +    Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " +  Input.location.lastData.timestamp);
  // Stop service if there is no need to query location updates continuously
  Input.location.Stop();
 }
}

Unity: AR Getting started

Simple augmented reality Test

1. Import the Wikitude.unitypackage into your project


Select the downloaded Wikitude.unitypackage in the presented open file browser and click open. You should import all items that are part of the Wikitude.unitypackage.

2. Add the WikitudeCamera and ClientTracker or CloudTracker prefab to the Unity scene hierarchy
3. Add a custom augmentation to the tracker and handle OnEnterFieldOfVision

andOnExitFieldOfVision events
4. Export your project and change Xcode Build Settings in order to fully integrate the Wikitude Native SDK in your Unity project (1).

Sunday, 27 March 2016

AR Plugin for Unity: installation Wikitude AR Plugin

Your have two options for the part of the project, either create your own or host the augmented reality on an existing cross-platform app.
If you are going to create your own I recommend visual studio. You can download the program via https://www.visualstudio.com/post-download-vs?sku=community&clcid=0x409#

I have chosen to go with hosting the augmented reality on an existing program, I have chosen to go with Unity augmented reality using a free cross-platform Wikitude plugin.

Reason

I have chosen to use wikitude because it allows the user to host easy location-based augmented reality and its free, easy to use and relatively straightforward. You can download the full Wikitude augmented reality product which does not require any Unity work, however its gonna cost an arm and a legg (nearly 1400 euros)
if you want a pretty comprehensive list of possible AR products you could use to do the job, check out: http://augmera.com/?p=461

Installation

1. Download the plugin http://www.wikitude.com/download/#DownloadExtension
the download should take 8-10 minutes depending on your network.
2. After your download has begun, you will need to register an account with wikitude to get a free activation key, they key will be sent to the email you provide.
3. Open the file and extract its content and install the package. Rememeber where you saved the extracted file.
4. Open Unity and open a new project
5. Assets > Import package > custom packages
6. Browse to where you have saved the extracted file > Unity-Wikitude_1.2.1-1.1.0_2016_03_21_16_40_46 > packages > Wikitude
7. The file should start unpacking itself into Unity. A box should appear outlining all the wikitude elements. Click 'Import'.
8. Close Unity and restart your computer.
9. Open Unity and click on the wikitude folder within the Assets folder
10. To use the Wikitude Unity Plugin with a certain license key, paste your license key into the text field of the WikitudeCamera prefab.


Follow this post for full details: https://www.wikitude.com/external/doc/documentation/5.1/unity/clientrecognitionnative.html

Unity: Importing objects

Import objects from modelling softwares.
supported formats: Sketchup,

Three methods
1. Drag and drop the file into the Project window
2. ‘Import New Asset…’ via Project window’s context menu
3. Click on Assets -> Import New Asset.. from the menu bar

 Refer to this UNITY website for further details: http://docs.unity3d.com/Manual/HOWTO-ImportObjectSketchUp.html

Limitations
GIF textures are not supported
Lines are not imported
2D components (Text, dimensions) are not supported
Dynamic components are not supported
Attributes are not imported into Unity
SketchUp Layers are not imported
SketchUp Shadow settings are not imported
SketchUp Drawing Styles are not imported
SketchUp Section Planes are not imported
SketchUp Animation settings are not imported
Limited SketchUp Scenes data are imported

follow this link for a complete bio of component based thinking within UNITY if your unsure or new to the concept: http://gamedevelopment.tutsplus.com/articles/unity-thinking-with-components--gamedev-12492

Inspiration: CacheTown

For the vivid project, the aim is to create a sort of 'discovery' augmented reality program to be viewed and explored by vivid patrons. The example done by Cachetown is the idea for what our team hopes to accomplish.

Cachetown

http://venturebeat.com/2012/10/02/cachetown-wants-to-bring-mobile-advertising-to-the-third-dimension-with-gamification-augmented-reality/
Check out their video for details of our inspiration.



Video accessed: https://www.youtube.com/watch?v=dHD6Z2eDZ-E 28th/03/2016 time: 5:08pm




Video accessed: https://www.youtube.com/watch?v=Go9rf9GmYpM 29th/03/2016 time 2:30pm

Thursday, 24 March 2016

Technology List: Complete list of software platforms used during the project

A Technology review was necessary to determine what program would be appropriate for the project. The criteria's include a SDK budget between $400-$1000, allow users to view augmented animations/videos via their Android or iOS based smartphones, and be Geo-location based(not symbol stimulated). The program should also be user friendly and allow for development and changes to SDK scripting.

Unity - game engine
Unity provides a range of services to help developers make games and engage, retain and monetize users within a free development platform.
Download
https://unity3d.com/get-unity/download?ref=personal
Gelocation formatting
 https://northrush.wordpress.com/2014/01/13/access-gps-data-on-unity-3d/
Understanding Components
http://gamedevelopment.tutsplus.com/articles/unity-thinking-with-components--gamedev-12492
Augmented Reality Plugin

Wikitude AR location-based cross-platform plugin for Unity
While the wikitude standalone platform for location-based augmented reality an expensive piece of software, they do have a free cross-platform plugin for unity for the augmented reality.
A further blog will appear outlining its installation and implmentation. For now, just read about the product here: http://www.wikitude.com/

App development: Android studio / cross platform: 
http://www.wikitude.com/developer/documentation/unity#_48_INSTANCE_Zk7M2pQVPDDi_=setupguideunity.html

Wednesday, 23 March 2016

Introduction to Augmented Reality

Augmented Reality (AR) is about overlaying pieces of a virtual world over the real world (in contrast to Virtual Reality (VR) that is about replacing the real world with a virtual one). On mobile devices, this simply means enhancing what you can see through the device’s camera with multimedia content (e.g. you can point your camera at a movie poster and watch its trailer, or you can point it at a star in the sky and learn its name).


Image: www.arlab.com accessed 24/03/2016 11:27am

This blog will follow the experimentation of a series of augmented reality programs to create and generate a display a animation/co-choreographed video within the Plotemi VIVID 2016
Time frame 2 months. To be completed by the end of May, tested and accessibly by the public via an app download.
I will trouble shoot with a number of augmented reality programs, compare their applicability and how they capability, the efficiency for cost and user-friendliness.
The main focus will be for the Augmented reality to perform Geolocation. This is taking in a longitude and latitude values as stimulus for the projection, rather than a conventional 'tag' method for displaying imagery.

Check out this video for a great explanation about Augmented Reality if your having further trouble grasping the concepts. https://www.youtube.com/watch?v=ddyUp26qvhw

Abbreviations definitions

Geo Caching: Grabbing the coordinates of a particular place which is unique worldwide and using that location as a proximity meter for projecting Augmented Reality.

POIs: A point of interest,is a specific point location that someone may find useful or interesting.

AR: Augmented Reality, adding virtual projections to an existing world view. 

GL: Geolocation, google maps location based and geolocation are used interchangeably. 

LB: Location Based.

API: API is an interface that allows software programs to interact with each other

SDK: is a set of tools that can be used to develop software applications targeting a specific platform. They often hold a number of API's but not all API's have SDK's.

These terms are used interchnagably throughout this blog.