FAQ
Installation and Requirements
Q: What are 3DVIA Studio minimum requirements?
Hardware
- Dual Core Processor
- 1 GB of RAM, 2 GB recommended
- 400 MB of Disk Space on the OS drive
- Recent 3D graphics card capable of handling Shader Model 2.0
You should ensure you have the latest official drivers for your graphics card.
Software
- Microsoft Windows (XP, Vista or Windows 7) – 32 bits & 64 bits
- Microsoft DirectX 9 (August 2008) or later for DirectX compatible 3D graphic accelerator cards
NB: An Internet connection is required to use www.3dvia.com models.
User Interface
Q: How does 3DVIA Studio handle 3D-space orientation?
A: 3DVIA Studio uses a left-handed coordinate system. In the world referential, the Direction (Z axis) is represented by a blue vector, the Up (Y axis) by a green one and the third one (X axis) is colored in red.
Q: When I open or create a new project, some toolbars and/or windows are missing: how can I retrieve them?
A: 3DVIA Studio tends to remember your custom configuration and it can become a little bit messy when you go from one project to another. You can use the Revert to Default Configuration button, available from the File menu, to reset the UI configuration: next time you launch 3DVIA Studio, your panels, toolbars and windows will be at their default configuration. Alternatively, you can use the Toolbars > Reopen All Standard Toolbars command in the Views menu and/or the Reopen All Standard Global Views command also in the Views menu.
Q: I can’t edit the Parent parameter of a vkNode3D in the Property View, why?
A: The concept of sub-actor should be preferred over that of parent. You will only be able to edit the parent property at runtime, using the function vkNode3D::SetParent().
Assets
Q: I imported a model which I can see in the Project Editor but not in the 3D View, what’s happening?
A: When a model is imported, it can happen that it’s not properly displayed in the 3D View either because your camera is too far from/too close to the model or because your model is too big/small compared to the other elements of your scene. To overcome this issue,
- Use E and Z keys to center and show the extents of your model in the 3D View
- Set the Near and Far clips of the currently active camera to avoid occlusion
- Use the LocalScale property, available from the Property View, to adjust the scale of your model to the rest of your 3D scene.
Q: I try to download a resource (texture) from the web using a function, but it doesn’t seem to work properly, whereas everything is ok if I use a task. Is there a reason for that?
A: Some BuildingBlocks (like HTTPTextRequest orStreamAsset) need several frames to fulfill the action they’re supposed to do. These can’t be used in functions, because a function is called and returns its result between two frame renders, that’s why you have to use these BuildingBlocks over several frames in Behavior Tasks.
Q: I’ m trying to load a texture from my system at runtime using the texture’ s file path but it doesn’ t seem to work. Is there a specific way to “browse” files from 3DVIA Studio at runtime?
A: You can use the following pattern: file:///path_of_the_file.extension_of_the_file.
Q: How can I import sound or video in my Project?
A: The simplest way to import a sound file is to drag and drop it in your project, as you would do for any resource. To import video, use the video templates available from the Libraries > Presets > Video section.
Rendering
Q: How can I enable anti-aliasing?
A: In the File > Preferences > Engine > Render section, you’ll find the option multiSampleCount which corresponds to the Anti-aliasing value.
Q: How can I enable wireframe mode?
A: As for the antialiasing setting, you’ll find this option using File > Preferences > Engine > Render and then force Wireframe
Q: How can I set the anti-aliasing value of a given project?
A: This preference can be set up fr0m the Project Editor > Options: select the Render option and proceed to edit the render preferences from the Property View; scroll down the Property View and edit the multi Sample Count parameter, which corresponds to the anti-aliasing value.

Behaviors
Q: What is the difference between a task and a function?
A: A Task is an element capable of executing code involving the notion of activity, while a Function is an element capable of executing code that, as opposed to a behavior Task, cannot be interrupted during its computation.
Behavior Tasks can be activated, run by default, paused or stopped, and can access and modify Members of the owner Behavior. Behavior Functions are elements capable of executing code that, as opposed to a behavior Task, cannot be interrupted during their computation. Functions add methods to objects, called either automatically (when a triggering event occurs) or manually (through another Task or Function), and executed without implying any notion of duration.
For a complete explanation, check this related reference entry.
Q: What’s the difference between assigning a member value at a Template level or at an Actor level?
A: In the Behavior Editor, you assign values to template members: these values will be the default values used by ALL the template instances (actors). In the Property View, you assign values to actors individually without affecting the values of other instances created from the same template.
Q: How can I create a dynamic actor at runtime?
A: The best way to create dynamic actors in your experience is to use the Building Block Create Dynamic Actor or the corresponding function in VSL. Visit the Create Dynamic Actor BB documentation for more information.
In some cases, you will prefer to use the CreateInstance method available for standard types likes vkNode3D. Once the instance is created, you should either parent it or aggregate it to an existing actor so that the instance is properly deallocated when needed. Here is a sample code using the CreateInstance method within a behavior function:
vkActorPtr actor = this;
vkNode3DPtr node = vkNode3D::CreateInstance();
// You can add this node as an actor component
// … but recall: an actor can only have one component of a given type in its component ring
actor.AddComponent(node);
// Alternatively you can set the node as the child of a particular actor
// … and recall: an actor can have many different children nodes!
node.SetParent(actor);
Q: I’m trying to create a dynamic actor when the user performs a specific action, but I’ m missing the step to get the template I want to instantiate.
A: To create a dynamic actor using a behavior,
- Add a behavior member of type vkTemplatePtr, intended to hold the template you want to instantiate
- Use this member as the input parameter for the Create Dynamic Actor Building Block
- To destroy this dynamic actor, use the Destroy Dynamic Actor BuildingBlock or the following VSL code:
myDynamicActor.GetTemplate().GetAsset().Destroy();
GetStage().DestroyDynamicActor(myDynamicActor);
Q: How should I remove components on an actor?
A: Simply use the RemoveComponent method available from the vkActor standard type, in VSL or in Schematic.
Be careful: if the component you want to remove is a behavior, RemoveComponent should not be called within one of its own tasks or functions. You can use another behavior to do so.
Q: How can I debug my experiences?
A: You can debug your experiences from the 3DVIA Studio application using the debug utilities. To find out more, visit the following sections.
Q: How do I work with events (broadcast, sendevent)?
A: This is a huge topic, that’s why we have written a comprehensive Article.
Q: How can I create enum and global events?
A: You can’t create a global event since the user is not able to create an inherent class if the parent class is not POD. Regarding enumerations, you can use VSL scripts.
Q: I’ve seen a “Targets” entry both in VSL and Schemtic tasks. What do I use Targets for?
A: A complete explanation is available regarding Targets in this reference entry.
Q: In order to quickly create a behavior I usually use the Right-click on an actor > New > Behavior method but my resulting behavior is not in the Project Library. Where can I find it?
A: All imported, created, instantiated and, in general, used Resources can be found in the Resource Explorer. Check the Behaviors category for your behavior in particular.
Q: I’d like to get the mouse cursor viewport position using a VSL task. The functions I have found so far seem to deal with the position in the whole screen only. Is there an easy way to get this information?
A: There are several ways to retrieve the position of the cursor:
- In Schematic, the MouseWaiter Building Block will allow you to retrieve the position of the cursor within the viewport;
- In VSL, use the following code to get the position inside the screen:
vkIODeviceManager& ioman = vkIODeviceManager::Instance();
vkMousePtr mouse = ioman.Mouse();
vkVec2 position = mouse.GetCursorPosition();
Building Blocks and Schematic
(Building Blocks are sometimes written BB for short)
Q: How can I cast my variables in the Schematic?
A: You can use the GetComponentInRing Building Block, see more information here.
Q: Sometimes I can’ t remember the name of the BB or function I want to use in the Schematic. Is there a way to retrieve available BBs/functions for a specific type?
A: In the Schematic Editor, do Ctrl+Shift+K+DoubleClick and enter the type of the item you want to use as the target of your BB/function caller: all the available functions for this type will be listed.
Another way is to search for a specific vkType in the Type Library, which is displayed by default at the upper left-hand corner of the Behavior Workset: use Ctrl+F to search amongst your own behavior types or amongst 3DVIA Studio types.
As a reminder, if you simply want to find a Building Block using auto completion, do Ctrl+Shift+DoubleClick in the Schematic Editor.
Q: I was wondering if I could pass a value to the sub-member of a BB input parameter: for example, use a float value to modify the y component of an input vector, instead of inputing the whole vector value.
A: You can expose the sub-members of BBs input (and output) parameters like you can expose sub-members of Schematic tasks/functions members: select the BB and then select the Pin/Pout tab in the export drawer; expand an input/output parameter to access its sub-members; use the “Exp” check box to expose/hide sub-members.
Stages
Q: What do dynamic stages deal with?
A: Dynamic stages will allow you to prepare parts of your experience that need to be loaded and unloaded at runtime. For more information such as loading mechanisms and memory states, visit the user reference here.
Publication and Runtime
Q: When playing an experience I just published, the point of view is sometimes different from the one I set in 3DVIA Studio Authoring, why?
A: Your Authoring Camera was probably active when you chose the starting point of view. When authoring, you must pay attention when selecting the active camera. Choose the Main Camera instead since this is the camera used by default by the 3DVIA Player.
Q: My experience does not play correctly in the 3DVIA Player, what should I do?
A: 3DVIA Studio is a wide purpose development environment for interactive 3D applications. With its advanced behavioral engine, it is inevitably possible to write buggy behaviors or behaviors that won’t give the expected results in certain conditions. Be sure you test and debug your experience in 3DVIA Studio before you publish it to 3DVIA.com!
In addition to debugging, you may also want to check the event console to see if warnings or exceptions are thrown during the execution of your experience. Indeed it is possible that an exception leads to a crash after it has been launched.
Miscellaneous
Q: Is there a way to format text within vkText2D actors?
A: You can use the Property View to set general vkText2D text options. You can also use tags to affect part of the text only (the text within tags). Available tags and their different effects are:
- <color r=xxx g=yyy b=zzz a=ttt>…</color>: change text color;
- <i>…</i>: italic text;
- <b>…</b>: bold text;
- <r>…</r>: reverse text;
- <s>…</s>: strike through text;
- <u>…</u>: underline text;
Here is an example: “This is a generally configured string and <i><color r=255 g=0 b=0 a=255>this is a partly configured string</color></i>”
