Kaboms

+1764
с 2019

Unreal Engine Developer

49 подписчиков
8 подписок

Расскажу как закончил карту третьего уровня, добавил Кота в Сапогах и написал скрипты для переноса карт и ландшафта из оригинальной игры.
Бонус - секретная комната в игре, о которой узнал только при ковырянии оригинала (и о которой на самом деле знают все фанаты).

85
8
3
3

Игра становится ближе к званию "Ремейк".С поправкой на то, что я все-таки макака-джун в Blender и 3D моделировании с бюджетом в виде чистого энтузиазма. Рассказываю о прогрессе за последние 4 месяца.

186
22
5
1
1
Мне кажется цвета немного перенасыщены, у оригинала более сдержанная палитра. Это особенно заметно на траве, явно выделяющейся на фоне текстур земли. Но в целом очень круто, был бы рад поиграть в такой ремейк!

С прошлой новости прошло больше 4 месяцев - самое время поделиться с вами прогрессом за это время.

47
20
1

Прости меня Шрек, ибо я согрешил и сделал про тебя раннер для Яндекс Игр. Делюсь впечатлениями о Godot, рассказываю как я докатился до жизни такой и как подружить Godot c HTML5 и Яндекс SDK.

47

Собрал и протестировал AI инструменты - от генерации иконок и бесшовных текстур до Motion Capture. Все инструменты бесплатны и доступны OpenSource.

145
1

И первый взгляд на переработанный первый уровень.

66

Предисловие и нюансы разработки

32
","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Чтобы получить Callback из JS функции - создаем его в GDScript:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"var OnLoadDataCallback = JavaScript.create_callback(self, \"OnLoadData\")\nvar window = JavaScript.get_interface(\"window\")\n\nfunc _ready():\n window.onLoadDataCallback = OnLoadDataCallback\n\n# ВНИМАНИЕ Всегда добавляете аргумент args,\nдаже если не собираетесь передавать никаких аргументов\nиначе функция не вызовется.\nПроверенно опытным путем убитых 40 минут в стиле А ПАЧЕМУ НИРАБОТАЕТ\nfunc OnLoadData(args):\n pass","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

JS:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Кстати, для того, чтобы передать массив в JS нужно сначала его конвертировать в JS Array. Я об этом не знал и не мог понять, почему не сохраняются купленные скины.

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"var array = [\"1\", \"2\", \"3\"]\nvar jsArray = JavaScript.create_object(\"Array\")\nfor item in array:\n\tjsArray.push(item)\nwindow.foo(jsArray )","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Выключаем звук при сворачивании игры и показе рекламы"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для понимания, что игрок свернул или развернул игру я использовал следующий код вставленный в HTML Header :

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"document.addEventListener(\"visibilitychange\", (event) => {\n if (document.visibilityState == \"visible\") {\n tabActivated();\n } else {\n tabDeactivated();\n }\n});","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Внутри игры можно использовать примерно такое:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"func TabActivated(args):\n\tvar MasterIndex = AudioServer.get_bus_index(\"Master\")\n\tAudioServer.set_bus_mute(MasterIndex, false)\n\nfunc TabDeactivated(args):\n\tvar MasterIndex = AudioServer.get_bus_index(\"Master\")\n\tAudioServer.set_bus_mute(MasterIndex, true)","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Такой же подход используется для выключения звука при показе рекламы.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Локализация"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Я просто следовал документации Godot по добавлению локализации в игру. У меня она занимает один *.csv файлик с 11 строками данных.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Чтобы получить текущий язык, нужно использовать переменную из SDK ysdk.environment.i18n.lang

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Весь код на стороне игры для локализации примерно такой:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"// Для be, kk, uk и uz яндекс рекомендует включать русский язык.\nvar LangReferences = {\n\t\"be\": \"ru\",\n\t\"kk\": \"ru\",\n\t\"uk\": \"ru\",\n\t\"uz\": \"ru\",\n\t\"ru\": \"ru\",\n}\n\nfunc OnSDKInit(args):\n\tvar locale = LangReferences.get(window.ysdk.environment.i18n.lang, 'en')\n\tTranslationServer.set_locale(locale)","lang":""}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Скины?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

В игре есть монетки, которые надо на что-то тратить. Нормальные люди делают скины на персонажей и продают усилители. Но это в нормальных играх, а у нас тут раннер про Шрека для Яндекс Игр, поэтому в мою альтернативно одаренную голову пришла идея продавать скины для... сортира.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Скин с клоуном можно получить за просмотр рекламы.","image":{"type":"image","data":{"uuid":"bad745ef-1bba-5f52-a417-fe65e144898d","width":1080,"height":1920,"size":447066,"type":"png","color":"404041","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAdgB2AAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgf/xAAjEAACAgEDAwUAAAAAAAAAAAABAgMEBQARISIxQgYSExVR/8QAFgEBAQEAAAAAAAAAAAAAAAAABQQG/8QAJhEAAgAFAgUFAAAAAAAAAAAAAQIAAxEhQRIxEyJRYYFxkZKx4v/aAAwDAQACEQMRAD8AdYzK2IKFaK36uMbOswhjMMm3xrCCFPRsSh6nPPGpSFeZWQj0BOrmz8s46dor4tEoXXYY/OM9e8GpbccsryHKWZi7FjLHC4R9/JR7eAe40ioIAsfJv5vvEJNTWoPoLeLbRXK2DwtjBUHsYilK31++710Y7ugVzyPIcH9HB1m0mzFL6WI5nzDYkSiAdI2XHU394nuSo0YMjaggpwRxxzuiIkYCqoYgAAdgNOSHZpSkm9B9QbORVmMAMmP/2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Вдохновляемся скинами из CS GO и клепаем следующий кринж. Хотели сортир в стиле скина \"Азимов\"? Я тоже нет, а он теперь есть и обществу придется с этим жить. Несмотря на всю кринжовость и лоск \"How Do You Do, Fellow Kids\" наклепал 15 скинов и некоторые мне даже нравятся.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"904eb012-4705-59da-8020-cdbddcde0538","width":212,"height":300,"size":248553,"type":"gif","color":"967d9f","hash":"","external_service":[],"duration":7.5,"isVideo":false,"has_audio":false}}}]}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Прохождение модерации"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Тем не менее в консоли разработчика на вкладке \"Панель управления\" по прежнему горела красная ошибка о том, что монетизация не подключена, при этом я сделал все согласно их документации. Видимо это баг яндекса - но данная ошибка исчезает если один раз отправить игру на модерацию.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Вместе с \"Игра не опубликована\" висело предупреждение, что \"Монетизация не подключена\"","image":{"type":"image","data":{"uuid":"12c27d3c-4c8c-596c-b682-8d22b2a4a312","width":1235,"height":318,"size":39840,"type":"png","color":"f3f1ed","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAEJ/8QAIhABAAECBAcAAAAAAAAAAAAAAQIAEQMEEjEFBiIyUZGi/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/xAAXEQEAAwAAAAAAAAAAAAAAAAAAESJh/9oADAMBAAIRAxEAPwDULDyuNLrngwjEe1G6eRJJVVjQSWdYyYnLvEZWbXCFn6qQ4WI6VL72oJpi7xPVB//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Я до последнего момента не был уверен что игра пройдет модерацию, потому что я не знаю примера успешной публикации 3D игры на Godot на Яндекс игры. Могло оказаться, что игра не работает в каком либо браузере или производительность игры окажется критичной и мне откажут.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Начало клаун фиесты"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Отправив игру на модерацию я ждал, что она затянется на 3-5 дней, но уже на следующий день мне пришел отказ в публикации. Модератор нашел несколько проблем:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Ошибки в переводе. Я забыл перевести магазин. На скриншотах для ру региона магазин тоже был с английским текстом.","Неправильный показ рекламы. Я показывал ее в момент проигрыша, что по мнению модерации прерывает игровой процесс. Поэтому я перенес показ рекламы при выходе в главное меню."],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

С одной стороны я обрадовался, что игра оказалась вроде бы как рабочей и серьезных проблем не нашли.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Но с другой стороны я до сих пор не понимал как работает модерация. Что если они провели поверхностное исследование и при следующей отправке на модерацию они уже перейдут к следующим этапам и окажется что Godot не годен для Яндекс игр?

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Исправив проблемы я отправил игру на повторную модерацию.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Дубль два"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Опасения оказались верны, модерация не проверяет всю игру сразу, а видимо находит первые попавшиеся проблемы, отказывает и дальше игру не смотрит. В этот раз проблемы нашли следующие:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Гифка для промо материалов имеет артефакты сжатия.","В описании игры на русском языке (которое я сгенерировал нейронкой 🤡) имеются ошибки пунктуации и орфографии. Там действительно было поломано целое предложение и окончания у слов.","При показе рекламного баннера не выключается звук. Я упустил это из-за того, что перенес показ рекламы с момента смерти на выход в меню."],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Почему на первые две проблемы не указали при прошлой проверке - для меня не понятно.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Конечно это не отменяет того факта, что я невнимательное быдло, которые пытается запостить игру с очевидными ошибками.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Публикация"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Не смотря на все, но с третьей попытки игру все таки опубликовали. Если среди комунити DTF есть такие же извращенцы как и я, то смело можете пытаться делать 3D игру на Godot для Яндекс игр.

"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fyandex.ru%2Fgames%2Fapp%2F346969%3Flang%3Dru%23info&postId=2745138","title":"Шрек: Бесконечный Забег — Яндекс Игры","description":"Проверь свою ловкость в игре про любимого персонажа. Установи новый рекорд и соревнуйся с друзьями.","image":{"type":"image","data":{"uuid":"f1a89b7f-8b67-4ef5-91cd-df0eb734afde","width":180,"height":180,"size":1925,"type":"png","color":"fc0404","hash":"","external_service":[]}},"v":1,"hostname":"yandex.ru"}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Я уверен, что будут жалобы на производительность игры (и не только), поэтому я сомневаюсь, что стоит рекомендовать Godot для 3D HTML5 игр, но для 2D это отличный на мой взгляд выбор.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"0d514a51-b3fb-54cf-a4ba-ea6819b2009d","width":700,"height":522,"size":227194,"type":"png","color":"bcb5b3","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgQH/8QAJBAAAQMDAgcBAAAAAAAAAAAAAQIDBAAFERJBExQhJDFTYXH/xAAXAQADAQAAAAAAAAAAAAAAAAADBAUC/8QAHxEAAQQBBQEAAAAAAAAAAAAAAQACAxEVIkFhkaHh/9oADAMBAAIRAxEAPwDX4sFqVDajXWQ5xXF6mi04CpDisAA53ztmlwGwPLTeobJ985nAkaG6Tv8APEjbs09CEo59k6QBlQaJP71omMi58SmXl46KlvoBMQkZIdSR8IUmqkjQSLCkROcAaKRibMwO7e8ew1uyg0F//9k="}}}]}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":20,"favorites":35,"reposts":0,"views":4936,"hits":4695,"reads":null,"online":0},"dateFavorite":0,"hitsCount":4695,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://dtf.ru/indie/2745138-seichas-my-budem-zanimatsya-shreksom-znakomstvo-s-godot-cherez-razrabotku-rannera-dlya-yandeks-igr","author":{"id":131399,"name":"Kaboms","nickname":null,"description":"Unreal Engine Developer","uri":"","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"7e84a214-0bef-5c8a-98c7-33a1722a2e48","width":2560,"height":1600,"size":1031842,"type":"jpg","color":"131313","hash":"","external_service":[]}},"cover_y":0},"achievements":[{"title":"Год на DTF","code":"registration_1_year","description":"Первый год с DTF. Получена 2 июня 2025.","previewUuid":"d6655520-3ebc-52c3-8b92-696b019b5788","formats":{"glb":"https://static.dtf.ru/achievements/egg-01.glb","usdz":"https://static.dtf.ru/achievements/egg-01.usdz"},"viewData":{"contentColor":"#1F97D4","textMaxWidth":0.62890625,"textX":0.5,"textY":0.6943359375,"logoX":0.5,"logoY":0.818359375,"logoXNoText":0.5,"logoYNoText":0.6865234375},"id":1728456,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/1728456"},{"title":"5 лет на DTF","code":"registration_5_years","description":"Провёл 5 лет вместе с DTF. Получена 2 июня 2025.","previewUuid":"1cfb91f8-db3e-5624-9beb-4b71082eecc5","formats":{"glb":"https://static.dtf.ru/achievements/egg-02.glb","usdz":"https://static.dtf.ru/achievements/egg-02.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.625,"textX":0.5,"textY":0.533203125,"logoX":0.5,"logoY":0.6572265625,"logoXNoText":0.5,"logoYNoText":0.5390625},"id":123810,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/123810"}],"lastModificationDate":1763076238,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":true,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":64960,"name":"Инди","description":"Истории из жизни инди-разработчиков. Если вы делаете свою игру — это лучшее место, где о ней можно рассказать всему DTF.","uri":"/indie","avatar":{"type":"image","data":{"uuid":"044c3d8c-3200-4bdc-c4e3-40e99fec6777","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"cover":{"type":"image","data":{"uuid":"fa9323db-0b02-8abe-5ee4-ec31b8d32568","width":800,"height":450,"size":14309,"type":"jpg","color":"a454ef","hash":"","external_service":[]}},"lastModificationDate":1631402619,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"indie","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":47}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}},{"type":"entry","data":{"id":2655317,"customUri":null,"subsiteId":131399,"title":"Чем нейронки могут помочь разработчику в Gamedev","date":1715173952,"dateModified":1715173952,"blocks":[{"type":"text","cover":true,"hidden":false,"anchor":"","data":{"text":"

Собрал и протестировал AI инструменты - от генерации иконок и бесшовных текстур до Motion Capture. Все инструменты бесплатны и доступны OpenSource.

"}},{"type":"media","cover":true,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"e3ef338d-5402-5cd5-a906-bb19e6b70077","width":1280,"height":720,"size":1846576,"type":"gif","color":"373136","hash":"","external_service":[],"duration":13.7,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"ДИСКЛЕЙМЕР"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Все проекты OpenSource и поддерживаются силами энтузиастов, что увеличивает порог вхождения. Разворачивать проекты придется на своей машине, а нейронки на слабых компах особо не погоняешь - у меня RTX 3080 TI и I7-13700k с 32 ГБ ОЗУ, следовательно я не могу трезво оценить как все эти чудеса работают на более слабых конфигурациях.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Простенькое для разогрева. Апскейл с помощью Upscayl"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

По моему мнению лучший бесплатный OpenSource проект для апскейла изображений. Имеет удобный пользовательский интерфейс, дает на выбор несколько типов апскейла и максимально дружелюбен к рядовому пользователю.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"6889af96-77c0-52a1-9095-e490320ab3fa","width":1286,"height":933,"size":657089,"type":"png","color":"3f3840","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgUI/8QAJRABAAAEAwkBAAAAAAAAAAAAAQACAwUEESIGByEzQVJhk7LB/8QAFQEBAQAAAAAAAAAAAAAAAAAABAP/xAAdEQABBAIDAAAAAAAAAAAAAAAAAQIEEQMzEkHw/9oADAMBAAIRAxEAPwDLOwNvKmBozNM1M+eg7pvEWlUj1Fw0vE0XtmpZ8qj6R/ILY3iQd3fC14XLoz/c0JlbFCQ9Tfdi4BBQVIKLs//Z"}}}]}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2Fupscayl%2Fupscayl&postId=2655317","title":"GitHub - upscayl/upscayl: 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows.","description":"🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. - upscayl/upscayl","image":{"type":"image","data":{"uuid":"https://leonardo.osnova.io/ico/github.com","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"v":1,"hostname":"github.com"}}}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Основа основ - Stable Diffusion"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

В этой статье не будут рассматриваться всякие проприетарные Midjourney, DALL-E и прочие Chat-GPT дегинеративные сети. Только OpenSource, только хардкор.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Stable Diffusion - это OpenSource модель глубокого обучения. С помощью моделей на его основе мы будем генерировать текстуры, иконки, да и вообще все что угодно.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Сам по себе Stable Diffusion не имеет пользовательского интерфейса и вся работа с ним происходит через консоль. Для решения этой проблемы существует легендарный OpenSource проект stable-diffusion-webui от AUTOMATIC1111 - в гайдах часто называется просто AUTOMATIC1111 или A1111 для краткости - далее по тексту я буду называть его именно A1111.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Так пользоваться Stable Diffusion намного удобнее.","image":{"type":"image","data":{"uuid":"615d95f6-184d-5727-ac96-fabde1fdf0c7","width":1236,"height":966,"size":122760,"type":"png","color":"484a43","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAQYHCf/EACQQAAIBAwQABwAAAAAAAAAAAAECAwQFBgARITEHEhMiM0GS/8QAGAEAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAgEQACAwABBAMAAAAAAAAAAAABAgADEUEEEiFhgtHw/9oADAMBAAIRAxEAPwDSDxEv+SYzh9wu+LY7Ld7lB6ZiokOzyqXUN5eRuQu57+tUdW1qVMaRrcfhJVqHYAnPZi9ZMnz64Wagr7hizUdVU0sU09O9aQ0MjICyH3nkEkdnrStdNpQF93ny33GTb2nNU/EShXIB5YlcBgG6POtGKQiCDb4U/I0Qn//Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"С ПО понятно, как все это запустить?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

На STABLE DIFFUSION ART собранно большое количество полезных гайдов касаемых Stable Diffusion:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Как пользоваться A1111(в самой статье есть ссылка на гайд по установке A1111, но дтф не дает ее вставить в пост)","Гайд для совсем начинающих. Основы от написания грамотного промпта до сравнения AI моделей.
","И официальный документация от A1111, которая сводиться к скачиванию одного архива и запуску двух батников.
"],"type":"UL"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Что такое модели и какие они бывают"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fstable-diffusion-art.com%2Fmodels%2F&postId=2655317","title":"Stable Diffusion Models: a beginner’s guide","description":"Stable Diffusion Models, or checkpoint models, are pre-trained Stable Diffusion weights for generating a particular style of images.","image":{"type":"image","data":{"uuid":"3cb93e2a-f26c-50a1-a009-57b9c85e8825","width":32,"height":32,"size":737,"type":"png","color":"2e363e","hash":"","external_service":[]}},"v":1,"hostname":"stable-diffusion-art.com"}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

И тут мы знакомимся со следующим важнейшим ресурсом - Сivitai. Это библиотека моделей на основе Stable Diffusion, и по совместительству галерея созданных с его помощью изображений.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Да, на сайте также очень много моделей для генерации порно и хентая","image":{"type":"image","data":{"uuid":"5c6e6195-3a71-55aa-84e3-caf3ccd8cce2","width":2421,"height":1250,"size":1386905,"type":"png","color":"332f2c","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgEH/8QAJBAAAgEEAQMFAQAAAAAAAAAAAQIDBAUGEQASMUEHExQVQlL/xAAVAQEBAAAAAAAAAAAAAAAAAAAEA//EACIRAQACAgECBwAAAAAAAAAAAAEAAgMRBCFhBRITMVGx4f/aAAwDAQACEQMRAD8ANtTxYTbrvj5qp6utvsUVyM88O3QmnVhGBsMV2ibbuQPPmfp0uFB6Mth5FwcqGx0d/iZfRRZBBRwQy4Vj8zxxKrSfXuesgAFt9Y3vv2HCOQq6PuKMLY8y+/YjX1xllTKrXUJK6ymxRguGIYj4pOt8MqYraj/CqVtzaVsbPyS3UlKbfSk00W/ZT8D+RxCdZBsjoZ//2Q=="}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Давайте уже что-нибудь сгенерируем - модель для создания иконок"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Вот мы скачали модель, добавили ее в наш A1111 WebUI (скачанную модель gameIconInstitute_v40.safetensors нужно кинуть в папку по пути webui\\models\\Stable-diffusion\\), выбрали модель как активную, и в собственном наивном неведении пытаемся сгенерировать иконку меча, а получаем.... лолю

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Их хлебом не корми дай сгенерить лолю на любой запрос. Страшно представить на чем эти модели обучают.","image":{"type":"image","data":{"uuid":"24449fae-73cf-5d51-941b-6330b6a791c3","width":1237,"height":846,"size":544916,"type":"png","color":"121624","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAACAf/xAAoEAAABQIFAgcAAAAAAAAAAAABAgMEBQYHABESITEIFRMmNEFEUmL/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAwT/xAAcEQACAgMBAQAAAAAAAAAAAAAAAQIxAxVDkhH/2gAMAwEAAhEDEQA/ABXbe2L651dRlGNzxzFxJCrpcvAOdIopkE4gbQAm9suMItozRi27L+r0gSSCh0T1ha8DJmEoh2Z8O4bc+FvgnWp9cntjWykuWPwg42rkZCNuPAvY584auElzaFkVTEOXMo8GAcwwtKgaFiAmqyq/vL/zVMeqV+cr9x/WJRpFJN/Wf//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Опытный пользователь сразу знает, что с такого промпта нейронка ничего хорошего не сгенерирует, поэтому дополняем его. Получаем следующее:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"((sword gameicon)), HD, White background, ((((((No Human))))))","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Скобки \"()\" служат для повышения приоритета выделенного предложения, скобки \"[]\" служат для понижения.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Жмякаем Generate и опять получаем какую-то чертовщину. Как с этим вообще работать?

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"b631e285-9b18-56ca-9a4c-eb0f5cb19a20","width":1242,"height":852,"size":250426,"type":"png","color":"111624","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAACAf/xAAiEAACAgICAgIDAAAAAAAAAAABAgMFBAcAERIxBiEJFiL/xAAXAQEAAwAAAAAAAAAAAAAAAAAFAAEE/8QAHxEAAgEDBQEAAAAAAAAAAAAAAQIAAzEzBAURMpJR/9oADAMBAAIRAxEAPwAdag05cbp2PW/AK2SswMyyjypVyMxWeJRBC8zAhAWPYQgdD2eIswEyqp+xfY/4utrzY8U37PqVPNFbxeum8l7Ho/z74MdAnOWp7MaG5uBip+BBlpG6uaDaNJZ0Vtm1uZGZ1TIxJ3hlVWiYMAykEAgkH7+weL1OsHS8vtjtHZkVhlRx7E+ToiTOqqtvkAABj0APPkWwltcz/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Перед тем, как раскрыть секрет генерации иконок, отмечу, что версия 2.2 данной модели при наивном подходе выдает результат получше.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"1dae449e-c20e-526d-a2c6-9811ce02a553","width":1246,"height":845,"size":493808,"type":"png","color":"161a26","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwUHCP/EACEQAAICAQQCAwAAAAAAAAAAAAECAwQRAAUGIRIxMkNR/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAIBEAAgEDBAMAAAAAAAAAAAAAAQIAAxExBSGT0TIzQ//aAAwDAQACEQMRAD8AwvsfFb3Jd/p7OkFNbFwuIzKnkCyqW8cD3nGNIO4UYmdELHMf2tvv07MtR6nDWaB2jJXaI2BIOOjjsde9DnT6N/Y/I3cZGp1h86fGnUnsNixTu156k8kEisQHjYqwBGD2NMPiDJ5Qdm/eFmUC7P8ANvsP7qSqLDaVYm5n/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Секрет очень простой - для генерации иконки нужно использовать референс того, что мы хотим получить. Для этого открываем вкладку img2img, вставляем в левое поле первую попавшуюся в интернете картинку меча и получаем то что нужно.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"0847d681-40f3-57dc-bb33-04086cc35533","width":1253,"height":1033,"size":74431,"type":"png","color":"111623","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABQcICf/EACcQAAEDAwIEBwAAAAAAAAAAAAECAwQFBhEAIQcJEjEIExQWFzJx/8QAFgEBAQEAAAAAAAAAAAAAAAAABAUD/8QAIxEAAQMBCAMAAAAAAAAAAAAAAAECA1IEERMUFSEx0TKSk//aAAwDAQACEQMRAD8AXEvlwcTbcu2zadxMvC0KbTrsqL1ORLjFx9cd1uM7IwtDqW07hkp+3cjTMZHIuxgkatUPVbwS2vTapMpyeMtnuJiyHGQv23EHUEqIzjzds41OyMdT/d/ZT1KWlnzZ0UpzYkp+JLTPSMi40qBx2V6Z7f8AdNs3kpOl4MrXY7CnVqUw2SVEklI33024xP/Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Если нейронка слишком фантазирует и не следует референсу, то нужно уменьшить параметр Denoising Strange. Чем больше значение, тем больше нейронка фантазирует и меньше следует референсу.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"e9c65f1f-4dcb-5589-8723-9acc28dda795","width":1248,"height":694,"size":27087,"type":"png","color":"101322","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEGCP/EACMQAAECBQMFAAAAAAAAAAAAAAECAwAEBhEhElKRBRMyYXH/xAAYAQACAwAAAAAAAAAAAAAAAAAAAwIEBf/EABoRAQEAAwEBAAAAAAAAAAAAAAEAEiFRAhH/2gAMAwEAAhEDEQA/AMJtz1VkBpqo3QCQbImXQTb4Y0kfJsqwfXU1vVaVqv16dVk577+fflC8jtPB5Smte9XMNlRrXvVzBF//2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Небольшие примеры того, что у меня получилось сгенерить

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Сфоткал свою трубку - впечатляет, что он меняет серебренное кольцо на прозрачную колбу. Промпт был с просьбой сгенерировать футуристическую курительную трубку","image":{"type":"image","data":{"uuid":"3914c49b-9e57-5a04-9199-a51492b6e67f","width":1025,"height":727,"size":216870,"type":"png","color":"b28b6c","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgcI/8QAKRAAAQMCAwYHAAAAAAAAAAAAAQIDBQQGABESBwgTIUFhFRYiMTJDU//EABYBAQEBAAAAAAAAAAAAAAAAAAQCA//EACERAAIABQUBAQAAAAAAAAAAAAECAAMSMWEEBSFBUXER/9oADAMBAAIRAxEAPwDSFk7zFqRdsXRt8v8Al5Dy3J1bkbb9yOR7hWywVK4NKKdOopz0cUq0gKzTq6ABkzJrF5ZsLNn5iHzpUpQji5uuPuYAUF87w9w0NPPsbQJBLUm0isQkIcaAS4AsDRl6OR+PT2wM7hqlNKoCB37mGDb9Kw/Wcg+eYi/ohoc7r0hRmKozTlNQ4WuAnQVB0gK05ZZ8hz7YukDQ2jOonX8mFtkw8SbMgCYukz8LpfoT+Se2Hy0WgcdQCa7Vtz2Y/9k="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"a47879d7-59b2-54c9-aa75-d9e56301f9b5","width":256,"height":256,"size":33708,"type":"png","color":"b07a45","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgj/xAAnEAABAwIFAgcAAAAAAAAAAAABAgMEBhEABQchIggSExUxM0FRYv/EABcBAQEBAQAAAAAAAAAAAAAAAAYHAgT/xAAkEQABAwMCBwEAAAAAAAAAAAABAAMEAhEhMUEFBhITFIHwkf/aAAwDAQACEQMRAD8AP6b0Q7pzQMXT+A9JnwMsaS4tyXGSA6tx0rWuwv4YKnFAC5KRYdyjyM0nShMkl44++9qiQ43iR6WgbqXKk6K6/k1Fmkimp9NRcodmvry9hybJK2oxcJaQruaJuEdoNyTtuT64UtcxRhRSHASbC+BrvujTnAHzWTQQBfGTp+K/3ecuStfJTbRCCdykBpoi31vvgW5SO5ok7dR6EFzNavMpfI++58/o46gBZaBwv//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"3905bc22-e72c-5f10-9a38-ba9d959a537c","width":512,"height":512,"size":74096,"type":"png","color":"c92c37","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABAj/xAAlEAACAQQBBAEFAAAAAAAAAAABAgMEBQYRBwASFCEICSIxUmH/xAAYAQADAQEAAAAAAAAAAAAAAAAFBgcDBP/EACgRAAIABQIDCQAAAAAAAAAAAAECAAMEESEFEwYxMhIiQVGBobHh4v/aAAwDAQACEQMRAD8AfbON7BLx/Jx3cLZDcKO3Yy+JTZBHcoIQIhAKfyBG0jCKRtHSkP2s2vu/JXjXO03tquBFjbgvT6eklyKipO89rKFbOPDu+vOJ8n+nnxnWzyVlq+ShpqGdzLTQzY35EkUTHaK0q1CCRgpALhEDEbCrvQ7BqgI6ff6hemcAT0cru8j5fqH8oQQJyZkypCijyQdBQPfePfQ0AZilNMfbkC56R8RQGN2i0tjtrZrXSEmigJJgX9B/OsIKM7XOY//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"446e020e-1925-50d4-b95f-e3689d5901fb","width":512,"height":512,"size":79632,"type":"png","color":"cdd3db","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUI/8QAJRAAAgIBAwQBBQAAAAAAAAAAAQIDBAYFCBEABxMhCRIiMTJR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgQD/8QAIREAAgEDAwUAAAAAAAAAAAAAAAECBBEhFFKhEjJRYdH/2gAMAwEAAhEDEQA/ADPbXt5wva72l1Dd1uJyu7j2SxV5auK6JTcpdpzzROihkJHktzRmRRAfthjZ3lIYE19OlwtKSwG6kmk8g/X3kdt4q8UUu3mzI6Iqs4za0gYgez9Ih4HP8HodbaiO3kn08t3BY+T69ebvxo+kNcnNGtjsViCqZD4opZLM4kdU/CswijDEDkhF5/UcOt7or0ChzBt+fhj7qItP/9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"ddf8cffa-b996-51b8-8d75-e761509adbef","width":512,"height":512,"size":55655,"type":"png","color":"89a4b7","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQAJ/8QAIhABAAECBgIDAAAAAAAAAAAAAQIDBAAFESExURIyU2GR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwAC/8QAGBEBAQADAAAAAAAAAAAAAAAAADIBYXH/2gAMAwEAAhEDEQA/ANNrSyr5BdVpFxUrZbcT8owk7Wb1E+N/R+vVLxtieGhEEdR4cG2kERNR5MSAwCnCNOmEYxAjE2A6MMJ//9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"DreamShaper Anime Lineart ","image":{"type":"image","data":{"uuid":"612e67d5-1fac-5dc0-b0a1-47193a5a19db","width":1536,"height":1536,"size":871948,"type":"png","color":"ad9782","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAQH/8QAIxAAAgICAQQCAwAAAAAAAAAAAQIDBAUGEQASITETIhQjMv/EABcBAAMBAAAAAAAAAAAAAAAAAAEDBAL/xAAdEQACAgIDAQAAAAAAAAAAAAABAgARIeEycYHw/9oADAMBAAIRAxEAPwBYVRsP5VWRhvHzG/lpGZ7FE2PnEZCMyj6m0F8RxD9YX7NyR1KpN+n7UpIFeCUYOjC+Fx72MXWaVqsRc2Mp3yluwcl2VgC3PsgAE88dEA1uAkXqZngQDrONsEcynWtuslz/AEZlmIWTn33AeA3sDoJwvuaflXUSeha/gZNG12STCUGZsTULMayEkmFfJ8dMVVKjEWzEMcz/2Q=="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"RevAnimated + Pixel Art XL","image":{"type":"image","data":{"uuid":"4f6fe5d2-99a9-5228-9f4d-3c8722eab673","width":1536,"height":1536,"size":778057,"type":"png","color":"ac9380","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAUH/8QAIxAAAgICAgIBBQAAAAAAAAAAAQIDBAUGESEAEjETIiMyUf/EABgBAQADAQAAAAAAAAAAAAAAAAQAAQID/8QAIREAAQMDBAMAAAAAAAAAAAAAAQACEQMhMRJhceEyofD/2gAMAwEAAhEDEQA/AFdSXYWtVpnTeBMb+XkJe3Rax9cRkIzIPtNoL0kQ/GE7bkjwouZ3KW6wjYfdqngsZUbB45psZWaQ1IS5sZUvKW9Bz7srAFv6QOCefKGO1DnPpZPigG1vF2GAMp1XbbRc/sZlm4WTn59wOg3yB5inieV2qeUcJMaHrmvSaPrskmCxzM2KqFmNVCSTCvZ68Q1jYFkRznajdf/Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Бесшовные текстуры"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Пытался пробовать готовые модели, но их результат мне не понравился. Поэтому использовал \"ультра реалистичные модели\", такие как Juggernaut XL (по моему мнению выдал лучший результат), Realistic Vision и Cyber Realistic. Следующие примеры будут на Juggernaut XL.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Начинаем сразу с того с чем у нейронок огромные проблемы - с ровных форм, и для этого идеально подойдет текстура паркета. Но перед этим надо научить A1111 делать именно бесшовные текстуры, делается это выставлением одной галочки \"Tilling\" (что делать если нет галочки)

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"98192a51-17b9-5389-a298-2ee0550d8845","width":1238,"height":788,"size":176793,"type":"png","color":"191a25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgcI/8QAIRAAAgIBBQADAQAAAAAAAAAAAQIDBBEABQYSIRUxQWH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFBgP/xAAhEQACAgAFBQAAAAAAAAAAAAABAgADBBETMTMSQVGx0f/aAAwDAQACEQMRAD8AwUm02dwuQU/jITJZmEClyQCxBIycfzSFliovURMKa3tcVqd4mXaZayiu/C+KO0Q6FnSXsSPMn370C9aOxbVsGfhh8lGhsRQujUcu5U5+4L4vZsNyPae1iQ9bakZc+HTN/GYDhuZZVbZLW5mY5JkYkn990Kd5SDaf/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Получаем что угодно, но не паркет - зато бесшовно (кстати бесшовность можно проверить онлайн). Тут снова применяем хитрость с референсом - повторяем за мной:

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

1. Находим безшовную векторную текстуру с контуром паркета

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

2. Генерим любую текстуру дерева

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

3. Накладываем ее на текстуру контура в Gimp или Photoshop

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

4. Суем результат во вкладку img2img в качестве референса

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

5. Выставляем Denoising Strength в районе 0.55

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

7. Используем следующий промпт \"Old School, vintage, varnished ((((dark red)))) oak wood parquet, texture, perfect, hight quality\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

8. Выставляем разрешение в 1024 на 1024

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

6. Получаем приличный на мой взгляд результат

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"97286127-9dab-5380-8f88-f9597953c805","width":1491,"height":480,"size":493511,"type":"png","color":"612413","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAdgB2AAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwEI/8QAHRAAAgMAAgMAAAAAAAAAAAAAAQMAAhESUSEycv/EABcBAQEBAQAAAAAAAAAAAAAAAAIBBgf/xAAbEQEAAgIDAAAAAAAAAAAAAAAAARECITFBgf/aAAwDAQACEQMRAD8Axe5JbWq6HOVs3oTF46265dSIqTUmoVc54i9S5On3HxB0spp7MQTy/9k="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"afeaaf4e-21d1-5546-ab5e-5e8481c019e1","width":1024,"height":1024,"size":1010371,"type":"png","color":"5b2414","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQQI/8QAHxAAAgEEAgMAAAAAAAAAAAAAAQIAAwQRQRIyEyGR/8QAGAEAAwEBAAAAAAAAAAAAAAAAAAECBgf/xAAZEQEBAAMBAAAAAAAAAAAAAAAAARESUWH/2gAMAwEAAhEDEQA/AMTVaXJFViRrJPWZWOj+U+C0Hoo5xuGaNZw1iTb08nUXVJS7Z7H7KxCf/9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"2df258f3-f074-5e5a-a94c-f52d0805bb41","width":1024,"height":1024,"size":1011148,"type":"png","color":"ac9783","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwQG/8QAIhABAAIBAgYDAAAAAAAAAAAAAQIDABIhBBETM1FSYZGS/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgUG/8QAFhEBAQEAAAAAAAAAAAAAAAAAABFB/9oADAMBAAIRAxEAPwDSSlaUyrhUapWGqfoeDM8vKzgLk7J9YoI4qQpBdzm/OEtF1rjYtn+nGD//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"3266c061-3c79-5d1c-9a09-3dade78a9b03","width":1024,"height":1024,"size":1014705,"type":"png","color":"9c6532","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwQG/8QAIxAAAgEEAQMFAAAAAAAAAAAAAQIDAAQRIRIFcYETIjFB0f/EABYBAQEBAAAAAAAAAAAAAAAAAAIBB//EABoRAQEAAwEBAAAAAAAAAAAAAAEAAhFBITH/2gAMAwEAAhEDEQA/AMpaXCrHAZnV5+TEvtSw2Prxr8rI0fhanvrF6Uy+1o7lSNELMuB2yM471Fx3IMp7VEPT5mKjkl2QpxsfI14pZPpE7TNLIGIEjAA4ABqaJ3//2Q=="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"ba64bf52-c53d-574e-bdb7-6aad3352424b","width":1024,"height":1024,"size":835207,"type":"png","color":"a66647","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBv/EACMQAAEDAwQCAwAAAAAAAAAAAAIBAxEAEiETIzFBMlFCYYH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAf/xAAYEQEBAQEBAAAAAAAAAAAAAAAAAREhMf/aAAwDAQACEQMRAD8AxZamUuNJjm7iVjvj1WfNW6YSctSSzGbjKf3NHFtANtqgqrYruH19rTqxRplnSDaDxT4p6otpnj//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"9a9d8ec9-bb15-50dc-b56c-2dc09d2e2e1c","width":1024,"height":1024,"size":711251,"type":"png","color":"e2e3de","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAMI/8QAJRAAAQIFAwQDAAAAAAAAAAAAAQIDAAQREiETJDEUIjNBQlFS/8QAFwEBAAMAAAAAAAAAAAAAAAAAAAECA//EABYRAQEBAAAAAAAAAAAAAAAAAAARIf/aAAwDAQACEQMRAD8A2tugkVWs4AJJcIIuVTF2E/mMAplE5ooucfraK3PLu499/MNEpeXYCmxoN0LrtRaM5VEBUnJynSMbVnxp+A+otB//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"fe8fdf4a-6d1f-5727-ab86-471bee2ba793","width":1024,"height":1024,"size":722887,"type":"png","color":"aa714d","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwIF/8QAIxAAAgIBAgYDAAAAAAAAAAAAAQIDEQASQRMhIjEyYYGRsf/EABYBAQEBAAAAAAAAAAAAAAAAAAECB//EABkRAQEBAQEBAAAAAAAAAAAAAAEAAiERUf/aAAwDAQACEQMRAD8AyA0hsh2FHudVnma3+szrlpw+yBZqFufl3v8AcnkdoljjtRoWtR2946WvQSxxpw16F8RtgrJk+X//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"e4bfe515-462a-51dc-9c00-477f89b618a7","width":1024,"height":1024,"size":754825,"type":"png","color":"ece9e4","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwQFCP/EACMQAAIBBAEDBQAAAAAAAAAAAAEDAgAEERIFISJCMTJRUnH/xAAYAQACAwAAAAAAAAAAAAAAAAAAAgEDBP/EABcRAQEBAQAAAAAAAAAAAAAAAAABETH/2gAMAwEAAhEDEQA/AN2LubqUZF72QyACZRbjGxwM7e34rPq2w2q4uCqBK2k6jrKLcn97vWgJjEpDFwCoaljumox5UiReOt0Hj7UlKySmHiPqKacD/9k="}}}]}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Основной принцип вы поняли, если применить смекалку и нужную модель, то можно сгенерировать что угодно.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"dd569ce0-08ff-527a-bb80-a3009dcf7402","width":868,"height":636,"size":123066,"type":"png","color":"d0c8bc","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgQI/8QAJxAAAQQBAQcFAQAAAAAAAAAAAQIDBAURAAYHExQhMWESJTNDUVL/xAAXAQEBAQEAAAAAAAAAAAAAAAACBAMF/8QAIhEAAgEDAgcAAAAAAAAAAAAAAAEDAhEhEqETMTJSU3Gx/9oADAMBAAIRAxEAPwDQ02fVbVVFNcWtXzjTNrOPLJhhh9QQ0pSWClQSPUMhHkjqc51z5KV0plrjcFdms29/AC3tBZR20sO7kn5S2wEKf4YTxSOhXgN4Ge+B+6XDg8mzDrn7N0X77p86Duu2JmQpr8d96Wp111pwoWtamlFSlEdSSTkk99B5TuGHEgXrLe2NbE90l/A396v5HnWb5lV2f//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"617eebba-66bb-5bed-b3ef-a2198fec30b4","width":736,"height":976,"size":278176,"type":"png","color":"24282d","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUG/8QAJhAAAQQBAwMEAwAAAAAAAAAAAQIDBAURAAYhEhMxBxUWIiNBkf/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/EABoRAQEBAAMBAAAAAAAAAAAAAAEAEQIDEkH/2gAMAwEAAhEDEQA/AEDekPaES2s9u7zsocS5debUhEGG6yWg++4cLHT9wUWJGTjAQVeSNa479j1aWwrr+9o6+LSfBL5Ht7KIvSvu9Q7aQnB/H541aecr/qolI3ZOlBIDyWW8OY+wwxxz5/Q/g0AaihD0G5uHYUd122mLWtpClKU+olRIGSTnk61kb//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Честно говоря я ожидал худших результатов, но нейронки меня приятно удивили. Если постараться и подобрать нужную модель, то можно получить неплохой результат - как минимум который не стыдно вставить как заглушку для прототипа.

"}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Анимация и Motion Capture"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Если вы не смогли найти нужную анимацию на mixamo, а для нормального Motion Capture с костюмами, зеленым фоном и блэкджеком нет денег, то можно попробовать AI решения.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Первый тип решений считывает по заданному видео позу человека и на его основе строит анимацию. Для Motion Capture доступно несколько платных решений, таких как move.ai или DeepMotion. Их можно попробовать бесплатно (с большими ограничениями), но для полноценного использования нужно платить подписку.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Другой тип программ по ключевым кадрам может создать реалистичную, физически корректную анимацию. И на этом поле насколько я понимаю сейчас находиться только один игрок - Cascadeur, который можно попробовать бесплатно, но для нормально использования нужно платить подписку. Каких либо Open Source аналогов для него я к сожалению не нашел.

"}},{"type":"video","cover":false,"hidden":false,"anchor":"","data":{"title":"","video":{"type":"video","data":{"thumbnail":{"type":"image","data":{"uuid":"a3551c1b-6d2c-57a8-bcaa-36547242a93f","width":1280,"height":720,"size":77760,"type":"jpg","color":"09090e","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAQCAwMDAgQDAwMEBAQEBQkGBQUFBQsICAYJDQsNDQ0LDAwOEBQRDg8TDwwMEhgSExUWFxcXDhEZGxkWGhQWFxb/2wBDAQQEBAUFBQoGBgoWDwwPFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhb/wAARCAAKAAoDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABAUGCP/EACMQAAEDAwQCAwAAAAAAAAAAAAECAwQABREGEiExEyMyQYL/xAAVAQEBAAAAAAAAAAAAAAAAAAADBf/EAB4RAAICAAcAAAAAAAAAAAAAAAECAAQRISIxQVFh/9oADAMBAAIRAxEAPwDFcONBnaOuVydTAjORnG20IbjEqUVhfRK8j494PdNoGmbM9BZeXbXtzjaVHbNTjJGeKpbcAmxStox7Wuv1RzRPjTz9CqFcIN1xyivWZCdXPXgn/9k="}},"width":800,"height":450,"time":0,"external_service":{"name":"youtube","id":"R3pJ2HHFaTo"}}}}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"The FreeMoсap Project"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Бесплатная OpenSource программа с удобным (ну почти), пользовательским интерфейсом для Motion Capture. Что радует, проект активно развивается, на Discord сервере постоянный движ - люди пишут плагины для Unity, Unreal Engine и Blender. Именно там я научился экспортировать все это чудо в Unreal Engine и Blender.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"447fe391-6123-5e8b-af46-cbf55b757515","width":2914,"height":1628,"size":115923,"type":"png","color":"eaeaea","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwYICf/EACUQAAEDAwMDBQAAAAAAAAAAAAECAwQABQYRIUEHEtEWMlZhlP/EABgBAAMBAQAAAAAAAAAAAAAAAAIDBAAB/8QAHxEAAgIBBAMAAAAAAAAAAAAAAAECEQMSMoGRobLB/9oADAMBAAIRAxEAPwC4elM1ydCnw5cS4uFt9x0ybghKVEOE6NpA4SAAd/vmjmpLcq6+CsUsLtYp6uJL2S8DSrCcfUoqMZG519ooBlsyZayzKVOHuyW6nbmY55qqkSWwvqrJ/kd0/Y55rUjls//Z"}}}]}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2Ffreemocap%2Ffreemocap&postId=2655317","title":"GitHub - freemocap/freemocap: Free Motion Capture for Everyone рџ’ЂвњЁ","description":"Free Motion Capture for Everyone рџ’ЂвњЁ. Contribute to freemocap/freemocap development by creating an account on GitHub.","image":{"type":"image","data":{"uuid":"https://leonardo.osnova.io/ico/github.com","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"v":1,"hostname":"github.com"}}}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Опыт использования"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Подробно расписывать как все это запустить и использовать - займет отдельную статью, поэтому кратко опишу свой опыт. Видео снимал на обычный китайский телефон и вебку в 720p. Также пришлось распечатать доску Charuco Board на листе в формате A3 для калибровки камер.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"07ea5823-187d-5f6a-b315-ac1b19ca0a52","width":1412,"height":1032,"size":127837,"type":"png","color":"2a3a3c","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwYICf/EACgQAAECBAQFBQAAAAAAAAAAAAECAwAEBQYHERMhEhQiMUFTVYSS0f/EABcBAQADAAAAAAAAAAAAAAAAAAMABAX/xAAfEQACAgIBBQAAAAAAAAAAAAAAAQIDEXEhBBITMmH/2gAMAwEAAhEDEQA/ALUxcvzEi3J6gy+GFnUirUyYWhupuJnWeOVTrNjNKCsFQ0y4duxAgrZTjjtWRqVU0/I+d/NaHLk7W9yaHzB+woJkihttbXW2lW3kZxIexm9Wk7nkDos+kj6iLYiXB//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Пляшем с доской перед камерами секунд 40 для калибровки, после чего начинаем записывать Motion Capture. С помощью молитв, сервера дискорда разработчика и чей-то матери экспортируем это все в Blender, чистим анимацию (я этого не делал) и далее экспортируем это уже в Unreal Engine.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"4884c71e-2503-557d-be4f-f03ecfbce910","width":1920,"height":1080,"size":1020188,"type":"gif","color":"3c393c","hash":"","external_service":[],"duration":4.883333,"isVideo":false,"has_audio":false}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"IK Rig, ретаргет, маты, боль, слезы, и наконец-то получаем это. Ладони колбасит потому что мне лень было удалить кривые ключевые кадры из анимации.","image":{"type":"image","data":{"uuid":"e622172d-cd2c-5d4f-8e5f-43ca6ba30282","width":1920,"height":1080,"size":1030849,"type":"gif","color":"b3b2ab","hash":"","external_service":[],"duration":5.65,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Заняло это все часов 8, но результат на мой взгляд приличный, учитывая что это все сделано на коленке с помощью двух шакальных камер.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Выводы"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Если очень захотеть, иметь большое желание, упорство и нулевое количество денег (и при этом ПК тысяч за 200), то нейронки могут неплохо подсобить в такой нелегком деле как разработке игр в гараже одним человеком с бюджетом в банку пива.

"}},{"type":"quiz","cover":false,"hidden":false,"anchor":"","data":{"uid":"","hash":"2QprC_cY2KsX_Fl6YfmJS","tmp_hash":"","title":"Нейронки в геймдеве","items":{"o17151733680":"Нужны","o17151733791":"Не нужны","o17151733822":"Если не видно, что это сделала нейронка, то ок","o17151734673":"Я *profession_name* и боюсь быть вытесненым нейронками"},"is_public":false,"date_created":0}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":22,"favorites":299,"reposts":0,"views":15097,"hits":2890,"reads":null,"online":0},"dateFavorite":0,"hitsCount":2890,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://dtf.ru/gamedev/2655317-chem-neironki-mogut-pomoch-razrabotchiku-v-gamedev","author":{"id":131399,"name":"Kaboms","nickname":null,"description":"Unreal Engine Developer","uri":"","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"7e84a214-0bef-5c8a-98c7-33a1722a2e48","width":2560,"height":1600,"size":1031842,"type":"jpg","color":"131313","hash":"","external_service":[]}},"cover_y":0},"achievements":[{"title":"Год на DTF","code":"registration_1_year","description":"Первый год с DTF. Получена 2 июня 2025.","previewUuid":"d6655520-3ebc-52c3-8b92-696b019b5788","formats":{"glb":"https://static.dtf.ru/achievements/egg-01.glb","usdz":"https://static.dtf.ru/achievements/egg-01.usdz"},"viewData":{"contentColor":"#1F97D4","textMaxWidth":0.62890625,"textX":0.5,"textY":0.6943359375,"logoX":0.5,"logoY":0.818359375,"logoXNoText":0.5,"logoYNoText":0.6865234375},"id":1728456,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/1728456"},{"title":"5 лет на DTF","code":"registration_5_years","description":"Провёл 5 лет вместе с DTF. Получена 2 июня 2025.","previewUuid":"1cfb91f8-db3e-5624-9beb-4b71082eecc5","formats":{"glb":"https://static.dtf.ru/achievements/egg-02.glb","usdz":"https://static.dtf.ru/achievements/egg-02.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.625,"textX":0.5,"textY":0.533203125,"logoX":0.5,"logoY":0.6572265625,"logoXNoText":0.5,"logoYNoText":0.5390625},"id":123810,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/123810"}],"lastModificationDate":1763076238,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":true,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":64954,"name":"Gamedev","description":"Разработка игр и всё, что с ней связано. Новости из сферы геймдева, включая анонсы и выход новых версий движков, публикуются в подсайте dtf.ru/s/gamedevnews.","uri":"/gamedev","avatar":{"type":"image","data":{"uuid":"9e71f64c-f452-321b-e24b-901bd6b01757","width":108,"height":108,"size":28391,"type":"png","color":"fac83e","hash":"","external_service":[]}},"cover":null,"lastModificationDate":1650011708,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"gamedev","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":145},{"id":2,"count":1}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}},{"type":"entry","data":{"id":2598903,"customUri":null,"subsiteId":131399,"title":"Shrek 2 Remake - теперь OpenSource","date":1712316362,"dateModified":1712316362,"blocks":[{"type":"text","cover":true,"hidden":false,"anchor":"","data":{"text":"

И первый взгляд на переработанный первый уровень.

"}},{"type":"media","cover":true,"hidden":false,"anchor":"","data":{"items":[{"title":"Да - это в основном ассеты из оригинальной игры, но допиленные вручную. Как по мне - это смотрится лучше, чем предыдущая версия где я обмазался бесплатными ассетами с маркетплейса.","image":{"type":"image","data":{"uuid":"0d991267-3270-5268-b3c6-3621750872f6","width":1920,"height":1080,"size":227985061,"type":"gif","color":"646338","hash":"","external_service":[],"duration":136.866667,"isVideo":false,"has_audio":false}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"784ffe7a-530a-5f0f-8623-9e75d6c4da60","width":1280,"height":720,"size":623448,"type":"png","color":"2e3d1a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABwX/xAAhEAABBAEEAwEAAAAAAAAAAAABAgMEEQUABiExBxITQf/EABcBAAMBAAAAAAAAAAAAAAAAAAIEBgX/xAAjEQABAwMCBwAAAAAAAAAAAAABAAIDBBETEpEUISJBYpKh/9oADAMBAAIRAxEAPwAF2r4c3IzCEmVhMjEYU1yVNq9i2SCT6hJNV+GtTWLGC5rxY+QS0s0Yf1RP9fqmTns6zNkNQ9zZJLCHVpaHyQmkAmhVccVxpUVUx56m7oeLh7NKdtn5PJL8dYwKyEkgpSkgvKNiiK761F1QAmICdilfiaNR3RhOddTNkJS4oAOrAAPXJ0YJss8k3X//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"ea041c42-6347-55ce-849d-28f603159594","width":1280,"height":720,"size":235101,"type":"jpg","color":"304328","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwUGB//EACIQAAEDAwMFAAAAAAAAAAAAAAECAwUAERIEITETFCJBUf/EABUBAQEAAAAAAAAAAAAAAAAAAAUD/8QAHREAAgIBBQAAAAAAAAAAAAAAAAECAyEEETGBsf/aAAwDAQACEQMRAD8Ay6Hi5hcY4/F6hwhtBSCXAMU2PjiT9pOpuWyOTGtvffmi6qbJJvYktbVDCkWIWrtNKcjcrsd+RQnFK6itzyfdLvCQFDl9eH//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"2846632c-79fd-53e7-bd1b-579fb23471b0","width":1280,"height":720,"size":245427,"type":"jpg","color":"33412a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABAUGB//EACYQAAEDAgUDBQAAAAAAAAAAAAECAxEABQQGEhMhByJBFBUxUZL/xAAWAQEBAQAAAAAAAAAAAAAAAAAEAgX/xAAeEQABBAIDAQAAAAAAAAAAAAABAAIDERJRBCFxgf/aAAwDAQACEQMRAD8Ans1DFqshwVz0+lQ4QkuqgtiQQPPHj5ikXvVuT2oy/Z1pHAUbeTI+51UGIT4hw7vY+Is88GRa84kGvUX1jdd32TuLlS1au48xMTWf7roJAdX+jWeXuAoFXzWgzuNaX//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"8da1885c-bc2b-5869-bb2c-0f3ed76f0e26","width":1280,"height":720,"size":249985,"type":"jpg","color":"394129","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgf/xAAjEAABAgUEAwEAAAAAAAAAAAABAgMABAYRIQUSEzEyQWGx/8QAFgEBAQEAAAAAAAAAAAAAAAAABAIF/8QAHREAAgEEAwAAAAAAAAAAAAAAAQIAAwQRQRIhIv/aAAwDAQACEQMRAD8AIz78nqVKy7s2XEzjYUm5AIWnGbkZgQtrTitRM+tJJ632t86gLUqze33DJcWnIouQBKpVrDLNDp4WW27PlI2JAsL9Y9RK3QOVeB5H9jCSoxUZMu7VQ460J//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Покринжевать с говнокода:

"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2FKaboms%2FShrek-2-Remake%3Fref%3Ddtf.ru&postId=2598903","title":"GitHub - Kaboms/Shrek-2-Remake: Remake of the culted Video Game - Shrek 2 on Unreal Engine 5.","description":"Remake of the culted Video Game - Shrek 2 on Unreal Engine 5. - GitHub - Kaboms/Shrek-2-Remake: Remake of the culted Video Game - Shrek 2 on Unreal Engine 5.","image":{"type":"image","data":{"uuid":"https://leonardo.osnova.io/ico/github.com","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"v":1,"hostname":"github.com"}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Самые смелые могут даже пощупать:

"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2FKaboms%2FShrek-2-Remake%2Freleases%2Ftag%2Fv0.1%3Fref%3Ddtf.ru&postId=2598903","title":"Release v0.1 · Kaboms/Shrek-2-Remake","description":"Pre-alpha-beta-zeta test version","image":{"type":"image","data":{"uuid":"https://leonardo.osnova.io/ico/github.com","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"v":1,"hostname":"github.com"}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Если очень хочется, то и за прогрессом можно следить:

"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Ft.me%2F%2BIPbDVXhMxfszZGRi&postId=2598903","title":"Shrek 2 Remake","description":"Канал о разработке Shrek 2 Remake. Гитхаб https://github.com/Kaboms/Shrek-2-Remake Ютюб https://www.youtube.com/@kabomss/videos Писанина https://dtf.ru/u/131399-kaboms","image":{"type":"image","data":{"uuid":"0c5ec522-6456-5837-a7a9-efa6a12645d2","width":180,"height":180,"size":4016,"type":"png","color":"26a5e4","hash":"","external_service":[]}},"v":1,"hostname":"t.me"}}}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":15,"favorites":28,"reposts":0,"views":8218,"hits":1376,"reads":null,"online":0},"dateFavorite":0,"hitsCount":1376,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":false,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://dtf.ru/indie/2598903-shrek-2-remake-teper-opensource","author":{"id":131399,"name":"Kaboms","nickname":null,"description":"Unreal Engine Developer","uri":"","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"7e84a214-0bef-5c8a-98c7-33a1722a2e48","width":2560,"height":1600,"size":1031842,"type":"jpg","color":"131313","hash":"","external_service":[]}},"cover_y":0},"achievements":[{"title":"Год на DTF","code":"registration_1_year","description":"Первый год с DTF. Получена 2 июня 2025.","previewUuid":"d6655520-3ebc-52c3-8b92-696b019b5788","formats":{"glb":"https://static.dtf.ru/achievements/egg-01.glb","usdz":"https://static.dtf.ru/achievements/egg-01.usdz"},"viewData":{"contentColor":"#1F97D4","textMaxWidth":0.62890625,"textX":0.5,"textY":0.6943359375,"logoX":0.5,"logoY":0.818359375,"logoXNoText":0.5,"logoYNoText":0.6865234375},"id":1728456,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/1728456"},{"title":"5 лет на DTF","code":"registration_5_years","description":"Провёл 5 лет вместе с DTF. Получена 2 июня 2025.","previewUuid":"1cfb91f8-db3e-5624-9beb-4b71082eecc5","formats":{"glb":"https://static.dtf.ru/achievements/egg-02.glb","usdz":"https://static.dtf.ru/achievements/egg-02.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.625,"textX":0.5,"textY":0.533203125,"logoX":0.5,"logoY":0.6572265625,"logoXNoText":0.5,"logoYNoText":0.5390625},"id":123810,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/123810"}],"lastModificationDate":1763076238,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":true,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":64960,"name":"Инди","description":"Истории из жизни инди-разработчиков. Если вы делаете свою игру — это лучшее место, где о ней можно рассказать всему DTF.","uri":"/indie","avatar":{"type":"image","data":{"uuid":"044c3d8c-3200-4bdc-c4e3-40e99fec6777","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"cover":{"type":"image","data":{"uuid":"fa9323db-0b02-8abe-5ee4-ec31b8d32568","width":800,"height":450,"size":14309,"type":"jpg","color":"a454ef","hash":"","external_service":[]}},"lastModificationDate":1631402619,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"indie","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":66}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}},{"type":"entry","data":{"id":2221433,"customUri":null,"subsiteId":131399,"title":"Shrek 2 Remake - в поисках утраченной ламповости","date":1698830928,"dateModified":1698830928,"blocks":[{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Мне очень нравится эта анимация ходьбы у селюков.","image":{"type":"image","data":{"uuid":"3f35f17b-1a6b-560c-b506-0f15eb963044","width":600,"height":450,"size":224038,"type":"gif","color":"201d1f","hash":"","external_service":[],"duration":5.52,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Предисловие и нюансы разработки"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Прежде всего спасибо всем за отклик и положительный фидбек! Не ожидал такой реакции от сообщества. Было много справедливых замечаний касаемо атмосферы и общей визуальной составляющий. Я и сам в итогах прошлого поста особо подчеркнул этот момент и по моему мнение первая локация на данный момент выглядит на 4 из 10.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Что для меня важно на данный момент? Это прежде всего реализация локаций с точки зрения их архитектуры. Для меня важно перенести локации в каком-то базовом виде, чтобы они полностью воспринимались по Левел Дизайну как локации из оригинальной игры. На самом деле переносить локации из оригинала на глаз это достаточно муторная работа — нужно соблюдать масштабы и пропорции, чтобы в конечном итоге не обнаружить что на карте что-то не вмещается или наоборот занимает слишком много места.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Вид локации сверху. Растительность выключена.","image":{"type":"image","data":{"uuid":"ce8ff70b-874d-568e-b76a-8b29e73d8fea","width":1372,"height":791,"size":773786,"type":"png","color":"717464","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQQG/8QAIRAAAgEEAgIDAAAAAAAAAAAAAQIDAAUREgQhMVFBYXH/xAAYAQACAwAAAAAAAAAAAAAAAAACBQADBP/EAB8RAAIBBAIDAAAAAAAAAAAAAAABAgMREiETFDFRYf/aAAwDAQACEQMRAD8ALv8ANbYItOWOPwtWWKRllDBST0SMkYGSDj1S+nXu8UVTjCK2Hta4tjrwUcZ6ZZBqR7H1Rc30nVi9lNxVVt7lVAO0i9D4ERwPylbdno3OKt4MDMzLNIqsQAxAAPjujzl7AP/Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Да, моя первая мысль при создании первого уровня — «Я убил ламповость»"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Оригинальная игра практически не имеет теней и не содержит в себе минимальную работу со светом. Имитация лучей света, они же God Rays (Лучи Бога) делаются с помощью вот таких вот спрайтов расставленных по уровню:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"07311eb1-2c0c-5227-8153-56b3d6178ddc","width":710,"height":641,"size":38794,"type":"png","color":"242425","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMGCf/EACIQAAECAwkAAAAAAAAAAAAAAAEAAhJSkQQFERMWITFiof/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFREBAQAAAAAAAAAAAAAAAAAAAEH/2gAMAwEAAhEDEQA/AM+BcLRZXMyhE543w4AVgTp7p4oLSBsoogIGSiiD/9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"a910cfef-82e5-5b1f-9244-43d4fa284d50","width":610,"height":972,"size":1248557,"type":"png","color":"2b3b29","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAgYI/8QAJhAAAQMCAwkBAAAAAAAAAAAAAQIDEQAEBhMhBRIiMUFCUWFxsf/EABgBAAMBAQAAAAAAAAAAAAAAAAIEBQED/8QAJBEAAgECAwkAAAAAAAAAAAAAAQIAAwQFESESIjFCUWFxkeH/2gAMAwEAAhEDEQA/AMkvYkcfvri9ubRkPNQlKkRzMyo+SZ/aWpXLVaQZjme/H7ItHClCbSk+DEMX3ccCiE9B6pY0mOoMI4S55pP7bAbIywE74JVGk/ay21QZ9DL7je9xNgZadO0UYnCf/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Как мне кажется они неплохо добавляют той самой ламповости и сказочности. И тут оригинал уничтожил и переиграл меня — у меня на данный момент такие лучи используются только в главном меню.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Имитация динамичных лучей света реализована с помощью двух движущихся спрайтов взятых из оригинальной игры. Мне кажется там используется тот же способ.","image":{"type":"image","data":{"uuid":"09dd6128-2f80-567b-9911-7bf0f4d014b1","width":600,"height":338,"size":698029,"type":"gif","color":"0a0a0a","hash":"","external_service":[],"duration":15.28,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Еще один важный момент — яркость и цвет света. Здесь я тоже выставил слишком реалистичный и холодный цвет и получил картинку в стиле напоминающем Skyrim.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для сравнения игра с разным расположением солнца, его яркостью и светом:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"d68c417b-8b0b-5c44-8075-e1c821302d65","width":1850,"height":768,"size":917813,"type":"png","color":"2c2b19","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQYH/8QAJxAAAgEDAgMJAAAAAAAAAAAAAQIDBQYRAAQSFiEHCBMUMTJBYXH/xAAYAQACAwAAAAAAAAAAAAAAAAADBAECBf/EACIRAAIBAgUFAAAAAAAAAAAAAAECAAMRBAUhMZESE0Fxwf/aAAwDAQACEQMRAD8AmrA7okdrUePmy4aLBWd0siQNtqpIoUcPsYoMFsnIwCPjWVWyzFUWuq2v7+QKV8tY9LXv4sYdUuwq5NpUd1tWrMHFDM8Zzc6r1DEemBj8wNBNKqNCw5Ma7eGOoUzFTdl1eBTZeZqrxshBbzsmSPs51ZK9Uu4LHkwTooAIEEnrFXkmkkkqm8d3YszNOxJJPUk51B3jA2n/2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"5220f27e-d779-5c65-851a-7c9e9c7011fa","width":1850,"height":793,"size":947329,"type":"png","color":"282110","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgf/xAAjEAABAwQCAgMBAAAAAAAAAAABAgMEBQYREgAhIjEIEyZB/8QAGAEBAAMBAAAAAAAAAAAAAAAABAECAwX/xAAgEQACAQQBBQAAAAAAAAAAAAABAgADBBEhURIUIlLR/9oADAMBAAIRAxEAPwATZvxLnW5RERahXKexcb7G5RGqnipG6QMda7DOD7Tg84NW3urd9DAP2NpJYVPHeRxJ9Mpt5U2W/TnJUveK4plX6TXtJwegrA9ehwxvGU4LGI7Sh6GBZt2XUl+Prc1VH2Q074mueXX9775ulV3VgzE75lekKcrqC35Eh15xxx9xa1qKlKUokkk9knkECNn/2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"6b0c0a15-d2c4-52e9-b7cd-0a56f20f3a99","width":1890,"height":798,"size":985223,"type":"png","color":"3d2f1a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBv/EACUQAAEDAgYBBQAAAAAAAAAAAAECAwUEEQAGCBIhMRMHFEFRYf/EABYBAQEBAAAAAAAAAAAAAAAAAAUEA//EAB8RAQACAgICAwAAAAAAAAAAAAEAAgMRBBIhYTFBkf/aAAwDAQACEQMRAD8AzuTtDHqHCU7b0nJQVJIPNLShsSDnFhexUhJG7m4+OMCZODfCimt7+2IVrwbW6o+tQq9OueaSqepaiqc8rLim1+OfQE7gbGw4sL/gxLbJeq17fHuX14fHsb6sjRebc1BO8Zmlgrq/vXL229d4MtnyqjZ/WbdaiaIh2Vk3HFrXJVSlKUSSXlEk/feJkHyxOq6J/9k="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"ba0bbc36-c456-5f06-b9fe-23e17656ebfe","width":600,"height":340,"size":382322,"type":"gif","color":"725333","hash":"","external_service":[],"duration":2.04,"isVideo":false,"has_audio":false}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"670788af-b522-5514-9cad-67f8c9061bd2","width":600,"height":414,"size":849703,"type":"gif","color":"322816","hash":"","external_service":[],"duration":4.72,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Но дело не только в свете"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Еще одним сильно выбивающимся компонентном являются модели окружения и растительности. Местами они слишком реалистичны, местами они по визуальному стилю отличаются друг от друга. И на самом деле это очень сложный момент касаемо того, как перенести достаточно мультяшную игру 2003 года на современные реалии 2023 года.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Тут мы можем наблюдать пересвеченный камыш, слишком реалистичный куст и дерево с передозом контраста. Но чего еще можно ожидать от смеси бесплатных ассетов из маркетплейса.","image":{"type":"image","data":{"uuid":"7d50b1cc-39ab-5c09-9bf9-5d2508373d31","width":1425,"height":759,"size":845299,"type":"png","color":"2e2114","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAUG/8QAJBAAAgEDAwMFAAAAAAAAAAAAAQIDBBFBAAUUBiFhBxMiMTP/xAAYAQACAwAAAAAAAAAAAAAAAAACBQADBP/EAB4RAQACAgIDAQAAAAAAAAAAAAEAAgMREjEhUVKR/9oADAMBAAIRAxEAPwAc0U/qFtFTue8UBrqOR4Y1kZzdpPdNlsDknPjSMpir13G7hxY3YSHVN1ktVMtSoeYSMJGMQJLX7m+e+oUxPnUo5nyfhEZvEUTckNEhHKg+1GL20tquyaaAjuZmrjTlTfBf0bHnRkPiep//2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Но при этом оригинальная игра сочетает в себе достаточно мультяшные цветы и кусты:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"210d50ff-a861-5016-a0de-080bcf5a9b3b","width":650,"height":547,"size":256690,"type":"png","color":"5a5e19","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgUH/8QAJxAAAQMCBAUFAAAAAAAAAAAAAQMEEQACBRIhMQcTFSIjQVFhYnH/xAAYAQACAwAAAAAAAAAAAAAAAAACBgEFB//EACURAAEEAAILAAAAAAAAAAAAAAEAAgMhBFEFERITFDEyQXGRwf/aAAwDAQACEQMRAD8AxgYg+wZ6XjlhemFBNoOYAEgz++8baxWQFrpG7OtWEk8sUhdMyj5y5/VT6a1X81ow0hTuEO43129KEYiQVfpBxko6TSTcSkUc7C3lWQXIkZR8UMJNpo0+0Hd13RgNWwEBukAPoKguOaXixuS//9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"7251d033-1416-57a5-abcb-542451bc892f","width":770,"height":580,"size":279960,"type":"png","color":"263410","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAUI/8QAHBAAAgEFAQAAAAAAAAAAAAAAAQIDAAQREiEx/8QAFwEBAQEBAAAAAAAAAAAAAAAABAMCBv/EAB4RAAICAgIDAAAAAAAAAAAAAAECABEDEyFhEjFR/9oADAMBAAIRAxEAPwDFNs1rBPDPOkF8AmxikVgpPQVJGDyuXZhiYFTf3qFOYqwPvqR2M5YlSqjPBnyr2p5mdSHmo64d1MoVyNWYDB8ooA8llMgGyBFLiKn/2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

С более или менее реалистичными, но мыльными и слегка вычурными мостами и деревом:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"747b6050-d993-5f4d-8118-59103bdd848b","width":1235,"height":420,"size":296123,"type":"png","color":"52542f","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAQIECP/EAB8QAAIBBQADAQAAAAAAAAAAAAECAwAEBhEhBRKRMf/EABkBAAIDAQAAAAAAAAAAAAAAAAQGAQIDBf/EACURAAEDAgMJAAAAAAAAAAAAAAEAAgMRQRMVIQQFEhYiMXGRof/aAAwDAQACEQMRAD8AzcclzK2uEnWC1gdHYIp9n0DwHZP7SoNxQtGI91AfC0z5kElYm9Q07IjK84UBXu4iw4SYT0/avlUFnD2FPMNdST9Vfl0QWK6UDUia5TDt7GmIVFwuFIBxEpzHGSSY1+UBhMFghV//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"d1fa919e-6616-5725-af20-df32ba765da6","width":726,"height":1095,"size":479785,"type":"png","color":"6c4f25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUI/8QAJRAAAgIBAwIHAQAAAAAAAAAAAQIDBAUABhIRQRMhIjEyUWGR/8QAFgEBAQEAAAAAAAAAAAAAAAAABAUG/8QAIhEAAgIBAwQDAAAAAAAAAAAAAQIAAxEEEiEFMUGxE2HR/9oADAMBAAIRAxEAPwDO+RtRjAbvi5r4lTIzFeY9QKlH8u/Y/wB1ga8fLSR2YD8mtbUrZVYVOec+og43JLfx1W9HcrhbECSqC3sGUH7/AHUmxhW5Q+DiJXqNOBlxBLcUjx7l3bGjsqtZsAqD0B+Wrml509J+hIVZKkgdto9iVsNZsriKKrYlAFaIABz0A4jRLlU2tx5MOwG4z//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Ту же вычурность и контрастность мостов я тоже успешно упустил заменив на серое и реалистичное дерево:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"203238d6-281c-50ab-bf11-f788bd65a9d5","width":919,"height":817,"size":365514,"type":"png","color":"a9b0ba","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgQGB//EACUQAAIBAgUDBQAAAAAAAAAAAAECAwQFAAYHITEIERITFCNBkf/EABYBAQEBAAAAAAAAAAAAAAAAAAQDAf/EAB0RAAICAQUAAAAAAAAAAAAAAAABAxExAgQSMlL/2gAMAwEAAhEDEQA/AAg1D1D1LvMuWrfXXC00FI/t5Ku4x/M59J3VVRSPPyMbbgdt13OEXKnWAqj01kto+lDLEkaSS6i5kDsoLDyj2J5+sW5SeibiQhpDT0736oqHgjaUSuQ5UFgQhA354J/Thu87IyHBtYA7cYIXP//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"1d42618d-8a0c-5e01-aecb-5737030cb144","width":1686,"height":1177,"size":362943,"type":"png","color":"22211e","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwUGCP/EACIQAAIBBAEEAwAAAAAAAAAAAAECAwAEBRESBgcTMSFRgf/EABgBAAIDAAAAAAAAAAAAAAAAAAMEAQIF/8QAHxEBAAIBAwUAAAAAAAAAAAAAAQACEQMEEhMUIjFB/9oADAMBAAIRAxEAPwDHrdrOiLFJclm8ne2dvd2y3WOtDHynlVtHWwOIIOwS2t+xWP3u4s8KVFHC/Iy008cj1JCXB4CWR5IofEjsWVCSSoPoflOnXDDA+Mbu7PLzdizABQSdnQHwKPWoDglWD0PoUSRP/9k="}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"И что же со всем этим делать?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Мои способности в 3D моделинг сводятся примерно к этому.","image":{"type":"image","data":{"uuid":"88c03694-55d6-5c98-b9dc-080769056917","width":600,"height":300,"size":503361,"type":"gif","color":"3e3b3b","hash":"","external_service":[],"duration":11.52,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для теста я решил сделать стартовый участок с использованием чуть допиленных оригинальных ассетов и как по мне это больше подходит по духу к оригиналу:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"0fe1983a-4546-5c7d-87a7-40c2a74225f4","width":1607,"height":975,"size":1060083,"type":"png","color":"3d3518","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAQUGB//EACYQAAIBAgQFBQAAAAAAAAAAAAECAwQRAAUGIQcIElFxFSQxQZP/xAAYAQADAQEAAAAAAAAAAAAAAAACBAUDBv/EACURAAECBAQHAAAAAAAAAAAAAAEAAgMEEZEFEhNSFSExMlFicf/aAAwDAQACEQMRAD8Az/TfLNxhyyjY1dBkQlnpgWQZpEwVQw8rff46h3745w4eZcEVPP4qDYEu91KmyWT6M1Ks0iySzBwxDBJIwt772s1reNsTjMQtye4XD9rKD9SzFdPMy19SCGh3ErX3Iv8AeMT30QZjpdUBW1lh7ub9DgcrfCW1om43X//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"97affbfb-6c3f-5913-a749-4c1313835c1b","width":1941,"height":1001,"size":1181165,"type":"png","color":"353f1a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgj/xAAjEAACAgEDBAMBAAAAAAAAAAABAgMEBQARIQYSMUEIE0Nh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgUGA//EACARAAEEAQQDAAAAAAAAAAAAAAEAAgMhBBESMUFxkaH/2gAMAwEAAhEDEQA/ABHT/wAbs1iK9ya39FesixTzRtahnkRRuNwgBVjv6LDz/dIZMaTGBGlc9IQ2FztQDXhEbnR+Ze3O9bBZ2WFpGMchnRC678HtA43Hr1pfuy3WG/SsSbppVdZa5bGDdham3aKTuPeeeD51IzSvLeT7VbO47DakxLtwopNuYkgfodEo1f/Z"}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"1ae33830-2946-558e-bee4-0522b81a80b7","width":600,"height":362,"size":371785,"type":"gif","color":"3a3e23","hash":"","external_service":[],"duration":2.12,"isVideo":false,"has_audio":false}}}]}},{"type":"quiz","cover":false,"hidden":false,"anchor":"","data":{"uid":"","hash":"65dfae5d49dd51d5","tmp_hash":"","title":"Что лучше?","items":{"a16987441200":"1. Реализм","a16987441201":"2. Близость к оригиналу"},"is_public":false,"date_created":0}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

И бонусом покажу вам прогрес по второму уровню. Он является достаточно небольшим и служит для обучения игрока боевой системе и проходится примерно минуты за 3. Дальше же этап обучения заканчивается и начинаются уже более продолжительные и интересные уровни, поэтому все самое веселое еще впереди.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"345fb46b-c61e-515e-afc6-145b8b421143","width":1661,"height":1020,"size":932128,"type":"png","color":"2d2825","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwEI/8QAJRAAAgAFAgYDAAAAAAAAAAAAAQIAAwQFEQYSBwgTITFhIkOS/8QAFwEBAQEBAAAAAAAAAAAAAAAABAYBBf/EAB8RAAEEAgIDAAAAAAAAAAAAAAEAAgMRBCESkRUyYf/aAAwDAQACEQMRAD8AyDqTgdqS2OJVlt1ZVyioeoU7My5mO5XaxyPHuBiQmFkpaRrdhOyYhHkSNjFi9H4onL/WOiu2obehYAlWOGX0RnsYzzWONcXdFGbgzEA2O0vWqpqFrUCz5g+S+GMdeb0KTATzCX+vOP3P+jEhSqrX/9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"5bcf9999-3cfe-5a1a-83d1-e3e022ecaa67","width":2383,"height":1269,"size":1311260,"type":"png","color":"3d2a1f","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgUI/8QAJxAAAgEBBgUFAAAAAAAAAAAAAQIDBQAEBhESExQxMkFRISJhcZH/xAAXAQEBAQEAAAAAAAAAAAAAAAAFAgME/8QAJREBAAECAwgDAAAAAAAAAAAAAQADEQIEIgUUFSExNUFEUWHw/9oADAMBAAIRAxEAPwDEj4LrQqpp8SQ8ZKTMsW6NQhHoGH4fmw+/mEKyaQtGquSqlRy2E1KtrnSJYcCVNIkR7xd1ZVAIN1LZHLln3+7RxrD4JBsXM25jGgUGn7uQ17fV36vNsPWt9xB7n++JGZ31H3tz825bEdVn/9k="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"540eae2b-6a9e-5260-978f-9dfbc3d4d3fe","width":600,"height":336,"size":315577,"type":"gif","color":"313035","hash":"","external_service":[],"duration":4.52,"isVideo":false,"has_audio":false}}}]}},{"type":"media","cover":true,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"74292a5f-5c3b-5159-b61e-1925b2285b62","width":600,"height":338,"size":300892,"type":"gif","color":"2b291f","hash":"","external_service":[],"duration":2.84,"isVideo":false,"has_audio":false}}}]}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

А вы знали, что в этом уровне можно подняться на горку слева от кареты и обнаружить маленькое секретное место с монетками? Я вот узнал только сейчас:

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"949da15c-c555-5039-ab6e-f2b60cc0f31d","width":1629,"height":730,"size":812363,"type":"png","color":"1b2819","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwQFCP/EACMQAAECBQUAAwAAAAAAAAAAAAECAwAEBhEhBRITFDEiQVH/xAAYAQADAQEAAAAAAAAAAAAAAAACAwQFBv/EACIRAAEDAwMFAAAAAAAAAAAAAAEAAiEDBDEREhMUYXGB4f/aAAwDAQACEQMRAD8Ax9q6qQqxTTrjMtobrS8FuXKi7vVc7inASnwfdolr3fUO1ADRPxIpXNBjczGfBBUacpSn+2/1dQlOHkVx2cI+N8e58/cwvkc6YHsrQbdWbWhu4x2SyQACQMhKLGJjlc2jrSnerA9MEhX/2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"3fa60fa4-f2a3-5b0a-941f-9e3ebceec111","width":2491,"height":1180,"size":1329188,"type":"png","color":"161a0f","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwQGCP/EAB8QAAEDBQADAAAAAAAAAAAAAAECAxEABAUSITFRYf/EABYBAQEBAAAAAAAAAAAAAAAAAAIBBP/EABsRAAICAwEAAAAAAAAAAAAAAAABAxECIUEx/9oADAMBAAIRAxEAPwDA7Jt0YkXt64laSmAtoqSAeHUHWCvp58mawXL6noeE2rkV8FBmMakaoL+o4JPYo03tsLyjv1k+XHC2Gi4rSZ1nk+4pcM/ABJnyapT/2Q=="}}}]}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":9,"favorites":6,"reposts":0,"views":5937,"hits":515,"reads":null,"online":0},"dateFavorite":0,"hitsCount":515,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://dtf.ru/indie/2221433-shrek-2-remake-v-poiskah-utrachennoi-lampovosti","author":{"id":131399,"name":"Kaboms","nickname":null,"description":"Unreal Engine Developer","uri":"","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"7e84a214-0bef-5c8a-98c7-33a1722a2e48","width":2560,"height":1600,"size":1031842,"type":"jpg","color":"131313","hash":"","external_service":[]}},"cover_y":0},"achievements":[{"title":"Год на DTF","code":"registration_1_year","description":"Первый год с DTF. Получена 2 июня 2025.","previewUuid":"d6655520-3ebc-52c3-8b92-696b019b5788","formats":{"glb":"https://static.dtf.ru/achievements/egg-01.glb","usdz":"https://static.dtf.ru/achievements/egg-01.usdz"},"viewData":{"contentColor":"#1F97D4","textMaxWidth":0.62890625,"textX":0.5,"textY":0.6943359375,"logoX":0.5,"logoY":0.818359375,"logoXNoText":0.5,"logoYNoText":0.6865234375},"id":1728456,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/1728456"},{"title":"5 лет на DTF","code":"registration_5_years","description":"Провёл 5 лет вместе с DTF. Получена 2 июня 2025.","previewUuid":"1cfb91f8-db3e-5624-9beb-4b71082eecc5","formats":{"glb":"https://static.dtf.ru/achievements/egg-02.glb","usdz":"https://static.dtf.ru/achievements/egg-02.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.625,"textX":0.5,"textY":0.533203125,"logoX":0.5,"logoY":0.6572265625,"logoXNoText":0.5,"logoYNoText":0.5390625},"id":123810,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/123810"}],"lastModificationDate":1763076238,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":true,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":64960,"name":"Инди","description":"Истории из жизни инди-разработчиков. Если вы делаете свою игру — это лучшее место, где о ней можно рассказать всему DTF.","uri":"/indie","avatar":{"type":"image","data":{"uuid":"044c3d8c-3200-4bdc-c4e3-40e99fec6777","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"cover":{"type":"image","data":{"uuid":"fa9323db-0b02-8abe-5ee4-ec31b8d32568","width":800,"height":450,"size":14309,"type":"jpg","color":"a454ef","hash":"","external_service":[]}},"lastModificationDate":1631402619,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"indie","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":32}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}},{"type":"entry","data":{"id":2218386,"customUri":null,"subsiteId":131399,"title":"Shrek 2 Remake или чем заняться разработчику на выходных? Пилить ремейк любимой игры детства.","date":1698314000,"dateModified":1698314000,"blocks":[{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Тот самый туалет","image":{"type":"image","data":{"uuid":"5196ca25-722d-5f9d-a9ba-799ab6666753","width":2560,"height":1440,"size":2136841,"type":"png","color":"242716","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwYHCP/EACYQAAEDAgYABwAAAAAAAAAAAAIBAwQFEQAGBxIhMQgTFCIkQVP/xAAWAQEBAQAAAAAAAAAAAAAAAAAFBAP/xAAgEQACAgIABwAAAAAAAAAAAAABAgADBBESEyEiQWHw/9oADAMBAAIRAxEAPwDMWmemeYaxRzoksI4umu6KBFuFx0jVfcY8Clltcu145wIlhyX40HaPhNa7bKlI2PW4KR4Y9dPUO7cr0+28rbaxHta/1c+sJrj2kDqJA2QxYxmiSZMXUnJ7EaQ402TL6kAGoiq+UXaJgfEUctzrzF8g6IEq5TpqEvzH+/0XFwJh5n//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"d1658fa1-a0e1-55aa-a6d5-9d00de034a5f","width":2560,"height":1440,"size":1901991,"type":"png","color":"363b1f","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAYH/8QAIxAAAgEDBAEFAAAAAAAAAAAAAQIDAAQRBQYSITEUIjJBUf/EABUBAQEAAAAAAAAAAAAAAAAAAAYE/8QAIREBAAEEAQQDAAAAAAAAAAAAAQIAAwQRIRITIlExQbH/2gAMAwEAAhEDEQA/AC0+wNe1o2+E5XCQNI8TSAPgn59+VB6J/cUSsZtsGaPT71xVlrEldYkDy1pqNl2rfwyvC8qBo2Kkcx5BxV5lRTdQyt3YqIUx7NVj2JPJGAriOQch0ccx90Yw5ScFivHUUnxgMnZ6fysY9HaP73tYWZuySgJJpxZtw7ceD4KP3ZPclz9tf//Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"UPD 05.04.2024"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Проект теперь OpenSource, первый уровень полностью переделан, все скриншоты в этой статье устарели.

"}},{"type":"osnovaEmbed","cover":true,"hidden":false,"anchor":"","data":{"osnovaEmbed":{"type":"osnovaEmbed","data":{"original_id":2598903,"isNotAvailable":false,"title":"Shrek 2 Remake - теперь OpenSource","description":"И первый взгляд на переработанный первый уровень.","isEditorial":false,"image":{"type":"image","data":{"uuid":"0d991267-3270-5268-b3c6-3621750872f6","width":1920,"height":1080,"size":227985061,"type":"gif","color":"646338","hash":"","external_service":[],"duration":136.866667,"isVideo":false,"has_audio":false}},"url":"https://dtf.ru/indie/2598903-shrek-2-remake-teper-opensource","blocks":[{"type":"text","cover":true,"hidden":false,"anchor":"","data":{"text":"

И первый взгляд на переработанный первый уровень.

"}},{"type":"media","cover":true,"hidden":false,"anchor":"","data":{"items":[{"title":"Да - это в основном ассеты из оригинальной игры, но допиленные вручную. Как по мне - это смотрится лучше, чем предыдущая версия где я обмазался бесплатными ассетами с маркетплейса.","image":{"type":"image","data":{"uuid":"0d991267-3270-5268-b3c6-3621750872f6","width":1920,"height":1080,"size":227985061,"type":"gif","color":"646338","hash":"","external_service":[],"duration":136.866667,"isVideo":false,"has_audio":false}}}]}}],"date":1712316362,"author":{"id":131399,"name":"Kaboms","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}}},"subsite":{"id":64960,"name":"Инди","avatar":{"type":"image","data":{"uuid":"044c3d8c-3200-4bdc-c4e3-40e99fec6777","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}}},"likes":0,"comments":18,"isBlur":false,"warningFromEditor":null,"warningFromEditorTitle":null}}}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Ft.me%2F%2BIPbDVXhMxfszZGRi&postId=2218386","title":"Shrek 2 Remake","description":"Канал о разработке Shrek 2 Remake. Гитхаб https://github.com/Kaboms/Shrek-2-Remake Ютюб https://www.youtube.com/@kabomss/videos Писанина https://dtf.ru/u/131399-kaboms","image":{"type":"image","data":{"uuid":"0c5ec522-6456-5837-a7a9-efa6a12645d2","width":180,"height":180,"size":4016,"type":"png","color":"26a5e4","hash":"","external_service":[]}},"v":1,"hostname":"t.me"}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для начала, а почему Shrek 2?

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Я не был в курсе форса на dtf по поводу ее номинации на игру года от сообщества. Я особо не в курсе почему игра пользуется такой популярностью в РУ сегменте интернета - да, я слышал что-то про папича, но в целом все это прошло мимо меня. По моему мнению сказывается общая ламповость игры и огромное значение первоисточника.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"e0becbbb-046b-5dcf-b387-e24b8d0567ff","width":2560,"height":1440,"size":2122684,"type":"png","color":"202312","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABAf/xAAmEAABAwIFAwUAAAAAAAAAAAABAgMEABEFBhIhMQcTUQgUFiIy/8QAFwEBAQEBAAAAAAAAAAAAAAAABAMCBf/EACIRAAEDAwMFAAAAAAAAAAAAAAEAAgMRIUESM1EiMYGh8P/aAAwDAQACEQMRAD8AheAenPJODGHHPXSGmTPaOtyJhrjjLQH2GtzWLXNwCRv4oQfGOqNwLckYRnRB93x3wK90t/pLhKH3EfMcvvaVkd1SiVL3/RJNyTzvRDO6u4PvCuIogNn2o5lqTJdjzFOyHFlmEA2VLJKBY8eK5k1gAOVdpqAge9mHcy3iTye4a1pHCC4mpX//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"cfbedde1-a3d6-5169-94a3-5475f11cbcb3","width":2560,"height":1440,"size":1875947,"type":"png","color":"4f4e2d","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgQHCP/EACIQAAICAgEDBQAAAAAAAAAAAAECAxEABQQGElEHITJBYf/EABYBAQEBAAAAAAAAAAAAAAAAAAUEBv/EACQRAAICAQMCBwAAAAAAAAAAAAECAAMRBCExEtETIkJRYZHB/9oADAMBAAIRAxEAPwDOOq0G0HEPI2ESsJiJW4ZtZJAtjuJA+iavycGsHXtWeRnbjtJbEUHxLaODj2PfEFunte7F29Ni5Y2WAJv9+eFM7qxXrG3yJaltJUEUH6aXjhTSvrWR5XZfcUWJFd4zNq7DREZ9X5NLX5tVlojQ8DD8mJT/2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Я же выбрал ее потому что она лишила меня игровой невинности. Примерно в 2005 году, когда мне было 6 лет - родители купили первый для нас компьютер и несколько дисков с музыкой и этой игрой. Отчетливо запомнился момент, когда отец посадил меня и сестру за компьютер, запустил Shrek 2 и показал нам как в него играть. Помню свой восторг от этой игры, помню как проходил ее несколько раз - таким образом она стала моим теплым воспоминанием из детства.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"А зачем?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Потому что игры и разработка это мои две большие страсти. Я являюсь разработчиком на Unreal Engine и у меня давно зрела идея заняться в качестве хобби ремейком какой-нибудь своей любимой игры. Подвернулось время - и вот мы здесь.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"f6b019ec-7bdb-5f5b-9a5c-58dbd3b4f080","width":2560,"height":1440,"size":2403564,"type":"png","color":"27251a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUG/8QAJRAAAQMDAwMFAAAAAAAAAAAAAQIDBAAFEQYHIRMVMTJRU2HR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAIREAAgICAQQDAAAAAAAAAAAAAQIAAxEhEhMxQVFhgfH/2gAMAwEAAhEDEQA/ABOHtTb29C2m0jcu5szoTy34jDEVxTbCgQpJyHAEkhWOR74rAljadWPHefj9h2V1klTWoPvyc/UKZezsxMt5KrBOkkOKBe7kwnqHPqweRnzj7qOuDvIm3IGgspatu92Y1dpRpi6S20FTuUofUAeceAaJFBpY4kAnkJo0z55SCZr5JHyK/aAdo8//2Q=="}}},{"title":"","image":{"type":"image","data":{"uuid":"699d0313-8830-5896-a938-467244876d21","width":2560,"height":1440,"size":1973533,"type":"png","color":"434c2a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUG/8QAIxAAAgEDAwQDAAAAAAAAAAAAAQIDAAURBBIhBgcTMRRRsf/EABgBAAIDAAAAAAAAAAAAAAAAAAQFAQIG/8QAJxEAAQEGAwkAAAAAAAAAAAAAAQACAwQRITEFE6ESI0FRgcHR8PH/2gAMAwEAAhEDEQA/AAG5aDqHV6F3guatpQqO0RbMhQMVZyw9jJwT94rPMxEU06AaMxKdKW6fUG7weEh4jMYdnlWR9spJtluUlfkTcccBSP2gxiDMuGqZNQTiZ3Z08pTts847XTQiaTZkDbuOMeUH1SfMbyTU37JvsgvahYVoYSxJiQknJJUVIsrSC//Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как делать это все в одиночку?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Игра разрабатывается на Unreal Engine 5 - в маркетплейсе можно спокойно обмазаться неплохим количеством бесплатных ассетов. Если бы мне приходилось делать абсолютно ВСЕ с нуля - я бы даже не стал начинать, потому что я прежде всего программист и реализовывать все 3D модели и анимации у меня бы не хватило запала. Но из маркетплейса я использовал только ассеты растительности и ландшафта, а так-же некоторые визуальные эффекты - все остальное берется из оригинальной игры.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Как достать все это из оригинала? Для начала стоит помнить, что оригинальная игра разработана на Unreal Engine 2 и это сильно упрощает работу, потому что разработано множество инструментов для вытаскивания ассетов из игр на этом движке.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для вытаскивания музыки и звуков я использую Dragon UnPACKer 5 с последующей конвертацией аудио через FFmpeg в связке с десятком строк кода на Python.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Интересный факт - в игре имеется три вариации пердежа Шрека. Используются они в катсценах.","image":{"type":"image","data":{"uuid":"2e5285b3-f67a-5b0f-a073-50e3073104b3","width":325,"height":308,"size":30156,"type":"png","color":"252424","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgMI/8QAJxAAAQMDAwEJAAAAAAAAAAAAAQIDBgAFEQQHEkETISIlMTNysdL/xAAVAQEBAAAAAAAAAAAAAAAAAAADAP/EAB4RAAEFAAIDAAAAAAAAAAAAAAEAAgMEEhFRIUHB/9oADAMBAAIRAxEAPwDbbcH20iKozb75Ho4+7IGUafSpXa2EcnAEYSPCSSeXU9KStVsTgiNusgknoBDYtQV3NEjs6PAHZT87L7bE5MJjpJ9fKWPzRplK7MMPPRXtmUL4aFRTySDg4a7xR6LZRwfR+KyHDyE7Z9lHxH1SKX//2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для вытаскивания всех моделей и анимаций используются известный в узких кругах инструмент - UE Viewer (он же UModel).

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Интерфейс UE Viewer. На видео специальная атака Шрека. Своя спец атака есть у всех героев, но я не помню чтобы ее можно было использовать в игре.","image":{"type":"image","data":{"uuid":"feafe399-f637-5d9d-a8be-0303ec2c4871","width":796,"height":650,"size":357498,"type":"gif","color":"212120","hash":"","external_service":[],"duration":2.616667,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

После извлечения все модели я вручную преобразовываю в fbx формат с помощью Blender. Звучит просто, но на самом деле есть куча скучных заморочек для того чтобы все это упихнуть в Unreal Engine которые я пропущу.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Что делать со всем этим дальше?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Самый простой вариант, я бы назвал его \"В стиле Sony\" - использовать все те же ассеты из оригинальной игры перенося их на новую версию движка. Движок даст нам красивое освещение и даже с оригинальными ассетами все будет смотреться свежее. Дополнительно можно прогнать все текстуры через апскейлер. Получает ту же версию, но немного подтянутей - с вас 70$.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"53bd2015-b25e-57c8-a46c-b26e2a837057","width":2560,"height":1440,"size":2448985,"type":"png","color":"212811","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgQI/8QAJxAAAgECBAQHAAAAAAAAAAAAAQIDBREABAYhEjEyUQcTFSIjQUL/xAAXAQADAQAAAAAAAAAAAAAAAAACBAUB/8QAIxEAAgEDAQkAAAAAAAAAAAAAAQIAAxExIQQFEhMiMkFRkf/aAAwDAQACEQMRAD8AyJpDQ7Lp71XNVJcxLS5VeOF4mbj4T0m+yi1rBue4tiE+3VaqsyL0jJviClRApcHUePcpbX1CjYxy+GbO6mzMMuliRzOy4UFiL8Q+xgbwpW7YOyM8612jKszgPI5YBj7tvvvjGA5LxOhokbTTTea/yv1H9HvieMQ7Cf/Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"7c653af6-37c5-5d08-a056-fea12ed14f5a","width":2560,"height":1440,"size":2052959,"type":"png","color":"535221","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgf/xAAlEAABAwIFBAMAAAAAAAAAAAABAgMEABEFBhIhMRQiMkI3QaH/xAAYAQEAAwEAAAAAAAAAAAAAAAAFAQIEBv/EACURAAEDAwIGAwAAAAAAAAAAAAEAAhEDBCEFEhMUIjFRYXGRof/aAAwDAQACEQMRAD8AgByFmadMTisp6O5HJVLjtIfT1Gngnnwvsd+QK4V98G0DU2/JjC3WFGlbsPCENGRJz9p03Hw9LaUlOkhIFjbb9oDmneE8zVG7R0/qb5O+FFueyWHLK+x3ikGOJsHNnG8IbTQDE+1B3ZcourJkuklR9zUimyOyuQF//9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Делать все с нуля как Capcom в ремейках Resident Evil - это задачка не для программиста одиночки, который пилит все это ради удовольствия, а самый лучший способ убить всю мотивацию и удовольствие - задушишь себя непостижимыми задачами.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Поэтому я решил комбинировать оба этих подхода. Где это уместно я использую старые ассеты, но с новыми материалами и текстурами, иногда докидывая полигонов.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"2d59900a-eb7c-5529-a9a1-0dea263dd9d1","width":1170,"height":736,"size":510942,"type":"png","color":"6e5735","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQYI/8QAJhAAAgEDAgQHAAAAAAAAAAAAAQIDBAURABIGITNBBxQiIyRCUf/EABcBAQEBAQAAAAAAAAAAAAAAAAQDBQb/xAAkEQABAwIEBwAAAAAAAAAAAAABAAIRAwQFEhMhIjFBYXGBsf/aAAwDAQACEQMRAD8AzvwnSVtsvFVNaeEYoIq532UjSBQqKyq25QepknOT2xk4OuaxOvbw1zzwg8/i27Nz6A6SUlU3m6R1EsctntqursGBgUkHPPnjRWm2cARMJZ1id4VP4Y/Jtl2kqfdfdWNuf1HPmQM5PfmdExYDQHpRsTLt+6DrIITVz5hTqN9R+6lTJyDwlkCV/9k="}}},{"title":"","image":{"type":"image","data":{"uuid":"3b06afb6-ecc4-567b-8433-97247b47f6a0","width":1126,"height":634,"size":1055993,"type":"png","color":"32322a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABQf/xAAnEAABAwMDAQkAAAAAAAAAAAABAgMEAAUGBxEhEggTIkFDUVJx0f/EABcBAQEBAQAAAAAAAAAAAAAAAAIEAwb/xAAkEQABAwIEBwAAAAAAAAAAAAABAAIDBBEFEiFRE0FSYXGR8f/aAAwDAQACEQMRAD8AlemD+IYd2i4V7jY9FxK1oxaU4420p0gKU2odfjKlbk7Dj2FRYPOZ43OLs1iRf4lUyMlN2ADwjTqzq5uenNJqR5A90SB9kb09d0xIj9NrlcbvnmPu3WfJmrRbpzaVSHVOEJ+IKieOTxW+AxMiqHtY0AdhbkoajRhVNds9pLqybXEJKj6Cfyun4MfSPSlD3br/2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Апскейлинг текстур я делаю через опен сорсную софтину под названием Upscayl. Сверху можно накинуть карту нормалей и получить неплохой результат. Карты нормалей можно создать не выходя из браузера.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"7e87c62b-2f36-555d-977c-fd6147c47c75","width":688,"height":708,"size":296655,"type":"png","color":"252c1b","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgUHCP/EACQQAAICAAUDBQAAAAAAAAAAAAECAwQABQYRIRITQRQxMlGR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAgQBAwb/xAAgEQACAQMFAQEAAAAAAAAAAAABAhEAAzEEEiFBkRNR/9oADAMBAAIRAxEAPwDKuea0s6mzlcjisRQSPlSQSyzrXWvE79TIjkkdsnZySCD428nNWnZEDSCJwQZIGSIzkR7Ui89xQd3VNqWndCtSrsXoMTEh39aeeBz8sMHTvOKo23Oo8qSajmmp2admpK8E3RIO5GxVtun7HPk/uF9Cq3NyOJHHBxmkdGSCaOB3WCNVYgBAAAfbjAMxk80X0f8Aa//Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"acdd2da3-4f8e-5303-9d8f-794d67802714","width":1049,"height":947,"size":572090,"type":"png","color":"766c2e","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABQYHCP/EACEQAAEEAgICAwAAAAAAAAAAAAECAwQFERIAIQYHEzHR/8QAFgEBAQEAAAAAAAAAAAAAAAAABQQG/8QAIxEAAQQBAwQDAAAAAAAAAAAAAQACAxEEBRMxEiEioTJRkf/aAAwDAQACEQMRAD8AzxVeSWFHfpuLOunBpgSJEgNSHSjTOiR8KwOge8gH7HMLFHGGbbXjvQAIF3yfIX7TGDkDFeHEWBzSZ1eyKJ9ReUzJSXDsQUDIz3g98mdp77NEe1c7VscuJKJ3tfAm+PyzNhR5BbW3oXW0r1yoZxkdcIw5ZI8odDiLvgoOP5lUJusrUtpSmvjAAAABpP5wh0shJ8j+pHbZ9Bf/2Q=="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Также используя Blender в связке с плагином BlenderKit я накидываю новые материалы придавая старым моделькам более свежий вид.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"9ecd6f02-d79f-544b-9386-759e58442bd9","width":2560,"height":1440,"size":2409630,"type":"png","color":"27271c","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABQYHCP/EACcQAAEDAgQFBQAAAAAAAAAAAAECAwQFEQAGITIHEyMxURIUQUKR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAwQAAQX/xAAiEQACAgAFBQEAAAAAAAAAAAABAgARAyExQVEEEzNxkcH/2gAMAwEAAhEDEQA/AM61LIWSq0zTAzMrINi6XUJS6w2PSCpII1TtATe19LdsIYCjEWxrnf5L6l2V6YArtzEqfwvdXOkKjVmnckurLfRG25t8eMDV1oWjfIPvrsIOyTUqixxSorTE+S2h2U8laUOqAUOX2IB1Gp/cCfxMfUfXNxctEp9/3LvWc3q+x84yxiPWpkKrxP/Z"}}},{"title":"","image":{"type":"image","data":{"uuid":"6d59c5a7-f001-5e65-ae93-7d42dfdc6f31","width":2560,"height":1440,"size":2087585,"type":"png","color":"494f2a","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwQI/8QAJRAAAgEDAwIHAAAAAAAAAAAAAQIDAAQRBRIxBkETFCIyUWGR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAwQCBQb/xAAkEQABAwMDBAMAAAAAAAAAAAABAAIDBBExBRITFCEisUFRcf/aAAwDAQACEQMRAD8AziehJtM09tZv715o/NbXVC3ithQd5QjIT1ABuM1k5ah80nFTEusL47e8ozaCFwDpG7SDlVpa2jorqCFYAjKDOPug9PU/I9qR0umed3Jn8S3qdhYu19cNZwGU9PQguYxu9qd+ew/BTOmm1PER9BFj8owChtoowxAjXn4q4ePIpAAWX//Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"И какой прогресс?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Пока я сделал только первый уровень. Реализовывать ландшафт и архитектуру уровня на глаз, открыв на втором мониторе оригинальную игру - еще та задачка.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

По механикам работает все кроме магазина и зелий. Шрек может драться, лазать, бегать. Первый уровень в оригинальной игре показывает 80% всех механик игры, поэтому по грубым прикидкам сделана большая часть работы косаемая кода - то есть заложена почти вся база. Даже поддержку геймпада завез. Единственное чего вообще нет, так это катсцен - на них у меня не хватает запала, хотя в оригинальной игре вступительная катсцена достаточно веселая (в детстве я их никогда не смотрел, а сейчас решил)

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Пробежка всего первого уровня. Три недели работы ради трех минут геймплея.","image":{"type":"image","data":{"uuid":"f301caa6-3050-5494-b8df-e604249aa3bd","width":1920,"height":1080,"size":184911065,"type":"gif","color":"242515","hash":"","external_service":[],"duration":170.6,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

В черновом виде готово главное меню и меню паузы. Имеется функционал настройки графики и музыки. Работают сохранения и загрузка.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Та самая заставка из главного меню в моем исполнении. В оригинале она длиться примерно 20 секунд и ее нельзя пропустить - я добавил такую возможность.","image":{"type":"image","data":{"uuid":"ea6b6792-9f4d-56b3-9eba-3d616c87674a","width":2560,"height":1440,"size":11769602,"type":"gif","color":"050505","hash":"","external_service":[],"duration":16.516667,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Что дальше?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

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

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Итог

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Да - я не 3D дизайнер и не художник, я понимаю что сейчас визуально игра теряет свою ламповость и все это выглядит как обычное васянство. Надо бы поискать больше ассетов и в целом поработать над визуалом, светом и тенью. Сейчас не хватает визуальных эффектов, некоторые ассеты не соответствуют по духу оригиналу (некоторая растительность и кусты). Но для начала как мне кажется неплохо.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Вот вам в конце бегущая курочка","image":{"type":"image","data":{"uuid":"c4a81262-588b-525b-be66-cfe24b89afa7","width":798,"height":644,"size":127479,"type":"gif","color":"221e21","hash":"","external_service":[],"duration":1.433333,"isVideo":false,"has_audio":false}}}]}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":168,"favorites":202,"reposts":2,"views":86201,"hits":15309,"reads":null,"online":0},"dateFavorite":0,"hitsCount":15309,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://dtf.ru/indie/2218386-shrek-2-remake-ili-chem-zanyatsya-razrabotchiku-na-vyhodnyh-pilit-remeik-lyubimoi-igry-detstva","author":{"id":131399,"name":"Kaboms","nickname":null,"description":"Unreal Engine Developer","uri":"","avatar":{"type":"image","data":{"uuid":"4b49ba89-acb4-5eee-a384-121c6baeeefb","width":2160,"height":3840,"size":566426,"type":"jpg","color":"2d2c25","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAKAAoDASEAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwII/8QAIRAAAgIBBAIDAAAAAAAAAAAAAQIDBBEABRIUBiETFTH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAAP/xAAcEQACAwADAQAAAAAAAAAAAAABEQACIQMFEnH/2gAMAwEAAhEDEQA/ACLwuTaaNF/Kdynkiljt9JKzwkcWZc8y2cY9EHSEjwyIJEKMrDIIPog6K7LhFfBA1bKr2Z4u3rv216n3LHWaVmaH5TwJH4eOcatLdoIALMwAGAA50hfU5utP2f/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"7e84a214-0bef-5c8a-98c7-33a1722a2e48","width":2560,"height":1600,"size":1031842,"type":"jpg","color":"131313","hash":"","external_service":[]}},"cover_y":0},"achievements":[{"title":"Год на DTF","code":"registration_1_year","description":"Первый год с DTF. Получена 2 июня 2025.","previewUuid":"d6655520-3ebc-52c3-8b92-696b019b5788","formats":{"glb":"https://static.dtf.ru/achievements/egg-01.glb","usdz":"https://static.dtf.ru/achievements/egg-01.usdz"},"viewData":{"contentColor":"#1F97D4","textMaxWidth":0.62890625,"textX":0.5,"textY":0.6943359375,"logoX":0.5,"logoY":0.818359375,"logoXNoText":0.5,"logoYNoText":0.6865234375},"id":1728456,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/1728456"},{"title":"5 лет на DTF","code":"registration_5_years","description":"Провёл 5 лет вместе с DTF. Получена 2 июня 2025.","previewUuid":"1cfb91f8-db3e-5624-9beb-4b71082eecc5","formats":{"glb":"https://static.dtf.ru/achievements/egg-02.glb","usdz":"https://static.dtf.ru/achievements/egg-02.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.625,"textX":0.5,"textY":0.533203125,"logoX":0.5,"logoY":0.6572265625,"logoXNoText":0.5,"logoYNoText":0.5390625},"id":123810,"userId":131399,"count":0,"shareImage":"https://api.dtf.ru/achievements/share/123810"}],"lastModificationDate":1763076238,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":true,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":64960,"name":"Инди","description":"Истории из жизни инди-разработчиков. Если вы делаете свою игру — это лучшее место, где о ней можно рассказать всему DTF.","uri":"/indie","avatar":{"type":"image","data":{"uuid":"044c3d8c-3200-4bdc-c4e3-40e99fec6777","width":0,"height":0,"size":0,"type":"jpg","color":"","hash":"","external_service":[]}},"cover":{"type":"image","data":{"uuid":"fa9323db-0b02-8abe-5ee4-ec31b8d32568","width":800,"height":450,"size":14309,"type":"jpg","color":"a454ef","hash":"","external_service":[]}},"lastModificationDate":1631402619,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"indie","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":997}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}}],"cursor":"PuR2GsZKFTvhhGhTBIbh4MDbBa8hRyGI6YitsrXO+VvHeLfWP7KozkVY425ElSNg","isAnonymized":true}};