WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   'ActionData' object is not callable error (https://forum.worldviz.com/showthread.php?t=1524)

Enlil 06-09-2008 09:04 AM

'ActionData' object is not callable error
 
Hello,

I am attempting to make a class that manages the actions of a 3d avatar. I am new at python and vizard, so I may be missing something fundamental. Never the less, here is my problem:
I define my class like so if a file called test1.py:
import viz
import vizact

class testclass:
def __init__(self):
self.female = viz.add('vcc_female.cfg')
self.face = viz.add('biohead_talk.vzf')
self.female.setFace(self.face)
self.female.state(14)
self.female.translate(0.3,0.1,1)
self.female.rotate(0,1,0,180)
self.smile = smile = vizact.morph('smile', .5, .1)
def smile():
self.face.add(self.smile)

Then, in a second file, speech_test.py, I write the following:
import viz
import test1

viz.go()

foo2 = testclass()
foo2.smile()

I then get the error
File "", line 11, in ?
File "speech_test2.py", line 18, in ?
foo2.smile()
TypeError: 'ActionData' object is not callable

Can anyone tell me why this is happening and what I need to do to fix it?

Thanks,
Christian

Enlil 06-09-2008 10:23 AM

Oops, the above was unreadable - let me try again (and make a couple of corrections):
test1.py:
mport viz
import vizact

class testclass:
def __init__(self):
self.female = viz.add('vcc_female.cfg')
self.face = viz.add('biohead_talk.vzf')
self.female.setFace(self.face)
self.female.state(14)
self.female.translate(0.3,0.1,1)
self.female.rotate(0,1,0,180)
self.smile = vizact.morph('smile', .5, .1)
def smile(self):
self.face.add(self.smile)
The rest should be ok (I was not passing self to smile, but upon adding self to the def, I still got the same error).

Thanks,
Christian
edit: it flattened everything again, so I used the indent feature this time . . .

farshizzo 06-09-2008 05:03 PM

Please use the [code][/code] tags when posting code samples. It will preserve indentations.

The problem with your code is that you assign the smile action to a variable called smile which will overwrite the smile method. You need to give it a name that does not conflict with the smile method.


All times are GMT -7. The time now is 12:45 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC