MOLIER ART STUDIO
Воскресенье, 20.08.2017, 08:51
Приветствую Вас Гость | RSS
 
Главная Речь персонажа - Страница 2 - ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 3«123»
Форум » Wintermute Engine » Скрипты / Script » Речь персонажа
Речь персонажа
MolierДата: Воскресенье, 19.12.2010, 22:23 | Сообщение # 1
Группа: Администраторы
Сообщений: 328
Награды: 2
Репутация: 15
Статус: Offline
Награды
За создание сайта За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
Вопрос в седующем, актер произносит фразу, она появляется сверху,над актером, а как сделать, чтобы она была внизу экрана.

Не ошибается лишь тот, кто не чего не делает.
 
AmneziAДата: Вторник, 28.12.2010, 22:58 | Сообщение # 11
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
спасибо за уточнение))

Мой блог: http://pro100-blog.ru/

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...
 
Лена_ТретьяковаДата: Среда, 02.11.2011, 10:51 | Сообщение # 12
Группа: Проверенные
Сообщений: 10
Награды: 0
Репутация: 2
Статус: Offline
Награды
Помогите создать субтитры. В какую папку нужно кидать тот код P1LL0TT?
 
Jeka81Дата: Среда, 25.07.2012, 23:01 | Сообщение # 13
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
С отображением портрета и субтитров разобрался. Спасибо P1LL0TT! Но как быть если нужно отображать несколько эмоций? Например: обычное состояние, удивление, агрессия? Пробовал разобраться с подобной реализацией в исходниках WhiteChamber, но не смог. Вроде не сложно там на переменную повесили все, но у меня не получается. Может кто-нибудь помочь? Спасибо заранее!

Добавлено (25.07.2012, 23:01)
---------------------------------------------
И эту проблему решил! Спустя месяц!!! Никто не ответил... Форум жив? Или никто не знал как это сделать?


Jeka81
 
MolierДата: Пятница, 27.07.2012, 18:56 | Сообщение # 14
Группа: Администраторы
Сообщений: 328
Награды: 2
Репутация: 15
Статус: Offline
Награды
За создание сайта За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
Quote (Jeka81)
И эту проблему решил! Спустя месяц!!! Никто не ответил... Форум жив? Или никто не знал как это сделать?



Jeka81, Форум жив, если не трудно поделись опытом!


Не ошибается лишь тот, кто не чего не делает.
 
Jeka81Дата: Вторник, 31.07.2012, 09:22 | Сообщение # 15
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
Quote (Molier)
если не трудно поделись опытом!


Привет всем! Делюсь smile
Сразу оговорюсь - автор скриптов не я. Это работа авторов "Белой комнаты", я просто внедрил их в свою разрабатываемую игру.

В скрипт base добавляем строку:
global PortraitType = PORT_NORMAL;

Вот так выглядит кусок кода из скрипта персонажа, отвечающий за окошко субтитров и изображения портрета:

////////////////////////////////////////////////////////////////
global WinSubtitles;
var Portrait; //портрет говорящего
var Border; // рамочка вокруг окошка субтитров

// создаём окошко для субтитров
if(WinSubtitles==null)
{
WinSubtitles = Game.CreateWindow("subtitles_window");
Portrait = WinSubtitles.CreateStatic("speaker_portrait");
Border = WinSubtitles.CreateStatic("text_border");

// настройки положения этого окна
WinSubtitles.X = 0;
WinSubtitles.Y = Game.ScreenHeight-127;
WinSubtitles.Width = Game.ScreenWidth;
WinSubtitles.Height = 127;
WinSubtitles.Visible = false;

// настраиваем появление портрета говорящего
Portrait.X = 50;
Portrait.Y = -190;

// настраиваем границу
Border.X = 220;
Border.Y = -50;
Border.SetImage("interface\textborder.png");

}
else WinSubtitles.GetControl("speaker_name");

// позиция текста
this.SubtitlesPosRelative = false;
this.SubtitlesPosX =(Game.ScreenWidth/2)-12;
this.SubtitlesPosY = Game.ScreenHeight -(WinSubtitles.Height/2)-70;
this.SubtitlesWidth = Game.ScreenWidth - 530;

// Собственно, переопределяем метод
method Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment)
{
Game.Interactive = false;

if (PortraitType == PORT_NONE) // нет портрета
{
Portrait.SetImage("interface\empty.png");
}
if (PortraitType == PORT_NORMAL) // обычное состояние без эмоций
{
Portrait.SetImage("interface\portraits\PortraitNormal.png");
}
if (PortraitType == PORT_PUZZLED) // персонаж задумался
{
Portrait.SetImage("interface\portraits\PortraitPuzzled.png");
}
if (PortraitType == PORT_ANGER) // персонаж злится
{
Portrait.SetImage("interface\portraits\PortraitAnger.png");
}
if (PortraitType == PORT_FEAR) // персонажу страшно
{
Portrait.SetImage("interface\portraits\PortraitFear.png");
}

WinSubtitles.Visible = true;
this.SetFont("fonts/verdana_red.font");
this.Talk(Text, SoundFilename, Duration, TalkStances, 0);
WinSubtitles.Visible = false;
Game.Interactive = true;
}
////////////////////////////////////////////////////////////////

Далее P1LL0TT пишет что строчку
var Portrait;
надо заменить на:
global Portrait;
В данном случае этого делать не нужно!!!

Теперь, чтобы применить какую-либо из эмоций, надо в ваших скриптах перед actor.Talk применить один из вариантов ваших заготовок эмоций, например:

PortraitType = PORT_FEAR;
actor.Talk("Оё-й! Мне страшно!");

или

PortraitType = PORT_NORMAL;
actor.Talk("Это мой шкафчик.");

А, и еще! Не знаю зачем, но авторы "Белой комнаты" добавили в скрипт const следующие строки:

// portratis types
global PORT_NORMAL=0;
global PORT_PUZZLED=1;
global PORT_ANGER=2;
global PORT_FEAR=3;
global PORT_NONE=4;

Не разобрался для чего это, но на всякий случай тоже так сделал.
У меня все работатет.
Если что-то не получается - пишите, будем смотреть, может что-то упустил.
Удачи!


Jeka81
 
kalumbДата: Среда, 29.08.2012, 15:22 | Сообщение # 16
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 1
Статус: Offline
Награды
Здравствуйте!
Такая проблема с диалогами:
В диалоговом окне, когда выбираешь фразу (например "Привет"), актёр её произносит, а как указать звуковой файл для этой фразы?
 
Jeka81Дата: Четверг, 30.08.2012, 12:08 | Сообщение # 17
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
Quote (kalumb)
а как указать звуковой файл для этой фразы?


Самый простой способ такой:

actor.Talk("Привет!", "audio\sounds\Hello.ogg");


Jeka81
 
kalumbДата: Пятница, 31.08.2012, 10:13 | Сообщение # 18
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 1
Статус: Offline
Награды
Jeka81, я уже разобрался.
Я говорил про ветки диалогов, что когда жмём на ветку, то нельзя прописать, чтобы фраза прозвучала.
Я сделал так:
Убрал строчку
Quote
actor.Talk(Responses[Selected]);
. И в каждый блок ответа прописал talk актёра.

Ещё у меня проблема с положением субтитров, даже две:
1) Мне нужно, чтобы субтитры выходили в окне, чтобы у него был полупрозрачный серый цвет, а в нём субтитры.
2) В игре 640x480 длинные субтитры выводятся столбиком, это можно исправить если размер сделать меньше. А если мне нужен крупный размер?
 
Jeka81Дата: Пятница, 31.08.2012, 12:26 | Сообщение # 19
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
По-поводу полупрозрачного фона - Делаешь рамку (например, в Фотошопе), а внутреннее пространство заливаешь цветом в отдельном слое и снижаешь прозрачность на сколько надо. Сохраняешь в .png и всё.
По-второму - с таким не сталкивался, не знаю.


Jeka81
 
kalumbДата: Среда, 02.01.2013, 14:47 | Сообщение # 20
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 1
Статус: Offline
Награды
Jeka81, спасибо!
По второму, это наверно нужно было указать равнение в методе Talk, там нужно 2 поставить.

Добавлено (07.09.2012, 13:20)
---------------------------------------------
Здравствуйте!
Опять нужна помощь...
Я тут в справочнике по WME прочитал, что типа можно создать список реплик, то есть

Code
str0123 Привет!

Из этого должно следовать, что str0123 - это имя файла, а "Привет!" - это текст субтитров.
Как такое организовать?

Добавлено (05.12.2012, 11:58)
---------------------------------------------
Всё, разобрался...

Добавлено (02.01.2013, 14:47)
---------------------------------------------
Здравствуйте!
Вот такая проблема:
Есть предмет на сцене, по нажатию на него звучит фраза 1, по второму нажатию фраза 2, потом фраза 3. При четвёртом нажатии опять звучит фраза 1, потом фраза 2 и т.д. То есть при каждом нажатии звучит следующая фраза. Как такое организовать?

 
Форум » Wintermute Engine » Скрипты / Script » Речь персонажа
Страница 2 из 3«123»
Поиск:

Copyright MyCorp © 2017
!!! На сайте могут находиться статьи, которые, честно и не помню, откуда они у меня появились, одним словом нет информации о первоисточнике и авторе, если на них наткнётся автор, просьба к нему написать мне, чтобы я смог поставить ссылку на источник. !!!