XSIforum.com

PPG y botones malditos

0 Usuarios y 1 Visitante están viendo este tema.

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
PPG y botones malditos
« en: 18 Septiembre 2009, 12:31:34 »
Hola majos,

Estoy haciendo un PPG para controlar un rigg de unos cochecicos to majos y entre otras cosas necesito unos botoncicos que reseteen los valores de los controladores que tengo en el PPG, todo funciona way menos los botoncicos y no se por q.

Os pego parte del código, la parte que define los botones y sus funciones para q veáis como esta el tema
Código: [Seleccionar]
'Definición de parámetros
function Car_Control_Define( in_ctxt )
dim oCustomProperty
set oCustomProperty = in_ctxt.Source
oCustomProperty.AddParameter2 "Suspension_General",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Volante",siDouble,0,-180,180,-180,180,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Suspension_TD",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Suspension_TI",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Suspension_DD",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Suspension_DI",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Acelerador",siDouble,0,0,10,0,2,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Volcar_X",siDouble,0,-0.52,0.52,-0.52,0.52,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Volcar_Y",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Deformador_Ruedas_X",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Deformador_Ruedas_Y",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Tumbar_X",siDouble,0,-0.52,0.52,-0.52,0.52,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Tumbar_Y",siDouble,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Subdivision",siInt4,1,0,4,0,4,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Path_Age",siDouble,0,0,100,0,100,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Path",siBool,false,false,true,false,true,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Path_Tangency",siBool,false,false,true,false,true,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Gamma_A",siFloat,1,0,5,0,5,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Contrast_A",siFloat,0.5,0,1,0,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Hue_A",siFloat,0,-360,360,-360,360,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Saturation_A",siFloat,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Level_A",siFloat,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Gamma_B",siFloat,1,0,5,0,5,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Contrast_B",siFloat,0.5,0,1,0,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Hue_B",siFloat,0,-360,360,-360,360,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Saturation_B",siFloat,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Level_B",siFloat,0,-1,1,-1,1,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Faros",siBool,false,false,true,false,true,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Luces_traseras",siBool,false,false,true,false,true,siClassifUnknown,siPersistable OR siAnimatable
oCustomProperty.AddParameter2 "Sombra_Coche",siBool,false,false,true,false,true,siClassifUnknown,siPersistable OR siAnimatable
Car_Control_Define = true
end function

'Definicion del PPG

function Car_Control_DefineLayout( in_ctxt )
dim oLayout,oItem
set oLayout = in_ctxt.Source
oLayout.Clear
' ...
oLayout.AddTab "Utilidades"
oLayout.AddGroup "Resets"
oLayout.AddButton "ResetMotion", "Motion"
oLayout.AddButton "ResetColor", "Color"
oLayout.AddButton "ResetLS", "Luces_y_Sombras"
oLayout.AddButton "ResetAll", "All"
oLayout.EndGroup
Car_Control_DefineLayout = true
end function

'Funciones de los botones

function ResetMotion_OnClicked ()
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_TD", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_TI", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_DD", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_DI", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_General", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volante", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Acelerador", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volcar_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volcar_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Tumbar_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Tumbar_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Deformador_Ruedas_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Deformador_Ruedas_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Subdivision", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path_Age", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path_Tangency", False
end function

function ResetColor_OnClicked ( )
SetValue "Generic_Rigging.Path_Linker.Car_Control.Gamma_A", 1
SetValue "Generic_Rigging.Path_Linker.Car_Control.Contrast_A", 0.5
SetValue "Generic_Rigging.Path_Linker.Car_Control.Hue_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Saturation_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Level_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Gamma_B", 1
SetValue "Generic_Rigging.Path_Linker.Car_Control.Contrast_B", 0.5
SetValue "Generic_Rigging.Path_Linker.Car_Control.Hue_B", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Saturation_B", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Level_B", 0
end function

function ResetLS_OnClicked ( )
SetValue "Generic_Rigging.Path_Linker.Car_Control.Faros", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Luces_Traseras", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Sombra_Coche", False
end function

function ResetAll_OnClicked ( )
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_TD", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_TI", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_DD", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_DI", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Suspension_General", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volante", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Acelerador", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volcar_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Volcar_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Tumbar_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Tumbar_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Deformador_Ruedas_X", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Deformador_Ruedas_Y", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Subdivision", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path_Age", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Path_Tangency", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Gamma_A", 1
SetValue "Generic_Rigging.Path_Linker.Car_Control.Contrast_A", 0.5
SetValue "Generic_Rigging.Path_Linker.Car_Control.Hue_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Saturation_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Level_A", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Gamma_B", 1
SetValue "Generic_Rigging.Path_Linker.Car_Control.Contrast_B", 0.5
SetValue "Generic_Rigging.Path_Linker.Car_Control.Hue_B", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Saturation_B", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Level_B", 0
SetValue "Generic_Rigging.Path_Linker.Car_Control.Faros", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Luces_Traseras", False
SetValue "Generic_Rigging.Path_Linker.Car_Control.Sombra_Coche", False
end function
Lo he probado con Subfunciones como pone en el SDK y tampoco funcionan solo se me ocurre sacar el script para resetear a un archivo aparte y llamarlo con un ExecuteScript pero tampoco se si funcionara y ya llevo 4 días con 4 botones.
A ver si alguien me ilumina :)
Gracias

Re: PPG y botones malditos
« Respuesta #1 en: 18 Septiembre 2009, 13:56:56 »
Donde falla exactamente? en el script del boton o en la asociación de los botones con sus eventos?

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
Re: PPG y botones malditos
« Respuesta #2 en: 18 Septiembre 2009, 15:23:10 »
Pues, no sale en el log absolutamente nada, creo q simplemente no hace nada. Es decir, pinchas el botón y no lee la función y de hacerlo no la ejecuta, además como no da error no lo loguea.

Re: PPG y botones malditos
« Respuesta #3 en: 18 Septiembre 2009, 16:35:20 »
Lo primero que tienes que hacer es establecer donde está el problema, deja logs en la lógica de los botones para saber hasta donde se ejecutan (si es que se ejecutan) y en base a eso puedes hacerte una mejor idea de como enfrentar el problema, lo primero es identificar si está pillando el callback y en que linea falla.

De paso prueba cambiar la forma de acceder al propio CP a algo como "PPG.Inspected(0)" ;)

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
Re: PPG y botones malditos
« Respuesta #4 en: 19 Septiembre 2009, 18:40:01 »
mmmmmmmm....
si defino algo así como:

oLayout.Logic = "sub un_boton_OnCliked" & vbCrlf & "PPG.Cosa.Value = Valor" & vbCrlf & "end sub"

funciona, el tema es q menuda mierda meter todos los valores a cambiar del PPG en un puñetera linea! Ademas solo funciona con un botón ya q la lógica es para el Layout no para el botón. el botón no acepta esa propiedad o eso dice el XSI cuando lo intentas.
Con lo fácil q se supone q es los dolores d cacerola q me esta dando. :\
Para que devuelva algo lo máximo que se me ha ocurrido ha sido hacer es algo así:

function Car_Control_Resets_ResetMotion_OnClicked( )
   Application.LogMessage "Has reseteado los controles de Motion",siVerbose
end function
que viene siendo lo mismo q para el resto

function Car_Control_Path_Sombra_Coche_OnChanged( )
   Application.LogMessage "Car_Control_Sombra_Coche_OnChanged modificado",siVerbose
   dim oParam
   set oParam = PPG.Sombra_Coche
   dim paramVal
   paramVal = oParam.Value
   Application.LogMessage "Nuevo Valor: " & paramVal,siVerbose
end function

Pero como los botones pasa de mi tampoco hace nada

Re: PPG y botones malditos
« Respuesta #5 en: 19 Septiembre 2009, 18:58:50 »
Eso te pasa por usar VBScript, es un lenguaje muy limitado...

En python se pueden hacer strings multilinea ("""mi string multilinea""") por lo que no hay problemas para pasar la lógica como string. En JScript tienes la función toString() que convierte una función (la declaración completa) a string por lo que tampoco tienes problemas. En VBScript... a joderse o leer un fichero externo :)

Yo pase de vbscript a jscript por este tipo de problemas... y luego de jscript a python por encontrarme con otro tipo de limitaciones. Cambiate a python, merece muchísimo la pena.

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
Re: PPG y botones malditos
« Respuesta #6 en: 19 Septiembre 2009, 19:05:04 »
jeje
ya funciona
:P

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
Re: PPG y botones malditos
« Respuesta #7 en: 19 Septiembre 2009, 19:10:47 »
Era un error de sintaxis.
4 días así xD es como cuando t dejas un “;” m dice un colega. La madre q m hizo! x_D
Si tienes razón yo lo haría con python pero no m dejan, d todos modos una cagada así tampoco m la soluciona python es mas cosa de estar pendiente de lo q hago y menos pensar en mi churri.... aisssss 
con lo que m mola pensar en ella xD

Adam Sullastres

  • *****
  • 2713
  • Mercenario del 3D
Re: PPG y botones malditos
« Respuesta #8 en: 19 Septiembre 2009, 19:15:10 »
Ahora a ver si lo dejo bonito y de doy tamaño a los botoncicos y m curro un help.
M apuesto algo a q m estoy 3 h con lo d los botones ya veras tu