Функции vJS для управления ботами

doGesture(name) - выполнить жест по имени жеста. Параметр name этой функции является именем выполняемого действия.

Возможные действия:

Пример использования:

var bot1 = scene.getBotByName("bot1");
bot1.doGesture("look_at_watch");	

doGestureInCycle(name, replayCount) - выполнить жест replayCount раз. Параметр name этой функции является именем выполняемого действия.

playSound(res, volume) – проиграть звук из серверного ресурса res (полученный с помощью getServerResource) с уровнем громкости volume в процентах. Бот должен на протяжении проигрывания звука махать руками и шевелить ртом. Могут быть проиграны любые звуки в формате wav или mp3, предварительно загруженные в коллекцию ресурсов.

Пример использования:

var bot1 = scene.getBotByName("bot1");
scene.myRes = getServerResource("long_speech.mp3");
bot1.onPress = function()
{
  bot1.playSound(scene.myRes, 100);
}

stopSounds() – прекратить проигрывание всех звуков Пример использования – при нажатии на bot1, он начинает проигрывать звук, а при нажатии на bot2 перестаёт:

var bot1 = scene.getBotByName("bot1");
var bot2 = scene.getBotByName("bot2");
scene.myRes = getServerResource("table_speech.mp3");
bot1.onPress = function()
{
  bot1.playSound(scene.myRes, 100);
}
  bot2.onPress = function()
{
  bot1. stopSounds();
}

goToPos (x, y) – бот идёт в точку c координатами x, y. При этом изменяется синхронизируемое свойство position бота.

Пример:

var bot1 = scene.getBotByName("bot1");
bot1.goToPos(62385, 26900);

teleport(x, y) – бот переносится в точку с координатами x, y моментально. При этом изменяется синхронизируемое свойство position бота.

Пример:

var bot1 = scene.getBotByName("bot1");
bot1.teleport (62385, 26900);

writeToChat(str) – бот пишет в чат строку str, в чате отображается имя, аватар бота и строка str.

Пример:

var bot1 = scene.getBotByName("bot1");
bot1.writeToChat (“Hello world!”);

showDialog(name, question, answers, sound, answersSound) – показать диалоговое окно бота с именем name с вопросом question и 1-10 вариантами ответа (массив строк answers). Вопрос может быть продублирован звуком sound, а может быть проигнорирован (sound = null). answersSound – массив звуков к вариантам ответов. Вместо массива ответов допустим null.

Пример:

scene.questionSound = getServerResource("question.mp3");
scene.answers = new Array();	
scene.answersSound = new Array();		
for (var i = 0; i < 5; ++i)
{
  scene.answers.push("answer " + i);
  scene.answersSound.push(scene.musica);
}
var bot1 = scene.getBotByName("bot1");
bot1.onPress = function()
{
  var obj = showDialogueBox("bot1", "Some question here", scene.answers, scene.questionSound, scene.answersSound);
  obj.onClose = function()
  {
    traceStr(“Choosen answer = ” + this.getButtonId());
  }
}

sit(chair, placeID) - бот садится на 3D-объект chair c размеченными сиденьями на сидение с номером placeID (начинаются с 0), если сиденье занято – садится на ближайшее соседнее.

Пример:

var bot1 = scene.getBotByName("bot1");
var sit1 = scene.getObjectByName("sit1");
bot1.sit(sit1, 0);

applyMimic(viseme) - бот показывает на лице эмоцию с названием viseme (допустимые значения: smile).

Пример:

var bot1 = scene.getBotByName("bot1");
bot1.applyMimic("smile");

pointerShow(pos) - бот показывает указку, направленную в точку с координатами, переданными в аргументе pos (тип аргумента - Position3D).

Пример:

var bot1 = scene.getBotByName("bot1");
var pos = new Position3D(0, 0, 0);
bot1.pointerShow(pos);

pointerHide() - бот прячет указку.

Пример:

var bot1 = scene.getBotByName("bot1");
bot1.pointerHide();

pointerShowForTime(pos, time) - бот показывает указку и прячет ее по истечении времени time (в миллисекундах).

Пример:

var bot1 = scene.getBotByName("bot1");
var pos = new Position3D(0, 0, 0);
bot1.pointerShowForTime(pos, 1000);