Welcome Guest Search | Active Topics | Members | Log In | Register

Lancement d'un script via l'Action Builder Options
jerem0005@hotmail.fr
Posted: Thursday, April 07, 2011 10:46:49 PM
Rank: Newbie

Joined: 4/7/2011
Posts: 3
Points: 9
Bonjour à tous,

Etant débutant NOVAtien, je bute sur un problème surement basique !


Alors voila :
J'ai un slider qui inscrit une valeur dans une variable (appelons la "toto"), et un "Launch Script" cablé sur un "Every x frame" (1).
Ce que je souhaite, c'est appeler une Sub contenue dans mon script, en lui passant la valeur de "toto".

Hors voila, rien ne se passe.

J'ai trouvé sur le net que le paramètre passé doit être une chaine de caractères. J'ai pris ça en compte et changer le type de "toto" en String.


Quelqu'un aurait une idée ?
Dois-je transformer ma Sub en fonction ?
Que dois-je mettre dans la sub New ?

Tout commentaire me sera utile


Merci pour votre aide

Jérémie
Mitch
Posted: Friday, April 08, 2011 12:28:15 PM

Rank: Nova Master

Joined: 5/23/2008
Posts: 693
Points: 1,788
Location: Toulouse
Alors, Fred vient de passer me voir et m'a confié ceci, qui fonctionne et qui correspond à ce que tu veux faire. Cela devrait répondre à ta question. C'est à intégrer dans ton script:
Class Script

Private currentScene As NovaScene

Public Sub ManageValue(ByVal param As String)
Dim myValue As Single = System.Single.Parse(currentScene.GetVariable(param).Value.ToString())


End Sub


Public Sub New(scene As NovaScene)
currentScene = scene
End Sub

Protected Overrides Sub Finalize()

End Sub

End Class




Mitch
In NOVA 2010 I trust
jerem0005@hotmail.fr
Posted: Saturday, April 09, 2011 11:28:20 AM
Rank: Newbie

Joined: 4/7/2011
Posts: 3
Points: 9
Super, merci pour votre réactivité !

Je test ça dès lundi.

Merci encore
jerem0005@hotmail.fr
Posted: Monday, April 11, 2011 12:37:50 PM
Rank: Newbie

Joined: 4/7/2011
Posts: 3
Points: 9
Re bonjour !

Bon, je suis évidemment toujours bloqué :(

Le mieux, c'est que je vous montre le script complet et comment je l'appelle !

Mon but, c'est, par un Slider unique, de changer la couleur d'un meuble de la scène (le script convertit une couleur HSV en RGB, avec S = V = 100, et H variant de 0 a 360 grace à un slider)

C'est peut etre la ou je me trompe, mais à chaque frame, j'appelle mon script, qui est censé recupérer la valeur de la variable "SliderValue" déclarée en "Startup" (variable cablée au Slider, évidemment)




Code:
Class Script
    Private currentScene As NovaScene
    Public Sub New(scene As NovaScene)
        currentScene = scene
    End Sub

    Protected Overrides Sub Finalize()
    End Sub               

    Public Sub changeMaterial()
        Dim m As NovaStandardMaterial
        Dim hue As Single = System.Single.Parse(currentScene.GetVariable("sliderValue").Value.ToString())
        Dim i,s,v As Integer
        Dim f, p, q, t As Double
        Dim couleurRGBA As RGBAColor

        s = 100
        v = 100                           
        hue /= 60                         
        i = Floor(hue)
        f = hue - i                                           
        p = v * ( 1 - s )
        q = v * ( 1 - s * f )
        t = v * ( 1 - s * ( 1 - f ) )
        Select Case i
            Case 0
                couleurRGBA.Red = v
                couleurRGBA.green = t
                couleurRGBA.blue = p                                                 
            Case 1
                couleurRGBA.Red = q
                couleurRGBA.green = v
                couleurRGBA.blue = p                                                 
            Case 2:
                couleurRGBA.Red = p
                couleurRGBA.green = v
                couleurRGBA.blue = t                                                 
            Case 3
                couleurRGBA.Red = p
                couleurRGBA.green = q
                couleurRGBA.blue = v
            Case 4
                couleurRGBA.Red = t
                couleurRGBA.green = p
                couleurRGBA.blue = v
            Case Else
                couleurRGBA.Red = v
                couleurRGBA.green = p
                couleurRGBA.blue = q
        End Select
        couleurRGBA.alpha = 1
        m = currentScene.getMaterial("leMat")
        m.Diffuse = couleurRGBA
    End Sub
End Class


Merci pour votre aide

Jérémie
Frédéric Colin
Posted: Friday, April 15, 2011 4:29:53 PM
Rank: Advanced Member

Joined: 10/26/2009
Posts: 132
Points: 396
Location: France
Bonjour,

vous pouvez me faire passer une version simplifiée de votre scène avec votre script afin que je puisse le tester ?
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS