Microsoft Agent 2.0: Вступление

Microsoft Agent 2.0

Вступление

Microsoft Agent — это набор программных сервисов, которые поддерживают воспроизведение интерактивных анимированных персонажей. Разработчики могут использовать эти персонажи для создания различных интерактивных приложений, справочных систем, электронных пособий, а также для представления информации в HTML-документах различными способами.

Также Microsoft Agent предлагает поддержку распознавания голосовой информации (на основе Microsoft Speech Application Programming Interface, SAPI 4.0), позволяя управлять приложениями на уровне голосовых команд. Персонажи могут воспроизводить синтезированную речь (text-to-speech, TTS), аудиофрагменты или текст.

Персонажи отображаются в собственных окнах, что делает интерфейс более удобным и гибким. В состав Microsoft Agent входит компонент ActiveX, доступный из Visual Basic.

Эта технология напрямую используется в Office 2000 и включена в состав ядра Windows 2000. Для установки Microsoft Agent в Windows 98 и Windows NT 4.0 требуется загрузить соответствующее программное обеспечение с Web-узла фирмы Microsoft.

Технология Microsoft Agent уже используется на различных коммерческих и любительских Web-узлах.


Персонажи

В настоящее время на сайте Microsoft доступны четыре стандартных персонажа, которые Вы можете использовать. Это джин Genie, маг Merlin, попугай Peedy попугай и робот Robby.

Кроме стандартных персонажей в сети Интернет существуют персонажи, разработанные другими разработчиками на любой вкус. Небольшую коллекцию персонажей вы найдет на сайте http://allcharacters.chat.ru/. Более того, Вы можете воспользоваться специальным редактором для создания своего неповторимого персонажа. (доступен по адресу http://agent.microsoft.com/agent2/sdk/ace.exe)


Программирование: Доступ к объекту из программы

Доступ к объекту из программы

Существует несколько способов доступа к объекту Microsoft Agent. Рассмотрим эти способы поподробнее.

Первый способ

Первый способ использует раннее связывание для получения ссылки. Тут есть несколько вариантов.

Для начала добавьте элемент управления Agent в проект. Для этого, в меню Project выберите Components или нажмите Ctrl+T. Также вы можете щелкнуть правой кнопкой на комплекте инструментов (Toolbox) и выбрать Components ... и выбрать Microsoft Agent Control 2.0.

Затем добавьте появившийся значок Агента на форму.

Первый вариант

Добавив элемент управления на форму, вы уже можете получить доступ к его свойствам. Для этого нужно ввести небольшой код в программу, где указываете путь к файлу ACS.

Agent1.Characters.Load "Merlin", "c:\windows\msagent\chars\merlin.acs"
Agent1.Characters("Merlin").Show

Второй вариант

' Здесь мы используем переменную для ссылки

Dim merlin As IagentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "Merlin", "merlin.acs"
Set merlin = Agent1.Characters("Merlin")
merlin.Show
Примечание

В принципе, можно использовать и IAgentCtlCharacter, но предпочтительнее тип с суффиксом Ex, так как IAgentCtlCharacter устарел и оставлен из соображений совместимости.

Второй способ

При втором способе используется позднее связывание с помощью функции CreateObject. В этом случае мы создаем объект в период выполнения программы.

' Объявим глобальную переменную в General Declaration
Dim myagent as Object

Private Sub Form_Load()
On Error Resume Next
' Устанавливаем ссылку на объект
Set myagent = CreateObject("Agent.Control.2")
' Проверяем, установлен ли MS Agent на компьютере
If Err.Number Then
  MsgBox "MS Agent не установлен!"
Else
' Подключаемся к объекту
  myagent.Connected = True
' Загружаем персонаж
  myagent.Characters.Load "Merlin", "c:\windows\msagent\chars\merlin.acs"

' Выводим на экран
  myagent.Characters("Merlin").Show
End If

Этот метод хорош в случае, если Вы не знаете, есть ли у пользователя MS Agent. Здесь Вы можете предусмотреть такую ситуацию и продолжить работу уже без использования Agent.


Программирование: Загрузка персонажа

Загрузка персонажа

Прежде чем приступить к анимации персонажа, вы должны загрузить его, используя метод Load. Microsoft Agent поддерживает два формата для хранения данных доступных анимаций: одиночный файл (.ACS) для локального применения и множественный формат (.ACF, .ACA), который хранит отдельные виды анимаций и используется для загрузки анимации отдельно через HTTP-сервер.

Agent1.Characters.Load "Merlin", "merlin.acs"

Приложение может загрузить только единственный экземпляр заданного персонажа. Но при этом можно использовать одновременно разных персонажей.

Персонаж по умолчанию

Вместо загрузки заданного персонажа, жестко определяя его имя, вы можете загрузить персонаж по умолчанию. Персонаж по умолчанию - это особый вид сервиса, выполняющий определенные задачи. Microsoft Agent имеет список свойств, являющийся частью сервиса персонажа по умолчанию и известный как Окно свойств персонажа. Данное Окно свойств персонажа позволяют пользователю выбрать персонаж по умолчанию.

Agent1.Characters.Load "MyChar"

Не все существующие персонажи могут быть персонажами по умолчанию. Персонаж по умолчанию должен поддерживать стандартный набор анимаций.

Для загрузки персонажа по умолчанию вызовите метод Load без указания имени файла или пути. Microsoft Agent автоматически загрузит текущий персонаж, установленный как персонаж по умолчанию. Если пользователь еще не выбрал персонажа по умолчанию, то Agent выберет первый персонаж, поддерживающий стандартный набор анимаций. Если таких персонажей нет, то данный метод потерпит неудачу с сообщением об ошибке.

Выбор персонажа по умолчанию

Хотя приложение может показать список доступных персонажей по умолчанию, только пользователь может определить понравившийся ему персонаж текущим персонажем по умолчанию. Для этого пользователь может воспользоваться Окном свойств персонажа, вызываемого с помощью метода ShowDefaultCharacterProperties, и изменить текущие настройки.


Программирование: Анимация персонажа

Анимация персонажа

После загрузки персонажа вы можете пользоваться различными методами для его анимации. Как правило, сначала используется метод Show, который позволяет сделать персонаж видимым и проигрывать другие анимации, доступные в видимом режиме.

Если персонаж является видимым, то вы можете воспользоваться методом Play, задавая различные команды.

Метод Speak заставит персонаж заговорить. Причем губы персонажа будут шевелиться синхронно заданному тексту.

Метод MoveTo позволяет перемещать персонаж в новое местоположение.

Для скрытия персонажа вызывайте Hide.

Microsoft Agent выполняет все вызовы по порядку. Поэтому каждая новая команда начнет выполняться только после завершения предыдущей команды.

Для того, чтобы узнать, выполнена ли заданная команда, вы можете послать запрос объекту Request, который используется для получения информации о состоянии выполнения.

Microsoft Agent имеет также одну интересную особенность. Например, если статус персонажа не меняется несколько секунд, то Agent начинает самостоятельно проигрывать некоторые виды анимаций, определенные в коллекции Idling.


Agent: Name

Свойство Name

Свойство Name возвращает имя, используемое в коде как название используемого элемента управления. В период выполнения программы данное свойство доступно только для чтения

Синтаксис
agent.Name
Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Выводим имя элемента управления
MsgBox Agent1.Name


Agent: Command

Событие Command

Событие Command возникает при выборе заданной команды

Синтаксис
Sub agent_Command(ByVal UserInput)

UserInput Определяет объект Command, возвращаемый сервером. Следующие свойства доступны через объект Command:

CharacterID
Строковое значение, идентифицирующее имя (ID) персонажа, получающего команду

Name
Строка, идентифицирующая имя (ID) команды

Confidence
Значение Long показывающее the confidence scoring команды

Voice
Строка, идентифицирующая фонетический текст для команды

Alt1Name
Строка, идентифицирующая имя следующей(второй) лучшей команды

Alt1Confidence
Значение Long, определяющее confidence scoring для следующей(второй) лучшей команды

Alt1Voice
Строка, идентифицирующая фонетический текст для для следующей лучшей альтернативной команды

Alt2Name Строка, идентифицирующая имя третьей лучшей команды

Alt2Confidence
Значение Long, определяющее confidence scoring для третьей лучшей команды

Alt2Voice Строка, идентифицирующая фонетический текст для третьей лучшей команды

Count Значение Long, показывающее номер возвращаемой альтернативы

Пример
Private Sub Agent1_Command(ByVal UserInput As Object)
If UserInput.Name = "TimeCommand" Then
    merlin.Speak "Сейчас " & CStr(Time)
End If
End Sub


Characters: Load

Метод Load

Метод Load загружает персонаж в коллекцию Characters

Синтаксис
agent.Characters.Load "CharacterID", Provider
CharacterID | Обязательный параметр. Строковое значение, которое вы присваиваете загружаемому персонажу
Provider | Обязательный параметр. Может принимать следующие значения: Filespec Полное имя файла вашего персонажа URL HTTP-адрес файла вашего персонажа

Примечание

Вы можете загрузить персонаж из папки с персонажами, указывая относительный путь (без дополнительных символов). Персонажи по умолчанию находятся в папке Windows\msagent\chars. Поэтому можно загрузить персонаж так:

Agent.Characters.Load "genie", "genie.acs"
Также вы можете задать свой собственный путь к персонажу.
Agent.Characters.Load "genie", "MyCharacters\genie.acs"
И наконец, вы можете загрузить персонаж по умолчанию без указания второго параметра.
Agent.Characters.Load "character"
Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Выводим имя элемента управления
MsgBox Agent1.Name


Character: MoveTo

Метод MoveTo

Метод MoveTo перемещает персонаж в указанное место

Синтаксис
agent.Characters ("CharacterID").MoveTo x,y, [Speed]
x, y | Обязательный параметр. Координаты персонажа - Левый (x) и верхний (y) края кадра анимации в пикселах
Speed | Необязательный параметр. Значение типа Long, определяющая скорость перемещения персонажа в милисекундах. По умолчанию используется 1000 милисекунд. При использовании нулевого значения персонаж перемещается без анимации

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Установим русский язык
mychar.LanguageID = &H419
' Установим движок - голос Бориса (русская версия)
mychar.TTSModeID = "{06377F81-D48E-11D1-B17B-0020AFED142E}"
' Выбираем одно слово из заданных
mychar.Speak "Раз|Два|Три|Четыре"
' Перемещаем персонаж
mychar.MoveTo 100, 100
' Воспроизводим звуковой файл
mychar.Speak " ", "rusproject.wav"


Character: Play

Метод Play

Метод Play проигрывает заданную анимацию для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").Play "AnimationName"
AnimationName Обязательный параметр. Строка, содержащая имя анимации

Пример
Dim mychar As IAgentCtlCharacterEx
Dim AnimationName
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show

'Выводим список возможных анимаций
AnimationList.Clear
For Each AnimationName In mychar.AnimationNames
  AnimationList.AddItem AnimationName
Next

' Воспроизводим вторую анимацию из списка
mychar.Play AnimationList.List(1)


Character: Show

Метод Show

Метод Show делает персонаж видимым и проигрывает соответствующую анимацию Showing

Синтаксис
agent.Characters ("CharacterID").Show [Fast]
Fast Необязательный параметр. Булево значение, определяющее поведение анимации Showing. Если равно True, то пропускает анимацию появления. При False (по умолчанию) анимация присутствует при появлении персонажа

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show


Character: ShowPopupMenu

Метод ShowPopupMenu

Метод ShowPopupMenu выводит всплывающее меню персонажа в указанном месте. Данное меню автоматически всплывает при правом щелчке мыши на персонаже

Синтаксис
agent.Characters ("CharacterID").ShowPopupMenu x,y
x, y Обязательный параметр. Значения типа Integer, указывающие на горизонтальный (x) и вертикальный (y) экранные координаты всплывающего меню в пикселах

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Выводим всплывающее меню
mychar.ShowPopupMenu 100, 100
Смотри также
AutoPopupMenu


Character: Speak

Метод Speak

Метод Speak воспроизводит заданный текст или звуковой файл для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").Speak [Text], [Url]
Text | Необязательный параметр. Воспроизводимая строка
Url | Необязательный параметр. Строка, содержащая местоположение звукового файла (.WAV or .LWV format). Используется либо путь файла (абсолютный или относительный), либо URL (если анимация персонажа используется через HTTP-протокол)

Хотя оба параметра являются необязательными, но один из них обязательно должен присутствовать. Используйте пробел в параметре Text, чтобы воспроизвести звуковой файл без текста в ballon.
Используйте вертикальную черту (|) в параметре Text в качестве разделителя между словами. Это позволит выбирать в случайном порядке текст при каждом вызове операции. Также в Text можно использовать специальные теги, предназначенные для изменения голоса (громкость, тембр и т.п.)

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Установим русский язык
mychar.LanguageID = &H419
' Установим движок - голос Бориса (русская версия)
mychar.TTSModeID = "{06377F81-D48E-11D1-B17B-0020AFED142E}"
' Выбираем одно слово из заданных
mychar.Speak "Раз|Два|Три|Четыре"
' Воспроизводим звуковой файл
mychar.Speak " ", "rusproject.wav"


Character: Think

Метод Think

Метод Think выводит заданный текст в особом окне в виде облачка (как в комиксах). Данный метод схож с Speak, но вид облачка немного другой. Кромет того Think поддерживает только тег Закладка (\Mrk)

Синтаксис
agent.Characters ("CharacterID").Think [Text]
Text Необязательный параметр. Строка типа String, определяющая текст мысли персонажа

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Установим русский язык
mychar.LanguageID = &H419
' Установим движок - голос Бориса (русская версия)
mychar.TTSModeID = "{06377F81-D48E-11D1-B17B-0020AFED142E}"
' Выбираем одно слово из заданных
mychar.Speak "Раз|Два|Три|Четыре"
' Воспроизводим звуковой файл
mychar.Speak " ", "rusproject.wav"
' А теперь персонаж думает
mychar.Think "Ох, надоел ты мне уже!"


Character: AutoPopupMenu

Свойство AutoPopupMenu

Свойство AutoPopupMenu возвращает или устанавливает возможность появления всплывающего меню персонажа при правом щелчке кнопки мыши на персонаже или на значке на панели задач

Синтаксис
agent.Characters ("CharacterID").AutoPopupMenu  [ = boolean]
boolean Значение типа Boolean, определяющее возможность вывода всплывающего меню при щелчке правой кнопкой мыши
True - Установлен по умолчанию. Меню выводится
False - Меню не выводится

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Запрещаем выводить меню при правом щелчке мыши
' и выводим всплывающее меню в заданном месте
mychar.AutoPopupMenu = False
mychar.ShowPopupMenu 100, 100
Смотри также
ShowPopupMenu


Character: Height

Свойство Height

Свойство Height устанавливает или возвращает значение высоты кадра для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").Height [ = value]
value Значение Long, определяющее высоту кадра в пикселах

Пример
With merlin
   .Width = .Width * 2
   .Height = .Height * 2
   .Speak "Я увеличился!"
End With
Смотри также
OriginalHeight, Width


Character: LanguageID

Свойство LanguageID

Свойство LanguageID возвращает или устанавливает языковой идентификатор для персонажа. Если языковой идентификатор для персонажа не установлен, то используется системный языковой идентификатор (если установлена поддержка этого языка в Agent). В противном случае используется английский язык (US). Также, это свойсто определяет язык для текста в Balloon, команд в всплывающем меню персонажа и голового движка. Если устанавливаемый идентификатор не существует в системе, происходит ошибка и сохраняются последние настройки LanguageID.

Синтаксис
agent.Characters ("CharacterID").LanguageID [ = LanguageID]
LanguageID | 16-битное значение - языковой идентификатор для персонажа
 | Arabic | &H0401 | Italian | &H0410
 | Basque | &H042D | Japanese | &H0411
 | Chinese (Simplified) | &H0804 | Korean | &H0412
 | Chinese (Traditional) | &H0404 | Norwegian | &H0414
 | Croatian | &H041A | Polish | &H0415
 | Czech | &H0405 | Portuguese (Portugal) | &H0816
 | Danish | &H0406 | Portuguese (Brazil) | &H0416
 | Dutch | &H0413 | Romanian | &H0418
 | English (British) | &H0809 | Russian | &H0419
 | English (US) | &H0409 | Slovakian | &H041B
 | Finnish | &H040B | Slovenian | &H0424
 | French | &H040C | Spanish | &H0C0A
 | German | &H0407 | Swedish | &H041D
 | Greek | &H0408 | Thai | &H041E
 | Hebrew | &H040D | Turkish | &H041F
 | Hungarian | &H040E |  |

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Установим русский язык
mychar.LanguageID = &H419
mychar.Speak "Русский проект"


Character: Left

Свойство Left

Свойство Left получает или устанавливает левый край кадра персонажа

Синтаксис
agent.Characters ("CharacterID").Left [ = value]
value Обязательный параметр, определяющий левый край кадра в пикселах

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
mychar.Speak "Мои координаты: x = " & mychar.Left & " и y = " & mychar.Top


Character: OriginalHeight

Свойство OriginalHeight

Свойство OriginalHeight возвращает значение высоты, определенное как настоящее (оригинальное) для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").OriginalHeight
Пример
With merlin
  .Height = .OriginalHeight
  .Width = .OriginalWidth
  .Speak "Это мой настоящий размер!"
End With
Смотри также
Height, OriginalWidth


Character: OriginalWidth

Свойство OriginalWidth

Свойство OriginalWidth возвращает значение ширины, определенное как настоящее (оригинальное) для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").OriginalWidth
Пример
With merlin
  .Height = .OriginalHeight
  .Width = .OriginalWidth
  .Speak "Это мой настоящий размер!"
End With
Смотри также
Width, OriginalHeight


Character: Top

Свойство Top

Свойство Top получает или устанавливает верхний край кадра персонажа

Синтаксис
agent.Characters ("CharacterID").Top [ = value]
value Обязательный параметр, определяющий верхний край кадра в пикселах

Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
mychar.Speak "Мои координаты: x = " & mychar.Left & " и y = " & mychar.Top


Character: TTSModeID

Свойство TTSModeID

Свойство TTSModeID возвращает или устанавливает идентификатор голосового движка Text-to-Speech (TTS) для персонажа.

Синтаксис
agent.Characters ("CharacterID").TTSModeID [ = ModeID]
ModeID Строка, определяющая голосовой движок

Список некоторых доступных идентификаторов
Voice | Mode IDs
Adult Female #1, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273008}
Adult Female #2, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273009}
Adult Male #1, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273000}
Adult Male #2, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273001}
Adult Male #3, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273002}
Adult Male #4, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273003}
Adult Male #5, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273004}
Adult Male #6, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273005}
Adult Male #7, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273006}
Adult Male #8, US English, L&H TruVoice | {CA141FD0-AC7F-11D1-97A3-006008273007}
Carol, British English, L&H TTS3000 | {227A0E40-A92A-11d1-B17B-0020AFED142E}
Peter, British English, L&H TTS3000 | {227A0E41-A92A-11d1-B17B-0020AFED142E}
Linda, Dutch, L&H TTS3000 | {A0DDCA40-A92C-11d1-B17B-0020AFED142E}
Alexander, Dutch, L&H TTS3000 | {A0DDCA41-A92C-11d1-B17B-0020AFED142E}
Veronique, French, L&H TTS3000 | {0879A4E0-A92C-11d1-B17B-0020AFED142E}
Pierre, French, L&H TTS3000 | {0879A4E1-A92C-11d1-B17B-0020AFED142E}
Anna, German, L&H TTS3000 | {3A1FB760-A92B-11d1-B17B-0020AFED142E}
Stefan, German, L&H TTS3000 | {3A1FB761-A92B-11d1-B17B-0020AFED142E}
Barbara, Italian, L&H TTS3000 | {7EF71700-A92D-11d1-B17B-0020AFED142E}
Stefano, Italian, L&H TTS3000 | {7EF71701-A92D-11d1-B17B-0020AFED142E}
Naoko, Japanese, L&H TTS3000 | {A778E060-A936-11d1-B17B-0020AFED142E}
Kenji, Japanese, L&H TTS3000 | {A778E061-A936-11d1-B17B-0020AFED142E}
Shin-Ah, Korean, L&H TTS3000 | {12E0B720-A936-11d1-B17B-0020AFED142E}
Jun-Ho, Korean, L&H TTS3000 | {12E0B721-A936-11d1-B17B-0020AFED142E}
Juliana, Portuguese (Brazil), L&H TTS3000 | {8AA08CA0-A1AE-11d3-9BC5-00A0C967A2D1}
Alexandre, Portuguese (Brazil), L&H TTS3000 | {8AA08CA1-A1AE-11d3-9BC5-00A0C967A2D1}
Светлана, Русский, L&H TTS3000 | {06377F80-D48E-11d1-B17B-0020AFED142E}
Борис, Русский, L&H TTS3000 | {06377F81-D48E-11d1-B17B-0020AFED142E}
Carmen, Spanish, L&H TTS3000 | {2CE326E0-A935-11d1-B17B-0020AFED142E}
Julio, Spanish, L&H TTS3000 | {2CE326E1-A935-11d1-B17B-0020AFED142E}
Пример
Dim mychar As IAgentCtlCharacterEx
' Загружаем персонаж
Agent1.Characters.Load "MyChar"

Set mychar = Agent1.Characters("MyChar")
mychar.Show
' Установим русский язык
mychar.LanguageID = &H419
' Установим движок - голос Бориса (русская версия)
mychar.TTSModeID = "{06377F81-D48E-11D1-B17B-0020AFED142E}"
mychar.Speak "Русский проект"


Character: Width

Свойство Width

Свойство Width устанавливает или возвращает значение ширины кадра для заданного персонажа

Синтаксис
agent.Characters ("CharacterID").Width [ = value]
value Значение Long, определяющее ширину кадра в пикселах

Пример
With merlin
   .Width = .Width * 2
   .Height = .Height * 2
   .Speak "Я увеличился!"
End With
Смотри также
Width, OriginalHeight


Commands: Add

Метод Add

Метод Add добавляет объект Command в коллекцию Commands. Значение свойства Name должно быть уникальным в коллекции Commands. Вы должны удалить команду прежде чем создавать новую команду с таким же именем, иначе возникает ошибка

Синтаксис
agent.Characters ("CharacterID").Commands.Add Name, Caption, Voice, Enabled, Visible

Name | Обязательный. Строка-идентификатор для создаваемой команды
Caption | Необязательный. Строка, которая будет отображаться в всплывающем меню и в Commands Window
Voice | Необязательный. Строка, используемая в качестве слова или фразы для распознавания команды. За дополнительной информацией обращайтесь в раздел свойства Voice объекта Command
Enabled | Необязательный. Булево значение, определяющее доступность команды. По умолчанию равно True. За дополнительной информацией обращайтесь в раздел свойства Enabled объекта Command
Visible | Необязательный. Булево значение, определяющее видимость команды в всплывающем меню при режиме распознавания речи. По умолчанию равно True. За дополнительной информацией обращайтесь в раздел свойства Visible объекта Command

Пример
Form1.Hide
' Добавляем новую команду для персонажа
mychar.Commands.Add "TimeCommand", "Который час?"


AnimationNames

Коллекция AnimationNames

Коллекция AnimationNames содержит список анимаций, доступных для персонажа. Вы можете использовать данную коллекцию для перечисления доступных анимаций

Пример
' Выводим список возможных анимаций
' Расположите на форме ListBox
Dim AnimationName

AnimationList.Clear
For Each AnimationName In mychar.AnimationNames
  AnimationList.AddItem AnimationName
Next


PropertySheet

Объект PropertySheet

Объект PropertySheet имеет несколько свойств, которыми вы можете управлять для изменений настроек в окне Дополнительные параметры персонажей

  • Height
  • Left
  • Page
  • Top
  • Visible
  • Width
Если вы установите Height, Left, Top, и Width перед выводом окна, то их значения вернутся как 0


PropertySheet: Visible

Свойство Visible

Свойство Visible возвращает или устанавливает видимость окна Дополнительные параметры персонажей

Синтаксис
agent.PropertySheet.Visible [ =boolean]

boolean Булево выражение, определяющее видимость окна
True - окно видимо (открыто)
False - окно невидимо (закрыто)

Пример
Form1.Hide
' Выводим окно Дополнительные параметры персонажей
Agent1.PropertySheet.Visible = True


Agent: ShowDefaultCharacterProperties

Метод ShowDefaultCharacterProperties

Метод ShowDefaultCharacterProperties выводит панель настройки свойств для выбора персонажа по умолчанию

Синтаксис
agent.ShowDefaultCharacterProperties [ X , Y]

X | Необязательный параметр. Значение типа Integer, задающее горизонтальную координату экрана для вывода окна в пикселах
Y | Необязательный параметр. Значение типа Integer, задающее вертикальную координату экрана для вывода окна в пикселах

Пример
Form1.Hide
' Выводим панель свойств
Agent1.ShowDefaultCharacterProperties 4, 4