catpad (catpad) wrote,
catpad
catpad

Безумные идеи Моногатари

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

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

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

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

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

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

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

Subscribe

  • (no subject)

    Зачем-то прослушал «Трудно быть богом». Последний раз читал её в школе. Лишний раз убедился, как же всё-таки быстро эта так называемая литература…

  • (no subject)

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

  • (no subject)

    Надо мной все смеются, что я смотрю Киселёва. Но это иногда приносит свои плоды. Вот, например, необыкновенный приступ честности от плачущей карги:…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • (no subject)

    Зачем-то прослушал «Трудно быть богом». Последний раз читал её в школе. Лишний раз убедился, как же всё-таки быстро эта так называемая литература…

  • (no subject)

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

  • (no subject)

    Надо мной все смеются, что я смотрю Киселёва. Но это иногда приносит свои плоды. Вот, например, необыкновенный приступ честности от плачущей карги:…