[FuncSuche] Bereits exestierende Animationen + Sprechfunktion

  • Hi,


    Ich hätte da mal 2 Frage:
    Also meine 1. Frage:
    Animationen
    Mein Bruder hat gesagt, dass es in AutoIt auch eine Funcmöglichkeit gibt um z.B. einen "Zauberer" herbeizuzaubern xD
    Dieser Zauberer soll dann z.B. irgendeinen Zauberspruch sagen oder kp. xD^^
    Ohne das ich selbst was Animieren muss.... - kennt jmd. diese Func. / oder Verbindung von Funktionen?
    Ich hoffe ihr könnt das verstehen was ich hier schreibe^^ ... bin 13 Jahre alt und etwas blöd xD^^...

    Meine 2. Frage:
    Sprechfunktion
    Es gibt da noch so eine Funktion mit der man "den PC sprechen lassen kann" ^^
    Da gibt man z.B. Hallo ein und eine Stimme sagt dann Hallo - mit einem Englischen Akzent
    Kennt die hier rein zufällig jemand?^^


    Ich hafte für keine Rechtschreibfehler xD^^ :D

    Lächel, du kannst sie nicht alle töten.

  • Hier ist der Zauberer:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}","_ende")
    Global $go=1

    [/autoit] [autoit][/autoit] [autoit]

    $Id=AgentStartup()

    [/autoit] [autoit][/autoit] [autoit]

    AgentShow($Id[1])
    AgentSetPosition($Id[1])
    AgentSpeak($Id[1],"Hallo")
    AgentAnimate($Id[1],"Confused")
    AgentThink($Id[1],"Hört der mich??")

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep ( 100 )
    Until $go=0

    [/autoit] [autoit][/autoit] [autoit]

    AgentShutdown($Id[0],$Id[1])

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentStartup($char="merlin.acs")
    Local $result[2]
    $Agent = "Agent.Control.2"
    If IsObj($Agent) Then
    $Agent = ObjGet("",$Agent)
    Else
    $Agent = ObjCreate($Agent)
    EndIf
    $Agent.Connected = 1
    $Agent.Characters.Load ("Rover",@WindowsDir & "\Msagent\Chars\"&$char)
    $A_Chr = $Agent.Characters.Character("rover")
    $result[0]=$Agent
    $result[1]=$A_Chr
    Return $result
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentShow($CharId)
    $CharId.Show()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentAnimate($CharId,$AnimationName)
    $CharId.Play($AnimationName)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentSpeak($CharId,$Text)
    $CharId.Speak($Text)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentThink($CharId,$Text)
    $CharId.Think($Text)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentSetPosition($CharId,$X=-1,$Y=-1)
    If $X=-1 Then $X=@DesktopWidth/2-100
    If $Y=-1 Then $Y=@DesktopHeight/2-100
    $CharId.MoveTo ($X,$Y)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentHide($CharId)
    $CharId.Hide()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentShutdown($Agent,$CharId)
    $CharId.Hide()
    $CharId.Stop()
    $Agent.Connected = 0
    $Agent = ""
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ende()
    $go=0
    EndFunc

    [/autoit]

    Hier die Liste was du alles machen kannst:
    http://msdn.microsoft.com/en-us/library/ms695930(VS.85).aspx

    Die Funktionen hab ich alle selber mal geschrieben gehabt, es gibt noch mehr hab sie nicht alle übersetzt. ( Hat auch bestimmt schon jemand mal gemacht, deswegen hab ich mir die mühe auch nicht gemacht. )

    Edit:
    Und so lässt du deinen PC reden:

    [autoit]

    Global $voice = ObjCreate("Sapi.SpVoice")

    [/autoit][autoit][/autoit][autoit]

    $Ansage="Hello how are you?"

    [/autoit][autoit][/autoit][autoit]

    Speak($Ansage, 0.50, 100)

    [/autoit][autoit][/autoit][autoit]

    Func Speak($Text, $Rate, $Vol)
    $voice.Rate = $Rate
    $voice.Volume = $Vol
    $voice.Speak ($Text)
    EndFunc;==>Speak

    [/autoit]
  • COOL!^^ EIN BIG BIG BIG BIG THX AN EUCH!
    Geil und das auch noch so schnell RESPEKT!!! :) Ich liebe euch jetzt schon alle xD^^
    Dennoch habe ich wieder eine Frage:^^
    Könnte mir das jmd vlt genauer erklären mit dem Script? xD^^
    Ich bin bisschen schwer von Begriff ;D
    nun ja,... was müsste ich machen um ihm jetzt ne andere Animation bezu bringen oder so^^ ....
    Z.B. DoMagic2 ... wie müsste ich das jetzt einfügen?^^
    hehe

    Lächel, du kannst sie nicht alle töten.

    Einmal editiert, zuletzt von masterRobb (3. Juli 2009 um 21:29)

  • Hier nen bischen Zauberei:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}","_ende")
    Global $go=1

    [/autoit] [autoit][/autoit] [autoit]

    $Id=AgentStartup()

    [/autoit] [autoit][/autoit] [autoit]

    AgentSetPosition($Id[1])
    AgentShow($Id[1])
    AgentAnimate($Id[1],"DoMagic1")
    AgentAnimate($Id[1],"DoMagic2")
    AgentSpeak($Id[1],"Tada")

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep ( 100 )
    Until $go=0

    [/autoit] [autoit][/autoit] [autoit]

    AgentShutdown($Id[0],$Id[1])

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentStartup($char="merlin.acs")
    Local $result[2]
    $Agent = "Agent.Control.2"
    If IsObj($Agent) Then
    $Agent = ObjGet("",$Agent)
    Else
    $Agent = ObjCreate($Agent)
    EndIf
    $Agent.Connected = 1
    $Agent.Characters.Load ("Rover",@WindowsDir & "\Msagent\Chars\"&$char)
    $A_Chr = $Agent.Characters.Character("rover")
    $result[0]=$Agent
    $result[1]=$A_Chr
    Return $result
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentShow($CharId)
    $CharId.Show()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentAnimate($CharId,$AnimationName)
    $CharId.Play($AnimationName)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentSpeak($CharId,$Text)
    $CharId.Speak($Text)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentThink($CharId,$Text)
    $CharId.Think($Text)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentSetPosition($CharId,$X=-1,$Y=-1)
    If $X=-1 Then $X=@DesktopWidth/2-100
    If $Y=-1 Then $Y=@DesktopHeight/2-100
    $CharId.MoveTo ($X,$Y)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentHide($CharId)
    $CharId.Hide()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func AgentShutdown($Agent,$CharId)
    $CharId.Hide()
    $CharId.Stop()
    $Agent.Connected = 0
    $Agent = ""
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ende()
    $go=0
    EndFunc

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Lade Vorgang ", 423, 236, 192, 124)
    $Progress1 = GUICtrlCreateProgress(56, 192, 278, 25,$PBS_SMOOTH)
    $Pic1 = GUICtrlCreatePic(@DocumentsCommonDir & '\Eigene Bilder\Beispielbilder\Winter.jpg', 56, 16, 297, 153)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    For $i = 10 to 100 step 10
    GUICtrlSetData($Progress1,$i)
    Sleep ( 200 )
    Next

    [/autoit]

    Oder:

    Spoiler anzeigen
    [autoit]

    ProgressOn("Läd...", "Lade")
    For $i = 10 to 100 step 10
    ProgressSet($i,"Lade..")
    Sleep ( 200 )
    Next
    ProgressOff()

    [/autoit]
  • Und noch ein Thx^^

    Habe wieder was gefunden^^ hehe
    Also: will so ein Programm schreiben, in das man selber eingeben kann was der Sprecher sagen soll^^...


    Was muss ich nun machen das, dass was man in den "Edit" reinschreibt dort im Programm erscheint was er spricht?^^....
    Ich weiß schon mal mit Variablen^^... aber mehr auch nicht xD^^


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $a
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("SpeakMaster2009", 633, 447, 193, 125)
    $Edit1 = GUICtrlCreateEdit("", 112, 64, 321, 169)
    GUICtrlSetData(-1, $a)
    $Button1 = GUICtrlCreateButton("Sprechen", 192, 256, 161, 73, 0)
    Call ("Sprechen")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd

    Func Sprechen ()
    Global $voice = ObjCreate("Sapi.SpVoice")

    $Ansage=$a
    Speak($Ansage, 0.50, 100)
    EndFunc

    Func Speak($Text, $Rate, $Vol)
    $voice.Rate = $Rate
    $voice.Volume = $Vol
    $voice.Speak ($Text)
    EndFunc;==>Speak
    Das habe ich bisscher...
    2. Frage^^ wie kriege ich diesen Text so schön wie bei euch? Oder sogar als Spoiler...?^^

    Lächel, du kannst sie nicht alle töten.

    4 Mal editiert, zuletzt von masterRobb (3. Juli 2009 um 23:02)

  • So:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $voice = ObjCreate("Sapi.SpVoice")

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("SpeakMaster2009", 633, 447, 193, 125)
    $Edit1 = GUICtrlCreateEdit("", 112, 64, 321, 169)
    $Button1 = GUICtrlCreateButton("Sprechen", 192, 256, 161, 73, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Speak(GUICtrlRead($Edit1),0.5,100)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Speak($Text, $Rate, $Vol)
    $voice.Rate = $Rate
    $voice.Volume = $Vol
    $voice.Speak ($Text)
    EndFunc;==>Speak

    [/autoit]
  • ganz einfach:
    Schreibe:

    Code
    [spoiler]  < ist der Anfang des spoilers
    hier kommt alles hinein, was im Spoiler drin steht 
    [/Spoiler] < ist das Ende des spoilers
    
    
    Falls statt Spoiler lieber verstecken stehen soll, so schreibe einfach
    [spoiler=Verstecken]
    tralala
    [/spoiler]

    Liebe Grüße
    Elo

  • thx^^

    Spoiler anzeigen
    [autoit]

    #include
    #include
    #include
    Quellcode
    Global $voice = ObjCreate("Sapi.SpVoice")

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("SpeakMaster2009", 633, 447, 193, 125)
    $Edit1 = GUICtrlCreateEdit("", 112, 64, 321, 169)
    $Button1 = GUICtrlCreateButton("Sprechen", 192, 256, 161, 73, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Speak(GUICtrlRead($Edit1),0.5,100)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Speak($Text, $Rate, $Vol)
    $voice.Rate = $Rate
    $voice.Volume = $Vol
    $voice.Speak ($Text)
    EndFunc;==>Speak

    [/autoit]


    Danke^^
    So also: Das ist ein kleines Programm:
    Also es erscheint eine GUI in der man seinen Text reinschreiben kann und dann wenn man auf "Sprechen" klickt, spricht "das Programm" xD
    Danke an Greek nochmal - Er hat mir dabei geholfen^^ oder eig. fast alles gemacht xD^^

    So nun ja,... mein Freund will jetzt das Programm haben, nur es soll jetzt noch ein 2. Botton haben, bei dem er alles geschriebene Rückwerz vorliest...^^
    Ich komme nicht drauf, wie ich das machen soll^^ ... - Habe mir schon überlegt, das ich jeden Buchstaben einer Variablen zuordne (oder jeden Zeichen...) und dann einfach alle vertausche xD aber das checke ich langsam auch nicht mehr xD
    Danke im Vorraus :)


    Ich habe jetzt versucht etwas mit "String" zu machen klappt aber nicht -.- - StringRight denke ich - Aber bei mir gibt er dann immer 0 zurück und deswegen sagt er immer "0" - HILFe xD^^

    MfG masterRobb


    Danke nochmal an alle die mir schon geholfen haben/noch helfen werden^^

    Lächel, du kannst sie nicht alle töten.

    3 Mal editiert, zuletzt von masterRobb (4. Juli 2009 um 12:53)

  • Ich glaube ich habe hier im falschen Abteil den Thread erstellt ^^ - Wo ist eig der Richtige zu finden xD finde ihn nicht^^ - Frage - Antwort...^^

    Nun ja dann kann man den Thread hier eig. auch closen oder?^^....

    mfg MasterRobb

    Lächel, du kannst sie nicht alle töten.

  • Ja, am besten wäre der Thread meiner Meinung nach in "Hilfe und Unterstützungen" aufgehoben gewesen ^^

    Closen kannst du ganz einfach selbst, indem du ganz oben bei deinem Post auf editieren gehst und dann den Präfix auf "geschlossen" änderst.