Речь персонажа
|
|
Molier | Дата: Воскресенье, 19.12.2010, 22:23 | Сообщение # 1 |
Группа: Администраторы
Сообщений: 332
| Вопрос в седующем, актер произносит фразу, она появляется сверху,над актером, а как сделать, чтобы она была внизу экрана.
Не ошибается лишь тот, кто не чего не делает.
|
|
|
|
AmneziA | Дата: Вторник, 28.12.2010, 22:58 | Сообщение # 11 |
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
| спасибо за уточнение))
Мой канал о моделизме: https://goo.gl/LgXUK9
На изломе неба Был рожден наш мир. Создавая землю, Первый, Врядли ведал что творил...
|
|
|
|
Лена_Третьякова | Дата: Среда, 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 |
Группа: Администраторы
Сообщений: 332
| Quote (Jeka81) И эту проблему решил! Спустя месяц!!! Никто не ответил... Форум жив? Или никто не знал как это сделать?
Jeka81, Форум жив, если не трудно поделись опытом!
Не ошибается лишь тот, кто не чего не делает.
|
|
|
|
Jeka81 | Дата: Вторник, 31.07.2012, 09:22 | Сообщение # 15 |
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
| Quote (Molier) если не трудно поделись опытом!
Привет всем! Делюсь Сразу оговорюсь - автор скриптов не я. Это работа авторов "Белой комнаты", я просто внедрил их в свою разрабатываемую игру.
В скрипт 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 прочитал, что типа можно создать список реплик, то есть Из этого должно следовать, что str0123 - это имя файла, а "Привет!" - это текст субтитров. Как такое организовать?Добавлено (05.12.2012, 11:58) --------------------------------------------- Всё, разобрался... Добавлено (02.01.2013, 14:47) --------------------------------------------- Здравствуйте! Вот такая проблема: Есть предмет на сцене, по нажатию на него звучит фраза 1, по второму нажатию фраза 2, потом фраза 3. При четвёртом нажатии опять звучит фраза 1, потом фраза 2 и т.д. То есть при каждом нажатии звучит следующая фраза. Как такое организовать?
|
|
|
|
|