How to load dataset in Unity fom Vuforia dynamically? - unity3d

I'm building an augmented reality app, so far, for each new marker I had to add to my Vuforia dataset, download it, put it in Unity, create the imagetarget and build the app again. This is very labor intensive, and delay the addition of new markers, because the time between I update it at PlayStore/App Store can take several days.
What I'm trying to do is a way that I can either load all my markers from the cloud (Tried that, with 2 markers some weird bug started happening) or when I open the app, it'll download the dataset with all the markers, create each image so that no matter how many markers I add or remove, all of them will be there at anytime the app is opened.

Use Cloud Recognition Service From Vuforia:
https://library.vuforia.com/articles/Training/Cloud-Recognition-Guide
and here is a tutoria how to use it :
https://www.youtube.com/watch?v=ILVpISTEcx4

Related

How do I create a test app to create many screenshots in UE4?

I'd like to create a test application for my Unreal Engine based game to create screenshots. I'd like to place many (possibly thousands) of cameras throughout the maps and then have my test application enumerate them all and take a screen capture at each camera location.
I came across Taking Screenshots, but wanted to first check to see if this isn't already built into UE4 in the editor, or some tool. I'm also aware of the Screenshot Comparison Tool, but that doesn't seem to be what I need because I don't really want to use UE4 to do the image matching, but instead just want a directory full of images that I can do with what I want.
Any suggestions?
This is not directly what you want to do but I found this article very interesting: https://www.unrealengine.com/en-US/blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4?sessionInvalidated=true
It explains how people at Ninja Theory Ltd proceeded to produce their 360 video trailer which is, in the end, producing two 360 screenshots per frame.
So what they did was having everything exported in a folder (as a sequence of images) and then did what they wanted with it. (In this case put them all together with ffmpeg to make a video)
They used a plugin, I do not know if it can be tweaked not to make 360 captures but the built-in "take screenshot" from UE4 could work for you.
More specifically to what you need, you could probably store all positions/transform in an array, loop over it when you want to make the screenshot. Each step, you place your Camera at the specific position, make sure it is the current active camera to change the "view" and take a screenshot.
Taking screenshots and setting parameters such as export folder, resolution etc. ... can be called via console commands and console commands can be executed from code or blueprint using the "execute console command" node (there is an example in the article).
I hope it helps.
I think the best bet you have is rendering camera to a texture.
this way you can have multiple inactive camera then iterate through them, activate them, capture their screen view and going to the next one.
for basic tutorial have a look at
https://www.youtube.com/watch?v=a9iho861SlY

Unity Google Street View

I am trying to make a street view 360 viewer. Which should work on 2 screens.
One is a monitor and one is a oculus rift.
The first user will be sitting in front of the monitor and selecting street view images from a list / database.
The second user will wear the oculus rift and can see the street view images.
There is a plugin that can download panoramas from street view https://www.assetstore.unity3d.com/en/#!/content/28512 ,
but this will only work in the unity editor.
Well here is the problem. I need to update this programm once in a while. So maybe there will be new images every week, the user should be able to select them. If they start the programm, there will be a screen saying that there is an update available. The programm should than download all new images and after that, they will be available for the users.
So I am wondering if it is possible to download panoramas from street view in runtime? Like there will be a database with all url's to the panoramas, the programm will check that database, download all new one and convert them to skybox oder 6-sided pictures.
Thanks.
I am using unity 5.4 and it should work on a PC
You can download the images using the Google Street View API: https://developers.google.com/maps/documentation/streetview/?hl=en
Example URL:
https://maps.googleapis.com/maps/api/streetview?size=600x300&location=46.414382,10.013988&heading=151.78&pitch=-0.76&key=YOUR_API_KEY
Please not that the images will be 400px * 600px, to get higher resolution you'll have to pay.
You'll have to make a different request for each camera angle (the max allowed FoV is 120, meaning you'll need three images to make the whole horizontal circle).
Honestly, I would do the whole image managing and updating thing server side. I would set up an interface in the browser where you can add new interest spots, then the server downloads the images and creates the cubemaps. The Unity client will just ask the server for a list of all the interesting places and once you chose one it will download the cubemap. Maybe it's because I have a web dev background, but to me it makes more sense than doing everything inside Unity.

Marker not working properly in ARtoolkit in Unity

I am working on a simple AR project using Unity and ARToolkit. For testing purposes, I have created a test project to track the image and create a simple 3d sphere and it is working perfectly when I play it from inside the Unity editor. The problem is that when I create the build .exe of the project, the application does not augment the 3D model of the marker when I put the marker in front of Camera (it should work as it is working when playing from inside the editor). It is also showing two errors as I build the project. Note that I have included the .dll files in the folder where .exe file is located.
Also I see that after building the project, the UID of the marker disappears as well as it is showing perfectly when played from inside the Unity Editor.
Kindly guide me in this matter as I have to submit this project to the university final year project. ThankYou
several things on this:
the disappearing of the marker ID during the build of the APP is normal and does not affect your result
Please check if you have selected the correct scene when building your APP:
Build view
select the "Add open scenes" button and tick the scene(s) you would like to include in your APP.
(It happens quite often that the wrong scene is picked)
Also ensure that you are copying the correct versions of the dlls (32bit vs. 64bit) but if you copied the ones from the [appname]_data/Plugins directory you should be fine.
Let me know if that works for you.

How do I create an AR marker for Vuforia / Unity?

This is a horribly basic question I know (!) but how do I create and import an AR marker into Unity? I know I am meant to do it through the Vuforia Marker Manager page. I have created a Target Database and I have downloaded the database, but how do I get the marker to display in Unity?
Also: what exactly is a Target Database? Is that another name for 'marker'?
To answer your question specifically, yes your Marker is your Target.
So what you need to do is:
Go to License Manager. Add a License Key choosing None as your License plan.
Now go to Target Manager. Create a Database and add the license for it from the drop down.
Add Target, and select from your computer the Image that you want to be the Marker, and upload it.
Once the status of the Target changes to active you can click Download Database and make sure you click For UnityEditor. This downloads a .unitypackage
Now inside Unity, go to Assets>Import New Assets... and locate to the .unitypackage you downloaded
This is how you import your database.
If you haven't Imported the Vuforia package Unity Extension then you
simply need to download it from the Downloads section and Import it
through the Assets>Import Package> Custom Package
Now ideally to work with AR, you would use the AR Camera, which is located in your Assets Bar in Qualcomm Augmented Reality>Prefabs. Drag ARCamera onto your scene.
With the AR Camera selected in the Hierarchy look at the Inspector tab. You'll see Data Set Load Behavior. Under that you SHOULD see the name of the .unitypakage you imported ealier. Check the name as well as make it Active.
Now in Qualcomm Augmented Reality>Prefabs you should also see Image Target. Drag that onto the screen as well.
With the ImageTarget selected in Hierarchy look at the Inspectorthere should be Image Target Behaviour
Fill in as follows
Type: Predefined
Data Set: <Name of imported .unitypackage>
Image Target: <Name of Picture uploaded into the Database>
Now you may work around the Image Target as per your app requirement.
NOTE: In the License Manager, click on the Name of the License and
you'll see a Alpha-numeric code. Copy that code, and within the
Inspector of the AR Camera, under QCAR Behaviour>App License Key
paste the code in. This must be done in order for your app to work on your > device.
Hope this helps you. Please feel free to ask me if anything.
There are a couple things that you need to do before getting this to work.
Firstly, I noticed you mentioned creating a Target Database on the Vuforia website, but have you actually added any markers to it? Markers are the actual AR images that will be scanned. A Target Database is a collection of markers that can be used simultaneously in your Unity application.
Once you have your markers uploaded they should have a 2-4 star rating as shown in the picture
After downloading the database as a UnityPackage you have to import it into Unity along with the Vuforia Unity SDK.
If you are still having trouble getting an example scene running within Unity you can download a sample scene at the previous link.

Screen record in unity3d

How to do screen record in unity?
I want to record my screen(gameplay) during my running game.
That should be play/stop , replay , save that recording on locally from device, open/load from my device (which is already we recorded).
In my game one camera which can capture native camera, and one 3d model.
I wish to record that both and use my functionality whenever i want.
Thank you in advance.
This is hard to implement, but not impossible. Because every frame or interval you need to capture screen shot of your camera view and store it in the list. You need good, (Smaller interval but not much. Because when it becomes smaller, needs more memory) interval value. If your interval is big raplay can be seen laggy.
While you play game your ram becomes full and os will terminate the app. So you need to fully cover memory optimization. Another solution is assets in Unity Asset store.
EZ Replay Manager can be used. (Keep in mind: I haven't tried it yet.)
Free
Pro
Check out this open-source project: https://github.com/getsocial-im/getsocial-capture.
By default our project records Main Camera's rendered content. C# examples are in the repo.
You can record in 2 modes:
Continuous mode - capture last X frames.
Manual mode - capture frames on your own when needed. For example, record a timelapse of the level.
Once the recording is done, you can generate GIF, get raw bytes and do whatever you want. E.g. let your users share that GIF with friends.
Here's the recording of a game session from the test app. The recorded GIF shows up in the end:
Disclaimer: I worked at GetSocial at the time of writing.
well i know a guy who post a similar project on github. link :- https://github.com/thanh-nguyen-kim/Unity_Android_Screen_Recorder
but there is a limitation and that is this code is only works on android devices(android means only android not even on ios).
but this is very powerful recorder and it is capture whatever appear on screen(so basically it is a screen recorder made with unity) and also it will capture your microphone output.give it a try.
and if you find any other solution then please also tell me. because it will very helpful for me.because i want to record video with in-game audio and also save it into gallery
Unity now has a screen recording tool builtin. It's called Recorder and doesn't require any coding.
In Unity, go to the Window menu, then click on Package Manager
By default, Packages might be set to "In Project". Select "Unity
Registry" instead
Type "Recorder" in the search box
Select the Recorder and click Install in the lower right corner of the window
That's about all you need to get everything set up and hopefully the
options make sense. The main thing to be aware of that setting
"Recording Mode" to "Single" will take a single screenshot (with
F10)
NOTE: This is a copy of my answer from a Unity screenshots question