#1
|
|||
|
|||
Adding a lot of Avatars
Hello,
How to add many avatars at once? If we try to add 100 different avatars, do we need to use 'addAvatar()' for each avatar? Thanks |
#2
|
|||
|
|||
You can note it all down in a list and iterate through it. Here's a sample script for it.
import viz viz.clearcolor(viz.SKYBLUE) avatar_files = ['vcc_male.cfg', 'vcc_female.cfg', 'vcc_male2.cfg'] avatars = [] position = 0 for i in avatar_files: new = viz.addAvatar(i, pos = (position*2, 0, 4), euler=(180,0,0)) avatars.append(new) position += 1 viz.go() |
#3
|
|||
|
|||
Hi Sado,
How about animations for each avatar? If animation is added by 'state()', do every avatars have different animations? I tried to make 2avatars x 15 animations list, and show them in random order as program below. But the same avatar with same animation is shown. Code:
avatar_files = ['vcc_male.cfg', 'vcc_female.cfg']#2avatars animation = range(1,16)#default 15 animations #make 30 stimuli list (2avatars x 15animations), and shuffule 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) random.shuffle(stimulus) def experiment(): yield viztask.waitKeyDown(viz.KEY_RETURN) for trial in stimulus: yield viztask.waitTime(1) avatarAnim.visible(viz.ON) yield viztask.waitKeyDown(viz.KEY_RETURN) avatarAnim.visible(viz.OFF) viztask.schedule(experiment()) |
#4
|
|||
|
|||
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()) |
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
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 08:48 AM |
Randomly and Continuously Change Avatar's Face Texture | Karla | Vizard | 4 | 08-22-2008 01:14 PM |
avatars | dig | Vizard | 4 | 09-20-2007 04:29 PM |
adding heads to custom avatars | vAlexia | Vizard | 5 | 02-13-2007 12:14 PM |
Avatars in an array and link/unlink | betancourtb82 | Vizard | 7 | 09-05-2006 05:06 PM |