MS Agent

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

MS Agent

Сообщение Чудик » 13.09.2004 (Пн) 7:32

Весь вечер вчера ковырял агентов Микрософта. Запарился в следующем:
- почему-то моя программа не дожидается завершения заданного действия персонажа и рулит далее (в том числе и закрывается, не давая персонажу порой даже появиться). Понимаю, что процессы.... Но как уйти от этого, как все-таки договориться с прогой, чтоб она притормаживалась, пока персонаж в движении. Есть ли какие-то спец функции?
- и не догнал, как заставить персонаж воспринимать мои голосовые команды.
Без помощи никак!
Век живи - век учись!
www.detal-plast.narod.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.09.2004 (Пн) 17:16

1. Есть же события. Те, которые на idle начинаются.
2. Дык а движок распознавания установил? Это не то же, что движок синтеза :) Если установил, то имей в виду, что он английский. Про метод Listen не забыл? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

MS Agent

Сообщение Чудик » 14.09.2004 (Вт) 11:33

В событиях не ковырял - не додумал заглянуть, а про распознование - не знал, что оно только на английском. Спасибо за подсказку. Вечером взгляну. :wink:
Век живи - век учись!
www.detal-plast.narod.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

MS Agent

Сообщение Чудик » 15.09.2004 (Ср) 9:38

Пробовал с событием idleComplite - ничего не получилось. Может что-то не так организовываю.


Private Sub MDIForm_Unload(Cancel As Integer) 'Располагается в MDI форме
Dim mychar As IAgentCtlCharacterEx
Dim i As Integer
If BeforeSave = 1 Then
Load frmSave
frmSave.Show
Exit Sub
End If
Set mychar = frmIntro.Agent1.Characters("MyChar")
mychar.IdleOn = True
mychar.Show
mychar.Speak "Всего Вам хорошего!"
mychar.Play "Wave"
End Sub




Private Sub Agent1_IdleComplete(ByVal CharacterID As String) 'Располагается в стандартной форме с элементом управления MS Agent 2.0
Call ExitPrg 'Подпрограмма закрытия проекта
End Sub

Так программа совсем не закрывается, т.е., как понимаю, не реагирует на событие idleComplite. Видно его не происходит. Почему?
Век живи - век учись!
www.detal-plast.narod.ru

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 20.09.2004 (Пн) 0:31

http://art.bdk.com.ru/govor/program3.htm
- это для программинга распонания .... но распознователь тама тока англоязычковый:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 20.09.2004 (Пн) 8:12

Огромное спасибо!!! Ответы на все вопросы!!! По крайней мере, на данный период моего развития!!!
Век живи - век учись!
www.detal-plast.narod.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

MS Agent

Сообщение Чудик » 23.09.2004 (Чт) 11:41

Прочитал все, что в ссылке, включая про определение завершения анимации у персонажа. Попробовал - не получается. Эксперименты ничего не дали. Код такой:
Private Sub Form_Load()
Dim MyRequest As Object
Dim mychar As IAgentCtlCharacterEx
MyRequest = mychar.Play("Blink")

On Error GoTo 6
Agent1.Characters.Load "MyChar"
Set mychar = Agent1.Characters("MyChar")
mychar.Show
mychar.LanguageID = &H419
mychar.TTSModeID = "{06377F81-D48E-11d1-B17B-0020AFED142E}"
mychar.Speak "\Pit=1000\Успешной Вам\Emp\работы!"
mychar.MoveTo 400, 400
mychar.Play "Blink"
mychar.Hide
6:
End Sub

Public Sub Agent1_RequestComplete(ByVal RequestID As Object)
7:
If RequestID <> MyRequest Then GoTo 7
End Sub

т.е. пока персонаж не моргнет далее не продвигаемся, но в строке
MyRequest = mychar.Play("Blink")
выдет ошибку на неустановленную объектную переменную!? :!: :?:
Век живи - век учись!
www.detal-plast.narod.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList