WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   heya everybody, just a quick one (https://forum.worldviz.com/showthread.php?t=1565)

fc2008 07-16-2008 06:36 AM

heya everybody, just a quick one
 
Heya, im new to the forum- ive encountered this error message, my code is as follows,

Quote:

if obj == ollie_slider:
NameError: name 'obj' is not defined
iv highlighted where the object is being called below.

:confused: i know i must be missing an object somewhere cant find it though

Thankyou for your help

Code:

####################
###COPYRIGHT 2008 FC###
###################
import viz
import vizinfo
viz.go()

#remove movement of screen wi mouse
viz.mouse(viz.OFF)

info = vizinfo.add( '' )
info.translate( .98, .1 )

info.titlebgcolor(1,0,0)
viz.clearcolor(0.5,0.5,1)

#Add object that vizinfo GUI objects will modify




#=============male or female

male = viz.add('vcc_male.cfg')
female = viz.add('vcc_female.cfg')


#==========morphing face========#

male_morphing_face= male.face('morph_head.vzf')
female_morphing_face = female.face('morph_head.vzf')

#============morphing face end============#

male = info.add(viz.RADIO,0,'Male')
female = info.add(viz.RADIO,0,'Female')

vizact.onbuttondown( male, male.color,viz.BLUE)#Keyboard commands that modify the info box
vizact.onbuttondown( female,female.color,viz.WHITE) #Keyboard commands that modify the info box


#===========male or female end

male.setPosition(0,1,3)
male.setPosition(0,1,3)
female.setAxisAngle(0,1,0, 180)
female.setAxisAngle(0,1,0, 180)

#===============set angles directions of models



#============Initialize info box with some instructions#=================
info = vizinfo.add( 'Set the appearence of your employee' )
info.title( 'Employee Spin' ) #Set title text
info.drag( viz.ON ) #Make the title bar draggable

#Add slider in info box
slider = info.add( viz.SLIDER, 'Spin Speed' )
slider.setScale( 2, 2, 2 )
slider.label.color( viz.RED )


#colours===================
#Add radio buttons
red = info.add( viz.RADIO, 0, 'Red' )
white = info.add( viz.RADIO, 0, 'White' )
blue = info.add( viz.RADIO, 0, 'Blue' )

#Set callbacks for changing  color with radio buttons
vizact.onbuttondown( red, male.color, viz.RED )
vizact.onbuttondown( white, male.color, viz.WHITE )
vizact.onbuttondown( blue, male.color, viz.BLUE )

vizact.onbuttondown( red, female.color, viz.RED )
vizact.onbuttondown( white, female.color, viz.WHITE )
vizact.onbuttondown( blue, female.color, viz.BLUE )
#colors end===================

#====================INFO WINDOW OPTIONS#============
def keyboardEvent( key ):
        if key == 'e':
                info.expand() #Maximize info box
        elif key == 's':
                info.shrink() #Minimize info box
        elif key == 'm':
                info.message( viz.input('Your employee\n\'s name:') ) #Change directions message
        elif key == 't':
                info.title( viz.input('Enter title text:') ) #Change title message

viz.callback( viz.KEYBOARD_EVENT, keyboardEvent )

#======================INFO WINDOW OPTIONS
def sliderEvent( pos ):
        #Make wheelbarrow spin according to slider position 
        male.runAction( vizact.spin(0, -1, 0, 500 * pos) )
        female.runAction( vizact.spin(0, -1, 0, 500 * pos) )
        vizact.onslider( slider, sliderEvent )

#=====================actions of characters - MALE========================#
def mykeyboard(key):

    if key == '1':
        male.state(1)
    elif key == '2':
        male.state(2)
    elif key == '3':
        male.state(3)
    elif key == '4':
        male.state(4)
    elif key == '5':
        male.state(5)
    elif key == '6':
        male.state(6)
    elif key == '7':
        male.state(7)
    elif key == '8':
        male.state(8)   
    elif key == '9':
        male.state(9)   
    elif key == '0':
        male.state(10)
    elif key == 'a':
        male.state(11)       
    elif key == 'b':
        male.state(12)       
    elif key == 'c':
        male.state(13)       
    elif key == 'd':
        male.state(14)
    elif key == 'e':
        male.state(15)
       
viz.callback(viz.KEYBOARD_EVENT,mykeyboard)


#=====================actions of characters - FEMALE========================#

def mykeyboard(key):

    if key == '1':
        female.state(1)
    elif key == '2':
        female.state(2)
    elif key == '3':
        female.state(3)
    elif key == '4':
        female.state(4)
    elif key == '5':
        female.state(5)
    elif key == '6':
        female.state(6)
    elif key == '7':
        female.state(7)
    elif key == '8':
        female.state(8)   
    elif key == '9':
        female.state(9)   
    elif key == '0':
        female.state(10)
    elif key == 'a':
        female.state(11)       
    elif key == 'b':
        female.state(12)       
    elif key == 'c':
        female.state(13)       
    elif key == 'd':
        female.state(14)
    elif key == 'e':
        female.state(15)
       
viz.callback(viz.KEYBOARD_EVENT,mykeyboard)



#------------------adding a slider to change the heads


#add slider for smile

smile_slider = viz.add(viz.SLIDER)
smile_slider.translate(0.25,0.1)

#slider 2 for face more to the world

ollie_slider = viz.add(viz.SLIDER)
ollie_slider.translate(0.75,.1)



#------------------end slider


#---------morph head

#add two differnt face images

first_texture = viz.add('stan.jpg')
second_texture = viz.add('ollie.jpg')


#paste both faces to the head

male_morphing_face.texture(first_texture)
male_morphing_face.texture(second_texture, '',1)

female_morphing_face.texture(first_texture)
female_morphing_face.texture(second_texture, '',1)

#frag program to blend textures

blend = viz.add('multiexblend.fp')
male_morphing_face.apply(blend)
blend.param(0,0) #bledning it
#5
female_morphing_face.apply(blend)
blend.param(0,0) #bledning it

#--------------end morph head




#--------slider function


       
Quote:

       
       
               
       
       

                       

                       
                                #Define the slider function to handle the information
#from the sliders.
def myslider(obj,pos):
  if obj == smile_slider:
    #Morph the face to its first (0) morph target.
  male_morphing_face.morph(0,pos)
  female_morphing_face.morph(0,pos)
if obj == ollie_slider:
    #Blend the fact texture to the second texture.
    blend.param(0,pos)
                       
                       

               

    #Morph the face to its second (1) morph target.
male_morphing_face.morph(1,pos)
female_morphing_face.morph(1,pos)
     
viz.callback(viz.SLIDER_EVENT,myslider)




##INFOBOX

smile_box = vizinfo.add( 'This tutorial demonstrates the use of the vizinfo module.' )
smile_box.translate( .40, .1 )

#Initialize info box with some instructions
smile_box = vizinfo.add( 'Check out the smile' )
smile_box.title( 'Smile' ) #Set title text
smile_box.drag( viz.ON ) #Make the title bar draggable


farshizzo 07-16-2008 03:31 PM

The quotes you put around the highlightes section of code caused it to lose all formatting. You need to repost that section without putting it inside the quotes tag.

fc2008 07-16-2008 04:29 PM

Cool, iv added it below, regards
 
Code:

import viz
import vizinfo
viz.go()

#remove movement of screen wi mouse
viz.mouse(viz.OFF)

info = vizinfo.add( '' )
info.translate( .98, .1 )

info.titlebgcolor(1,0,0)
viz.clearcolor(0.5,0.5,1)

#Add object that vizinfo GUI objects will modify




#=============male or female

male = viz.add('vcc_male.cfg')
female = viz.add('vcc_female.cfg')


#==========morphing face========#

male_morphing_face= male.face('morph_head.vzf')
female_morphing_face = female.face('morph_head.vzf')

#============morphing face end============#

male = info.add(viz.RADIO,0,'Male')
female = info.add(viz.RADIO,0,'Female')

vizact.onbuttondown( male, male.color,viz.BLUE)#Keyboard commands that modify the info box
vizact.onbuttondown( female,female.color,viz.WHITE) #Keyboard commands that modify the info box


#===========male or female end

male.setPosition(0,1,3)
male.setPosition(0,1,3)
female.setAxisAngle(0,1,0, 180)
female.setAxisAngle(0,1,0, 180)

#===============set angles directions of models



#============Initialize info box with some instructions#=================
info = vizinfo.add( 'Set the appearence of your employee' )
info.title( 'Employee Spin' ) #Set title text
info.drag( viz.ON ) #Make the title bar draggable

#Add slider in info box
slider = info.add( viz.SLIDER, 'Spin Speed' )
slider.setScale( 2, 2, 2 )
slider.label.color( viz.RED )


#colours===================
#Add radio buttons
red = info.add( viz.RADIO, 0, 'Red' )
white = info.add( viz.RADIO, 0, 'White' )
blue = info.add( viz.RADIO, 0, 'Blue' )

#Set callbacks for changing  color with radio buttons
vizact.onbuttondown( red, male.color, viz.RED )
vizact.onbuttondown( white, male.color, viz.WHITE )
vizact.onbuttondown( blue, male.color, viz.BLUE )

vizact.onbuttondown( red, female.color, viz.RED )
vizact.onbuttondown( white, female.color, viz.WHITE )
vizact.onbuttondown( blue, female.color, viz.BLUE )
#colors end===================

#====================INFO WINDOW OPTIONS#============
def keyboardEvent( key ):
        if key == 'e':
                info.expand() #Maximize info box
        elif key == 's':
                info.shrink() #Minimize info box
        elif key == 'm':
                info.message( viz.input('Your employee\n\'s name:') ) #Change directions message
        elif key == 't':
                info.title( viz.input('Enter title text:') ) #Change title message

viz.callback( viz.KEYBOARD_EVENT, keyboardEvent )

#======================INFO WINDOW OPTIONS
def sliderEvent( pos ):
        #Make wheelbarrow spin according to slider position 
        male.runAction( vizact.spin(0, -1, 0, 500 * pos) )
        female.runAction( vizact.spin(0, -1, 0, 500 * pos) )
        vizact.onslider( slider, sliderEvent )

#=====================actions of characters - MALE========================#
def mykeyboard(key):

    if key == '1':
        male.state(1)
    elif key == '2':
        male.state(2)
    elif key == '3':
        male.state(3)
    elif key == '4':
        male.state(4)
    elif key == '5':
        male.state(5)
    elif key == '6':
        male.state(6)
    elif key == '7':
        male.state(7)
    elif key == '8':
        male.state(8)   
    elif key == '9':
        male.state(9)   
    elif key == '0':
        male.state(10)
    elif key == 'a':
        male.state(11)       
    elif key == 'b':
        male.state(12)       
    elif key == 'c':
        male.state(13)       
    elif key == 'd':
        male.state(14)
    elif key == 'e':
        male.state(15)
       
viz.callback(viz.KEYBOARD_EVENT,mykeyboard)


#=====================actions of characters - FEMALE========================#

def mykeyboard(key):

    if key == '1':
        female.state(1)
    elif key == '2':
        female.state(2)
    elif key == '3':
        female.state(3)
    elif key == '4':
        female.state(4)
    elif key == '5':
        female.state(5)
    elif key == '6':
        female.state(6)
    elif key == '7':
        female.state(7)
    elif key == '8':
        female.state(8)   
    elif key == '9':
        female.state(9)   
    elif key == '0':
        female.state(10)
    elif key == 'a':
        female.state(11)       
    elif key == 'b':
        female.state(12)       
    elif key == 'c':
        female.state(13)       
    elif key == 'd':
        female.state(14)
    elif key == 'e':
        female.state(15)
       
viz.callback(viz.KEYBOARD_EVENT,mykeyboard)



#------------------adding a slider to change the heads


#add slider for smile

smile_slider = viz.add(viz.SLIDER)
smile_slider.translate(0.25,0.1)

#slider 2 for face more to the world

ollie_slider = viz.add(viz.SLIDER)
ollie_slider.translate(0.75,.1)



#------------------end slider


#---------morph head

#add two differnt face images

first_texture = viz.add('stan.jpg')
second_texture = viz.add('ollie.jpg')


#paste both faces to the head

male_morphing_face.texture(first_texture)
male_morphing_face.texture(second_texture, '',1)

female_morphing_face.texture(first_texture)
female_morphing_face.texture(second_texture, '',1)

#frag program to blend textures

blend = viz.add('multiexblend.fp')
male_morphing_face.apply(blend)
blend.param(0,0) #bledning it
#5
female_morphing_face.apply(blend)
blend.param(0,0) #bledning it

#--------------end morph head




#--------slider function

#Define the slider function to handle the information
#from the sliders.
def myslider(obj,pos):
  if obj == smile_slider:
    #Morph the face to its first (0) morph target.
  male_morphing_face.morph(0,pos)
  female_morphing_face.morph(0,pos)
if obj == ollie_slider:
    #Blend the fact texture to the second texture.
    blend.param(0,pos)

    #Morph the face to its second (1) morph target.
male_morphing_face.morph(1,pos)
female_morphing_face.morph(1,pos)
     
viz.callback(viz.SLIDER_EVENT,myslider)




##INFOBOX

smile_box = vizinfo.add( 'This tutorial demonstrates the use of the vizinfo module.' )
smile_box.translate( .40, .1 )

#Initialize info box with some instructions
smile_box = vizinfo.add( 'Check out the smile' )
smile_box.title( 'Smile' ) #Set title text
smile_box.drag( viz.ON ) #Make the title bar draggable


farshizzo 07-16-2008 05:33 PM

Thanks, that's much better now. The problem is that the if block starting on the line if obj == ollie_slider: is not indented properly. You need to indent that block of code so that it is part of the myslider function. Otherwise, that code is part of the global scope, which does not contain an obj variable, hence the error.

fc2008 07-17-2008 04:52 AM

thankyou
 
thanks a lot, its always the simple ones that catch me out!


All times are GMT -7. The time now is 07:16 AM.

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