Pull to refresh

Comments 69

Коты хороши, в меру упитанные. Еще бы ширина мордахи менялась :)
И ещё: сколько ни щёлкал, так и не удалось нащёлкать скоттиш фолда :-)
Точно! Найден фатальный недостаток :)
Некоторые коты без овала морды, так задумано?
В статье же написано про это)
Ах да. Не вчитывался в код, прошу прощения
UFO landed and left these words here
Я думаю у них рандом нечестный.
UFO landed and left these words here
Ну если снова посетит вдохновение, обязательно сделаю :) Хотелось бы ещё выгрузку в файл сделать. Но увы, подустал от котов немного.
Сделайте-сделайте! Можно будет и историю с отменой сделать.
Только хотел предложить сделать кнопку «предыдущий кот», чтобы можно было вернуть результат предыдущей генерации. А то столько чудесных котиков пролистывается, пока жмякаешь на кнопку «Generate!»…
А ещё слайдеры для кастомной настройки кота. Ведь в коде много рандомных параметров — вот все рандомы в слайдеры переделать хорошо бы.
Лучше прикрутить генетические алгоритмы с количеством лайков от пользователей вместо фитнеса. Тогда скоро будет выведена самая няшная порода котэ.
Няшность котейки каждый определяет по-своему, и потому остановиться на какой-то одной породе вряд ли получится. Так что потребуется алгоритм с поддержкой нескольких локальных максимумов (ну или минимумов, смотря что мерять).
Статистика такая гадкая наука, которая навязывает индивидуумам мнение большинства ;)
Производительность скрипта следует изменять в котах в секунду)
Если честно, то не особо думал о производительности, так как анимации нет, просто генерация статичного изображения.
Ну так вдруг человек захочет сгенерировать столько котов, сколько влезет на его жесткий диск?
Надо же ему будет знать, как долго будут генериться коты)
Никогда не понимал, почему нельзя таким же образом генерировать скины для монстров/зомби/прочих врагов в играх? Насколько интереснее был бы, например, мой любимый Day Z, если бы каждый зомби там был чуть-чуть другим, отличался от остальных одеждой, лицом, ростом и фигурой. А то сейчас там пяток стандартных скинов и всё. Эххх…
Возможно потому, что врагов по цвету/виду как раз и можно отличить? Тот же серьезный сем первый — там были противники, которые головы в руках носили. И были разных типов. Отличить можно было только по цвету. В простых играх — то же самое.

без цветовой дифференциации штанов общество лишено цели
Зато во-первых реалистичнее (к этому же вроде стремиться большинство современный игровых движков?), во вторых представте как здорово было бы похвастаться: «Играл вчера в STALKER, такого худющего кровососа видел возле „Юпитера“ — кожа да кости, хромает, рожа облезлая… болеет он что-ли? Так чего-то жалко его стало, что даже убивать не стал. А собаки в последнее время наоборот здоровые пошли, и жирные — просто кабаны, а не собаки. Недавно за мной такая по всей локации гонялось — еле смылся. Радиация на них так действует что ли?...»

Круто ведь было бы, разве нет?
ИМХО это немного другое. Например, в GTA (по моему начиная с San Andreas) автомобили могли генерироваться с повреждениями, или тюнингованные. Да, это было круто, это было разнообразие. А теперь возьмем какую нибудь сложную миссию. Вы ее пытаетесь пройти раз 20, уже приноровились что и как делать и тут БАЦ — модель чего то в миссии другая. Подсознательно вы будете вопринимать уже эту модель как нечто другое, и опыт прошлых попыток не будет задействован мозгом полностью. Возьмем что то попроще — любой метч3. Допустим надо совмещать предметы по цветам. Когда у всех предметов одинаковая форма — все легко воспрнимается. А теперь представьте, что формы — разные. Мозг будет думать что желтый квадрат и желтый кружок — это нечто разное.
Возможно вы и правы. В single player играх, где можно сохраниться, а потом ковырять одного и того же монстра пока не пройдеш — да, наверное игроку будет удобнее когда этот монстр всегда один и тот же на вид и ведет себя одинаково.

А в ролевых open world играх в онлайне? Где нет кнопки «сохранить» и одна и та же ситуация не повторяется? Неужели кто-то откажется от фантастического мира, заполненного разными зомби, разными на вид и с разными боевыми качествами? С разным поведением? Не разделённые на пару классов как в том же HL — «обычный зомби», «быстрый зомби» и т.п. — а различными? Идеш — смотриш идет тощий чахлый зомби. Думаеш что он немощный и неопасный, а он вдруг становится на четвереньки и прыгает на тебя… Или отрывает себе руку и кидает в тебя этой рукой. Демонстрирует уникальный внешний вид и поведение (которое тем не менее вписывается в какие-то рамки под названием «вид и поведение зомби»:)). Я бы в такую игруху с удовольствием поиграл.
Боюсь что данный спор выходит за рамки топика о котиках :-) Вкратце — боевые качества должны так или иначе визуально определяться игроком.
Да, похоже мы немного отошли от темы. Спасибо за дискуссию :)
Когда у нас есть зомби типа 3 в левом углу комнаты (x: 132.381, y:472.785, z:23.542), то сервер передаст игроку пакет содержащий три double и один int. Теперь представим что каждый тип может наследовать множество особенностей, к примеру то-же отрывание руки, значит эту информацию нужно передать клиенту, предварительно прочитав ее из памяти сервера (в которой для каждой модели будет уже не четыре переменных, а на порядок больше, даже если модель наследует базовые свойства). Это создаст дополнительную нагрузку на сервер, на канал и на клиента, так как все это надо еще отрендерить. В ближайшем будущем (5 лет), думаю что популярностью пользоваться не будет, но вот когда в виртуальные миры можно будет полностью погрузиться (не обязательно всем сознанием), то уникальные модели будут необходимы для поддержания ощущения «реальности».
Это бы сильно увеличило требования к видеопамяти. Одна текстурка хорошего качества занимает порядка четырёх мегабайт, а пямять нужна не только для текстур монстров. Кроме того, генерация подобных процедурных текстур — довольно требовательный к ресурсам процесс (например, потому что обычно выполняется силами CPU), который сильно увеличил бы время загрузки.

Ну и нельзя забывать, что сделать процедурную карту, генерирующую правдоподобные и одновременно с этим разнообразные рожицы, куда сложнее, чем нарисовать несколько текстурок для зомби.


Хотя с другой стороны, в таких играх, как Skyrim или Sims, скины, как я понимаю, генерируются динамически… Хм… Тогда, наверное, выше я в чём-то ошибся.
Возможно, потому, что в трехмерных играх это не просто скин (текстура). Я не спец в computer graphics, но насколько я понимаю, большинство движков используют разные ухищрения, чтобы модельки выглядели красиво и не тормозили. Всякие там карты освещения, карты нормалей. Если «переодеть» персонажа в случайную одежду, придется для него рисовать дополнительный контент, и делать это скорее всего вручную. Можно, конечно, сделать кучу вариаций и их смешивать. Так сделано в GTA, начиная с San Andreas, если не ошибаюсь.
А для изменения роста/фигуры надо писать движок соответствующий, это в игре вроде ArmA2 (и, как следствие, DayZ) вроде не сильно нужно…
К этой популяции надо прикрутить рейтинг как критерий выживаемости и добавить генетические алгоритмы.
Идея для монетизации — добавить голосование посредством СМС за лучших, а затем за спасение кандидатов на «вылет».
А можно еще так
=^..^=

Кот, выглядывающий из-под стола) Если взять точки за глазки)
Есть еще правильные программисты! Может и правда стоит завести на Хабре хаб Коты?
Сразу напомнило котов из Mew-Genics
скриншотик

UFO landed and left these words here
Даешь котов! :)
И таким же образом еще туловище можно пририсовать, верно?)
Ну это, на мой взгляд, немного сложнее, ибо туловище имеет куда больше форм, тем самым сложнее сделать это красиво, сложнее чем с мордой. Но есть куда развиваться)
И вид сзади (простите).
Здесь не место политике)
Тогда уж сразу грант выспрашивать на генератор Алин.
Иногда получаются очень страшные котики. А иногда и не котики вовсе.
А иногда голова котика без обводки
Скрытый текст

Странно, что никто не вспомнил про лица Чернова. Автор, если вы сделаете лица котов вертикально асимметричными, и замените рандомы на внешние параметры, получится отличное средство визуализации — количество степеней свободы у кошачьих лиц будет поболее, чем у человечьих :)
Сразу придумалось миллион применений, начиная от аватарки пользователя и заканчивая персонажами в 2D игре )
Я делаю небольшую браузерную 2D игру для одного ресурса. Вполне возможно что для смеха вставлю туда эту штуку :) Применений действительно масса.
Как-то был пост на Хабре, где делали процедурные пиксельные аватарки, что-то похожее и тут.
А чего они такие страшные? Кот хорош, когда они мимимишный. Сейчас, к сожалению, это не так)
Просто погладь кота
мимими
habrahabr.ru/post/195142/#comment_6771436
В самом верху же написано :) Да, это так задумано.
Изначально это был баг, перешедший из категории багов в категорию фич, потому что мне этот эффект понравился.
Имхо, один глаз закрывается слишком часто. Одноглазых должно быть мало, а тут их большая часть.
А вообще, спасибо за котов!
а когда рандомный вид сзади сделаете?
например:
image
Очень круто! Когда-то хотел тоже сделать генератор портретов для игры, но дальше идеи дело не пошло. А тут действительно большой объем работы сделан до конца и результат вполне прикольный!
Сколько тысяч лет мне придется жать на кнопку Generate, чтобы получить котейку без контура, с круглым носом и бантиком?
Генератор аватарок для анимешных ресурсов :)
Классно, но не живые. Исправил тут: Добавил анимации тут.Жать на кнопку Live.

Я когда-то на синклере подобное (мультяшное лицо) делал. Всё мечтал динамики добавить, но перфоманса не хватало.

Анимация неплохая, но… какая-то неестественная для кота. Исчезающая обводка, точки на щеках, странным образом двигающиеся усы. Как-то странно выглядит.
Ну так и кот не совсем канонический.
В коде дергается случайный параметр от минимального до максимального значения с произвольным периодом. Можно подобрать периоды для нескольких «случайных» бросков — тогда получим более естественную анимацию.
А вообще это просто прикол. Да и обожаю я генераторы псевдослучайных чисел, особенно для подобных задач.
Я вообще люблю всякие процедурные алгоритмы :) А насчет прикола, ну если прикол, тогда вполне годно.
Only those users with full accounts are able to leave comments. Log in, please.