![]() |
|
|
|
#1
|
|||
|
|||
|
Hi Roy,
There was just a bug in your code. You were setting "avatarAnim" to visible off and on states in your experiment function instead of using "trial" which would iterate between your shuffled states. Code:
import viz
import random
import viztask
avatar_files = ['vcc_male.cfg', 'vcc_female.cfg']#2avatars
animation = range(0,16) #default 15 animations
viz.go()
piazza = viz.addChild('piazza.osgb')
#make 30 stimuli list (2 avatars x 15 animations), and shuffle the order
stimulus = []
for i in avatar_files:
for j in animation:
avatarAnim = viz.addAvatar(i, pos=(0,0,0), euler=(180,0,0))
avatarAnim.state(j)
avatarAnim.visible(viz.OFF)
stimulus.append(avatarAnim)
print(stimulus)
random.shuffle(stimulus)
print(stimulus)
def experiment():
yield viztask.waitKeyDown(viz.KEY_RETURN)
for trial in stimulus:
yield viztask.waitTime(1)
trial.visible(viz.ON)
yield viztask.waitKeyDown(viz.KEY_RETURN)
trial.visible(viz.OFF)
viztask.schedule(experiment())
|
|
#2
|
|||
|
|||
|
Hi kennethkarthik,
Thank you, it works! But I'm wondering any other way to add avatars. In this program, 2 avatars are loaded 15 times, causing long time to run the program. Any ideas? Thanks |
|
#3
|
|||
|
|||
|
Hey Roy,
Vizard does it's optimisation when it reuses objects. However if you do want to improve load time, I would suggest just changing the state of your characters on the same avatar instead of adding a new one for each animation state. Check out the code below Code:
import viz
import random
import viztask
avatar_files = ['vcc_male.cfg', 'vcc_female.cfg']#2avatars
animation = range(0,16) #default 15 animations
viz.go()
piazza = viz.addChild('piazza.osgb')
#make 30 stimuli list (2 avatars x 15 animations), and shuffle the order
avatars = []
for i in avatar_files:
avatarAnim = viz.addAvatar(i, pos=(0,0,0), euler=(180,0,0))
avatarAnim.visible(viz.OFF)
avatars.append(avatarAnim)
def experiment():
yield viztask.waitKeyDown(viz.KEY_RETURN)
for i in avatars:
i.visible(viz.ON)
for state in animation:
yield viztask.waitTime(0.5)
i.state(state)
yield viztask.waitKeyDown(viz.KEY_RETURN)
i.visible(viz.OFF)
viztask.schedule(experiment())
|
![]() |
| Tags |
| avatars, avatars animation |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Regarding the visibility of avatars | SivaKartheek | Vizard | 2 | 01-13-2016 07:48 AM |
| Randomly and Continuously Change Avatar's Face Texture | Karla | Vizard | 4 | 08-22-2008 12:14 PM |
| avatars | dig | Vizard | 4 | 09-20-2007 03:29 PM |
| adding heads to custom avatars | vAlexia | Vizard | 5 | 02-13-2007 11:14 AM |
| Avatars in an array and link/unlink | betancourtb82 | Vizard | 7 | 09-05-2006 04:06 PM |