вторник, 23 марта 2010 г.

Scratch как театр 

Текст урока посвящается  Наталье Александровне Иванчевой, которая создала чудесную сказку про рыцарей и принцессу http://scratch.mit.edu/projects/electus/943526
Там у нее бьются рыцари в пустыни, плавают лебеди и сидит на берегу пруда прекрасная дама.
И все эти исполнители ролей управляются командами:



Мне очень близок и симпатичен подход, когда Scratch используется для создания цифровых историй и представлений. 
Интереснее всего про этот подход пишет Бренда Лаурел, которая специально думала и делала компьютерные игры для девочек и, кажется мне, что у нее книга или статья на эту тему была - Компьютер как театр
 
Главная идея этого урока, что создатель программы работает как режиссер спектакля. В Scrtatch эту метафору поддерживает так много элементов дизайна, что метафора театра здесь воспринимается естественно. Есть сцены, есть актеры, есть тексты пьесы. Собирать все это здесь в единый спектакль - одно удовольствие.


Текст пьесы

У нас есть текст пьесы и мы должны этот текст пьесы разбить на роли и раздать актерам. Каждый актер получает свою роль и свой текст. Этот текст своей роли он хранит в контейнере своего мозга. Мы не знаем как устроен контейнер и что там лежит. Мы говорим актеру - вот твой текст, помни его, будь готов весь этот текст проговорить. Если этот актер заболеет, то у нас должна быть возможность передать роль другому актеру.

Еще было бы здорово хранить и менять текст отдельно от актера. Например, если мы играем в России, то текст на русском. Поехали во Францию, просто поменяем текст и актеры будут произносить фразы на французском. Это чудесная возможность в обычном театре не доступна, но в компьютерном театре для нее нужно простое правило - хранить текст отдельно от формы его представления. 
Правило № 1 - хранить текст отдельно от поведения. 
- Где хранить? 
- В списке. Зайти в раздел Переменные  и Создать список. Про создание списка я писал в предыдущем уроке про презентации. Создали список - загрузили туда все фразы, которые говорит исполнитель. 

Назвал криво. Надо было назвать исполнителя Рыцарь 2, а локальный список назвать текст. Получился бы список под названием Рыцарь 2 текст.  -Yevgeny Patarakin 23.03.10 14:50 


Это и с точки зрения постановщика спектакля сильно упрощает дело. Захотим мы проверить, знает ли исполнитель свою роль. Так мы его можем попросить - расскажи весь свой текст: 

Если же мы захотим, чтобы актер последовательно проговорил все фразы, то мы добавим переменную и соберем такую конструкцию:  
   
 Про списки и их возможности и ограничения собрать отдельный урок. Здесь пока только правило хранения текстов. -Yevgeny Patarakin 23.03.10 16:06 

В продолжение темы про использование списков и создание интерактивных диалогов со зрителями есть отдельный рассказ Положи значение переменной  в мозг. С веселыми картинками:

Взаимодействие актеров

Подумаем о спрайтах как об актерах, которые участвуют в одном спектакле, и нам станет понятен весь ужас использования блока команды "Ждать". Представьте себе, что у актера роль, которая начинается во втором действии. И мы на полях его роли пишем 
Ждать 600 секунд,  
Показаться на сцене,
Сказать реплика 1 из текста
Ждать 5 секунд
Сказать реплика 1 из текста
И он, бедолага, сидит и учит свою роль с секундомером. А если что-то пойдет не так? Если свойства сцены изменились? Если партнер задержался или поспешил? Тогда все пойдет наперекосяк и весь наш спектакль развалится.

Что делать - использовать управляющие блоки "Передать" и "Когда я получу". Используем театрального суфлера или помощника, который подсказывает актерам, что им пора действовать. В принципе, каждый актер может помогать другому. Сказал свою реплику вслух и потом тихонечко, чтобы зрители не видели, прошептать партнеру - "А теперь твоя очередь, говори давай, Рыцарь Черного Лебедя". "Передать" - это как раз такие тайные сигналы, которыми обмениваются спрайты. Они не видны публики и служат для организации и синхронизации действий. Главное для организатора - развести сообщения для публики (Говорить, Думать) от сообщений для актеров. 

В отличие от настоящей театральной сцены актеры компьютерные актеры на сцене Scrath не слышат, что говорят другие актеры. Все фразы Сказать и Думать видит только зритель. Для внутреннего использования необходимо использовать команду Передать.


В качестве примера - диалог Лопатина и Дуняши из первого действия пьесы "Вишневый сад". Перед началом пьесы дадим актерам тексты их ролей. 

Создали список с текстом для Дуняши и экспортировали в этот список текст. 

Тоже самое сделаем и для Лопахина. Теперь у артистов есть роли.

Роли разучены (тексты в голове). Теперь мы хотим, чтобы партнеры начали обмениваться репликами.


Обратите внимание, как технично исполнители дергают друг друга за ниточки и передают ход. Сказал свою реплику и шепнул партнеру - "Теперь твоя очередь"  

В сети этот пример http://scratch.mit.edu/projects/patarakin/945353

Задание

Создавая примеры, в которых персонажи обмениваются фразами, обходитесь без блока  Ждать
blog comments powered by Disqus