catpad: (Default)
[personal profile] catpad

Так как я сейчас делаю новый сериал (см. несколько последних записей [livejournal.com profile] monogatari), у меня появилась идея написать программу, которая по заданному сценарию сама рисовала бы кадры комикса.

Прежде всего, нужно придумать язык описания сюжета. Мне кажется, это должно быть что-то объектно-ориентированное. То есть, для начала задаются объекты-сцены, участвующие в комиксе, как например: "Комната Гамлета", "Зал во дворце", "Лужайка" и т.д.
Потом объекты-персонажи: "Гамлет", "Полоний", "Тень отца Гамлета",...
У каждого такого объекта могуть быть свойства: самые важные из них - это из каких картинок состоит человек (голова, туловище, руки, ноги), и из каких картинок состоит сцена.
Другими свойствами могут быть "время суток", "время года" и тому подобное у сцен, а у людей это может быть, скажем, "настроение" или "действие". Так, если человек прислушивается, то голова его должна быть наклонена в сторону собеседника. Если он объясняет, то рука должна указывать куда-то.
Само собой, для кадров должен быть задан текст, который произносят персонажи, и программа должна уметь расположить его таким образом, чтобы не слишком закрывать рисунок.

Нужно также уметь задавать множество эвристик. Например, какие предметы должны стоять на столе, а какие на полу. Что должно висеть на стене, что человек может держать в руках. Если кто-то говорит по телефону, то программа сама должна вкладывать ему трубку в руку и прикладывать к уху.
Кроме того, она должна уметь задавать расположение предметов на оси Z, то есть, что на переднем плане, а что на заднем.

Обязательно нужно разрешить программирование "низкого" и "высокого" уровня. Причём "высокий" уровень может быть как угодно высоким. Вот что я имею в виду:
На низком уровне у меня должна быть возможность задавать, какие именно предметы я хочу видеть в той или иной сцене, на каких местах (возможно даже с помощью координат) и т.д. Я должен уметь задавать интенсивность освещения, шрифт текста речи персонажей и тому подобное.
На более высоком уровне, я могу писать просто "комната во дворце", а программа эвристическим путём должна подобрать подходящие картинки и расположить их соответствующим образом. Могу написать "ночь", и программа сама зажжёт свечи или лампы и нарисует месяц за окном.
Конечно же, необходима обширная база данных с картинками и эвристиками.

На ещё более высоком уровне я вообще не должен разбивать сценарий на кадры. Если я пишу, что "двое разговаривают по телефону", то программа может решить создать несколько кадров - один из комнаты первого персонажа с телефоном в руке и соответствующим текстом, второй - из комнаты второго персонажа с телефоном в руке и текстом и так далее. Конечно же, должна отслеживаться последовательность в использовании предметов. Если для одного из персонажей выбран красный телефон, то он должен оставаться с ним на протяжении всех кадров.

Программа также должна уметь выбирать подходящие ракурсы и "наезды камеры" или позволять указывать такие вещи в качестве hints.

Всё это я очень хорошо себе представил именно потому, что расписал свой сценарий по кадрам, а теперь на 80% выполняю чёрную работу - то есть леплю готовые персонажи на готовые сцены, изменяя ракурсы, некоторые предметы в комнате и время суток. Кроме того, большая морока изменять положение рук, ног, головы и тому подобного.
Я очень ясно вижу, что такая работа хорошо поддаётся объектно-ориентированному подходу и модульной архитектуре, то есть от низкого уровня описания к высокому.
Вот бы такой процесс автоматизировать - и тогда каждый сможет моментально реализовывать какой-нибудь свой сценарий.

Date: 2003-10-02 10:37 pm (UTC)
From: [identity profile] cema.livejournal.com
Где-то я видел подобные разработки, на уровне академических игр, а не индустриальном. Сейчас поискал, ничего не нашёл ни google, ни teoma.

Date: 2003-10-02 11:21 pm (UTC)
From: [identity profile] catpad.livejournal.com
А что такое "академические игры" ?

Date: 2003-10-02 11:26 pm (UTC)
From: [identity profile] catpad.livejournal.com
Прошу прощения, я неправильно понял предложение.
Да, конечно, это возможно только на теоретическом уровне, сделать что-то по-настоящему серьёзное - это уже почти AI :)

Date: 2003-10-03 01:54 am (UTC)
From: [identity profile] greenadine.livejournal.com
Идея хорошая - как раз по масштабу твоего свободного времени :)
Начни с системы "под себя", не заморачивайся с "общим случаем" - скоро увидишь множество камней и методов их обхода. Все перепишешь. И так 7 раз :)

Я не уверен в реальности "самого общего подхода" - иначе мы докатимся до кнопки "закачать роман и смотреть комиксы по нему". Это примерно так же далеко от реальности как "сгенерить видео по сценарию".

Date: 2003-10-03 05:56 am (UTC)
From: [identity profile] catpad.livejournal.com
Если бы я взялся делать, то конечно же не стал бы морочиться ни с каким "общим подходом". Мне кажется оптимально сделать сначала описание объектов, а потом покадровое описание. Вполне понятно и, может быть, даже выполнимо :)

Date: 2003-10-03 05:08 am (UTC)
From: [identity profile] red-crow.livejournal.com
*всегда прочитает и вздохнет*

Date: 2003-10-03 06:19 am (UTC)
From: [identity profile] greenadine.livejournal.com
Я слышала о похожих разработках для компютерных игр... Там это еще и с сюжетом было завязано, то есть, он тоже генерился автоматически в зависимости от установок типа характера персонажа (со множеством параметров), типа конфликта, выбора игрока и т.п. Но там тоже все было теоретически.

Date: 2003-10-03 07:24 pm (UTC)
From: [identity profile] catpad.livejournal.com
Ну, в генерацию сюжета я совсем не верю. А вот картинки делать попробовать очень даже можно.

Date: 2003-10-04 07:50 am (UTC)
From: [identity profile] greenadine.livejournal.com
А в чём принципицальная разница, на твой взгляд? В художественном тексте формальные структуры тоже выделяются (см. Пропп, например).

Date: 2003-10-05 06:05 pm (UTC)
From: [identity profile] catpad.livejournal.com
Да, я читал Проппа. И идеи его довольно очевидны - всё тот же pattern language, который так популярен сейчас в computer science. Да я и сам свой диплом написал по pattern language, который сам же и придумал. Но всё это не значит, что из такиx формальных структур можно генерировать тексты (скажем точнее, интересные тексты).
Но я и не говорю, что можно генерировать интересные картинки. Это задача такого же уровня сложности, то есть разницы я никакой не вижу. Я же просто хочу описывать картинки, и генерировать их по описанию.
Page generated Feb. 6th, 2026 11:51 pm
Powered by Dreamwidth Studios