Model Viewer
The Model Viewer lets you place 3D models into a folder and quickly view them
Either create a new folder in the "collections" folder in the model viewer and add your models there, or add it to an existing collection. You can simply drag and drop the model into a collection and now it is ready to be viewed in VR. The script is set up by default for "collection1" to be swapping the environment, and "collection2" to swap a model in the environment.
For viewing a series of models in a Multi-User session you can either use the Model Viewer (choose Change_Models_Server.py and Change_Models_Client.py, then run as you would normally, or you can use the SwappingModels_server.py and SwappingModels_client.py. For the SwappingModels scripts you just place the path to which models you want to use in the list at the top of the server and client script:
modelFiles = ['utils/resources/environment/DeckersOffice.OSGB','utils/resources/environment/Stimulus.osgb']
For the Model Viewer collections method, see below. For both cases you can use the 'v' key (which can be modified) to cycle between models, or have them change on a modifiable timer (in the mediaConfig file in the same folder.
To view the model collection, run ModelViewer.py, choose your hardware and choose the collection you want to view
Press either the 'v' key (this can be configured to be a different button or event in the mediaConfig.py file) , use the optional scene controller tool by grabbing the tool with your controller trigger or left mouse button and clicking on the button that says "Next Model", or have the models change on a timer by setting Timer=True in the mediaConfig.py file and choosing how many seconds to have it model play after TimerValue = .
Navigation and Interactivity
See this page for navigation and button mappings
Grabbing Objects and Adding as Objects of Interest for View Count and Fixation Duration Information
To grab objects and add them as objects of interest you can just put the name of the environment you want into the "environ_dict "dictionary in the mediaConfig.py file followed by the name of the object
Example:
environ_dict = {'lab_empty.osgb':['basketball1'],'ShowRoom_empty.osgb':['basketball']}
Note: If using this dictionary it is necessary that any models have a tranform node added above the group node in Inspector (see screenshot)
#MediaViewer Settings
swapMediaKey = 'v' #Choose which key will advance the media, if not using a timer
mediaFolderPath = 'mediaPath'
collectionsPath = 'collections'
#collectionsPath = 'utils/resources/'
#mediaFolderPath = 'C:/Users/sepsi/Documents/WorldViz Work/Sightlab_Multi_User_SVN/trunk/Sightlab_Multi_User_1/ExampleScripts/360 Multiple Videos/mediaPath'
BIOPAC_ON = False
videoRecording = 0 #Choose whether to record a video, videos are saves in the utils/recordings folder
Timer =False #Choose whether to advance the videos on a timer or a keypress. Set to true for the timer
TimerValue = 5 #Choose how many seconds to run the timer
cycleMedia = True
startExperimentKey = ' ' #choose which key will start the experiment
endExperimentKey = ' ' #choose which key will end the experiment
randomize = False
environments = ['']
grabbableObjects = ['']
environ_dict = {'lab_empty.osgb':['basketball1']
,'ShowRoom_empty.osgb':['basketball'],'chair.osgb':['chair'],'crate.osgb':['crate_group'],'guitar.osgb':['guitar_group']}
Controls for running in a Projection VR system with PPT wand:
Use the middle button to cycle between models/environments
Trigger to interact and pick up objects