The Model Viewer lets you place 3D models, Videos, Audio and Images into a folder and quickly view them. This can also be set up using the GUI
Create a new folder in the "collections" folder in the model viewer and add your models there, along with folders for "Videos", "Audio" and "Images". You can simply drag and drop the model into a collection and now it is ready to be viewed in VR.
Scene Controls
Move forward to next scene - v or "Y" button on LH controller
Move backward to last scene - c or "X" button on LH controller
Use highlighter tool (instructor) - RH or LH grip button or Right mouse button
Toggle Playback of Media (set to Auto play) - "1" key or LH thumbstick button down
Close Scene - "q" key or escape
Reset position - "r" key
Grab objects - Left mouse button or controller triggers
Can also use optional 3D menu for these actions
Toggle 'm' or press RH thumbstick to see menu
Movement
Desktop
WASD/Arrow keys: Movement.
X/Z: Vertical movement.
Q/E: Rotation.
/: Capture screen shot
HMD
Arc Teleport - RH thumbstick
Magic Carpet - LH thumbstick while holding down RH B key to move forward/ backward/ side to side,
LH thumbstick while holding down A key to move up/down
To view the model collection, run ModelViewer.py, choose your hardware and choose the collection you want to view
Press either the 'v' and 'c' keys, the X and Y LH controller buttons (these can be configured to be different buttons 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 = .
Grabbing Objects and Adding as Objects of Interest
To grab objects and add them as objects of interest you can add the word "_tag" after an object when setting up your scene in Inspector. Note: the older method of using a dictionary can still be used as well (see below).
Additionally if you add the TV_Stand Object you can have a video play for each scene if you place it in a folder called "Videos" and title it the same name as the environment model (i.e. LectureHall.osgb model name and LectureHall.mp4 video)
The same goes for images in an "Images" folder, audio in an "Audio" folder
If you end the name of your environment and video with "_Large" it will play the video on a large, IMAX style screen (which can be stereo or monoscopic).
#MediaViewer SettingsAUTO_PLAY_VIDEOS=TrueLARGE_VIDEO_TYPE='Stereo'STEREO_VIDEO_FORMAT='Left_Right'THREE_SIXTY_VIDEO_TYPE='Stereo'swapMediaKey='v'#Choose which key will advance the media, if not using a timerbackMediaKey='c'mediaFolderPath='mediaPath'collectionsPath='collections'BIOPAC_ON=FalsevideoRecording=0#Choose whether to record a video, videos are saves in the recordings folderTimer=False#Choose whether to advance the videos on a timer or a keypress. Set to true for the timerTimerValue=5#Choose how many seconds to run the timercycleMedia=TruestartExperimentKey=' '#choose which key will start the experimentendExperimentKey='q'#choose which key will end the experimentrandomize=FalseSTARTING_POSITION=[0,1.8,0]
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
Multi User
The Model Viewer will also work for Multiple Users (see MultiUserExampleScripts-Model and Media Viewer). Run the server, choose the collection, then run the Instructor script to have a user that can guide other clients through the session.
Older Method of Setting Objects for Grabbing
Older method for tagging objects using a dictionary, add this code to the mediaConfig file with the name of the environment and the name of the child objects
# Environment Settingsenvironments=['']# List of environment files.grabbableObjects=['']# List of objects in the environment for grab or view interactions.environ_dict={'lab_empty.osgb':['basketball1'],'ShowRoom_empty.osgb':['basketball']}# Mapping of environments to their associated objects.