В статье вы узнаете о технической оптимизации творческого процесса создания истории. Материал будет интересен сценаристам, писателям и другим создателям историй — не важно, в какой форме вы их создаете. Мои технические решения по автоматизации с помощью компьютерных технологий вылились в бесплатный программный продукт — ultra_outliner, историю создания которого и основные возможности я расскажу.
ultra_outliner — это бесплатный инструмент для оптимизации разработки художественных историй карточным методом. Он выполнен в форме графического приложения и адресован сценаристам и писателям, а также игровым дизайнерам и разработчикам квестов. Инструмент позволяет работать с виртуальными карточками, персонажами, их характеристиками (и измерениями), локациями и специальными объектами. В составе ultra_outliner присутствует несколько редакторов, которые позволяют выстроить структуру истории, сюжетные линии, черты персонажей и др.
История появления
Писать сценарии я начал со старших классов для небольших любительских кино-проектов. Они всегда писались "от сердца", без какой-то структуризации и организации творческого процесса. Но в какой-то момент количество перестало перерастать в качество, и пришло время обратиться к теории.
После изучения определенной литературы, относящийся к Голливудской школе (Роберт Макки, Джон Труби, Сид Филд и др.) были сделаны следующие выводы:
- кино-сценарий — это лишь один из вид художественной истории;
- для разработки истории существует ряд сложившихся практик, которые, при их соблюдении, позволят сделать историю интересной;
существует вполне формализуемые правила разр - "от сердца"" выполняется только первые 15% работы, дальше начинается аккуратная проработка;
- разработка истории — сложный итеративный процесс, где требуется постоянное переписывание (writing is rewriting);
- все этапы проработки истории давно известны и практически совпадают независимо от жанра и др.
При этом, весь процесс разработки происходит на бумаге за счет написания текста. У различных авторов встречаются интересные схемы для оптимизации определенных фрагментов процесса разработки, которые позволяют существенно его упростить, однако в графическом подходе здесь отсутствуют общепринятые практики.
Таким образом, из данного процесса можно выделить определенную технологию, а любая технология — подвергается автоматизации.
У сценаристов одна из наиболее популярных практик разработки истории — это карточный метод. В нем ключевые события кратко описываются на бумажных карточках, которые затем комбинируются на большом столе. На выходе получается структурный план истории, по которому уже достаточно просто писать сам сценарий. Однако, бумага в данном случае не практична, т.к. в нее тяжело вносить правки и плотность информации значительно ниже современных LCD дисплеев.
Существует достаточно большое количество ПО для работы с карточками, наиболее полный обзор можно посмотреть здесь. Я надеялся найти что-то достойное как практик, однако, как оказалось, существующие программы либо неудобные, либо застряли по технологиям на уровне Windows 95, либо вообще являются бесполезной красивой игрушкой.
Поэтому, пришлось делать инструмент самому.
История разработки
Все началось с того, что работая над одним сценарием и устав от бумажных карточек, я сделал для себя небольшой инструмент на QT, который позволял создавать виртуальные карточки и перемещать их по виртуальному столу. В процессе появлялись новые функции и возможности. Таким образом, работая над историей, вместе с тем я развивал программу. Тогда у нее был всего один пользователь.
Когда я закончил сценарий был закончен, я ради интереса выложил программу на несколько специализированных русских и зарубежных форумов, и так нашел единомышленников. Это дало новые идеи для развития, и программа постепенно улучшалась. Потом для централизации обсуждения был сделан минимальный сайт, на котором я стал выкладывать новые версии.
В какой-то момент возникла проблема, что несмотря на достаточно богатую функциональность программы для пользователей было не очевидно как ее использовать. Тогда пришлось сделать паузу в разработке и сделать минимальную но исчерпывающую документацию, которая также доступна на сайте.
В настоящий момент проекту около 8 месяцев, он насчитывает около 30К строк кода и продолжает развиваться в статусе хобби-проекта. Некоторые технические решения показались мне интересными и потенциально полезными для других — поэтому я опубликовал их на Хабре (а именно, про реализацию undo/redo модели и маршрутизацию соединений).
Цели и задачи
ultra_outliner является инструментом для создания различных художественных историй, который изначально нацелен на сценаристов и писателей. При этом, он также может быть не менее эффективно использован разработчиками игр, квестов и др.
В отличии от чтения текста, восприятие истории в структурированной графической форме с дополнительными пометками в разы увеличивает скорость восприятия фрагментов истории. Таким образом, чтобы вспомнить детали некого фрагмента истории не нужно внимательно перечитывать 5 страниц текста — достаточно бегло взглянуть на заголовки карточек, после чего можно приступать к внесению правок. Именно поэтому карточный метод пользуется такой популярностью.
Однако перенос карточек в виртуальное пространство дает следующие преимущества:
- стол обретает неограниченные размеры;
- возможность хранить различные версии, копии;
- возможность внесения правок в карточки;
- и др.
Рассмотрим основные задачи, на решение которых направлен ultra_outliner.
Увеличение производительности разработчика истории за счет автоматизации рутинных процессов
В первую очередь, это относится к простоте внесения правок в карточки. Также не нужно каждый раз раскладывать карточки на столе — достаточно открыть компьютер. Можно хранить несколько виртуальных столов с одним и тем же набором карточек и др.
Возможность рассказчику увидеть свою историю в различных проекциях
Здесь речь идет о возможности независимой разработки различных аспектов истории независимо (разных сюжетных линий, персонажей и др.). Так, например, можно разложить на одном виртуальном столе несколько сюжетных линий сверху вниз рядом друг с другом, и только потом приступать к их композиции. Не менее важна возможность контролировать раскрытие черт персонажей независимо от сюжетов.
Повысить совокупное качество истории
Чем детальней отдельные компоненты истории проработаны по отдельности, тем выше качество истории при их композиции. Это позволяет в первую очередь избавиться от ошибок, а во вторую — сделать историю глубже и интересней.
Концептуальные основы
В центре ultra_outliner находятся настраиваемые карточки. Карточка может описывать определенную базовую сущность (событие, персонаж, сюжетная линия и др.). Для каждого вида базовых сущностей используется свой шаблон, который разработчик истории может настроить под себя.
Карточки могут гибко настраиваться с помощью следующего вида полей:
- строка текста без переноса;
- много-строчный текст;
- растровое изображение, которое может быть использовано для иллюстрации или storyboard-ов;
- список как выбор одного варианта из нескольких;
- флаги — список с возможностью выбора от 0 до нескольких цветных элементов;
- интенсивность — числовое поле, которое визуализируется в виде полоски, раскрашенной по картографическому принципу;
- цветная полоска.
При этом, на виртуальном столе визуализируются лишь непустые поля. Это дает возможность максимально повысить плотность информации на графическом поле.
Возможности и функциональность
В данной статье я не буду рассматривать технологию разработки истории в целом, а лишь опишу основные возможности инструмента. Более того, каждый сам выбирает для себя технологию, и я не хочу загонять кого-то в узкие рамки.
Работа со свободным листом
Свободный лист представляет собой графический документ, в котором можно свободно перемещать экземпляры базовых сущностей и создавать различные связи между ними. С помощью этого можно решить следующие задачи:
- построение сюжетных линий;
- раскрытие персонажей;
- построение сети локаций;
- использование сокровищ;
На свободном листе могут быть созданы экземпляры событий, персонажей, сюжетных линий, локаций и сокровищ.
Разработка сюжетных линии
Сюжетная линия начинается с так называемой "головы" и далее соединяет цепочку событий.
Для себя я выработал практику, что сюжетные линии идут сверху вниз, располагаясь параллельно друг другу. Вертикальная шкала примерно соответствует шкале времени.
Раскрытие черт персонажей
В соответствии с учением Макки, все персонажи существуют в истории для того, чтобы помочь раскрыть другому персонажу какую-то его черту. При этом, раскрытие происходит через действие, описываемое в соответствующем событии.
Поэтому персонажи могут иметь черты (которые нельзя отсоединить от персонажа), которые через цепь событий можно соединять с персонажем-оппонентом. Данный этап позволяет проверить, что все требуемые черты персонажа в истории раскрыты.
Создание структурного плана истории
Структурный план истории представляет собой выстроенную последовательность событий по иерархии Акт — Эпизод — Событие. Здесь Акт представляет собой вертикальную линию, а эпизод позволяет добавлять в себя карточки как в группу.
В ходе проработки структурного плана, например, необходимо сбалансировать повествование по ритму (ввести тип карточки Действие / Диалог — и сбалансировать чередование). Группировку по эпизодам есть смысл проводить в контексте одной ценности.
Карточки, которые попадают на центральную полосу формируют окончательный структурный план. Рядом находятся запасные карточки, которые в итоге не попали в историю.
Экспорт в читаемый формат
Структурный план может быть экспортирован в текстовый формат, чтобы отправить почитать друзьям. В зависимости от вашего стиля и детализации получится либо текстовый структурный план, либо синопсис.
Также из всех графических инструментов можно экспортировать в растровое изображение, чтобы получить снимок виртуального стола прямо в виде карточек.
Узнать больше
Вся функциональность редакторов подробно описана в документации.
Если материал окажется интересным, то в будущем я подготовлю сквозной пример разработки истории с помощью ultra_outliner на примере какой-нибудь истории, где достаточно детально опишу каждый шаг.
Для тех, кто хочет эту информацию быстрее — могу рекомендовать немного устаревший материал в виде моей статьи на cinemotion. Но несмотря на то, что там используется достаточно устаревшая версия, в целом идея не изменилась.
Заключение
Программа абсолютно бесплатная и скачать ее можно с сайта. В дистрибутиве лежит пример готового проекта.
Сейчас поддерживаются 32 и 64 битные версии Windows начиная от XP, а также Mac OSX и Linux. В будущем возможно появление мобильного приложения.
Функциональность программы динамично развивается, и поэтому в каждой новой версии добавляется что-то интересное. На странице скачивания можно подписаться на уведомления о новых версиях.
Если вам понравилась программа и появились потребности в новой функциональности или хорошие идеи — пишите на форуме или на почту поддержки, и в следующих версиях это будет реализовано.
Автор: ultrablox