Расскажу как закончил карту третьего уровня, добавил Кота в Сапогах и написал скрипты для переноса карт и ландшафта из оригинальной игры. Бонус - секретная комната в игре, о которой узнал только при ковырянии оригинала (и о которой на самом деле знают все фанаты).
Игра становится ближе к званию "Ремейк".С поправкой на то, что я все-таки макака-джун в Blender и 3D моделировании с бюджетом в виде чистого энтузиазма. Рассказываю о прогрессе за последние 4 месяца.
Прости меня Шрек, ибо я согрешил и сделал про тебя раннер для Яндекс Игр. Делюсь впечатлениями о Godot, рассказываю как я докатился до жизни такой и как подружить Godot c HTML5 и Яндекс SDK.
Чтобы получить 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 нужно сначала его конвертировать в 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":"// Для 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":"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 на Яндекс игры. Могло оказаться, что игра не работает в каком либо браузере или производительность игры окажется критичной и мне откажут.
Отправив игру на модерацию я ждал, что она затянется на 3-5 дней, но уже на следующий день мне пришел отказ в публикации. Модератор нашел несколько проблем:
"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Ошибки в переводе. Я забыл перевести магазин. На скриншотах для ру региона магазин тоже был с английским текстом.","Неправильный показ рекламы. Я показывал ее в момент проигрыша, что по мнению модерации прерывает игровой процесс. Поэтому я перенес показ рекламы при выходе в главное меню."],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"
С одной стороны я обрадовался, что игра оказалась вроде бы как рабочей и серьезных проблем не нашли.
Но с другой стороны я до сих пор не понимал как работает модерация. Что если они провели поверхностное исследование и при следующей отправке на модерацию они уже перейдут к следующим этапам и окажется что Godot не годен для Яндекс игр?
Опасения оказались верны, модерация не проверяет всю игру сразу, а видимо находит первые попавшиеся проблемы, отказывает и дальше игру не смотрит. В этот раз проблемы нашли следующие:
"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Гифка для промо материалов имеет артефакты сжатия.","В описании игры на русском языке (которое я сгенерировал нейронкой 🤡) имеются ошибки пунктуации и орфографии. Там действительно было поломано целое предложение и окончания у слов.","При показе рекламного баннера не выключается звук. Я упустил это из-за того, что перенес показ рекламы с момента смерти на выход в меню."],"type":"UL"}},{"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":"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.
Все проекты 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, только хардкор.
Stable Diffusion - это OpenSource модель глубокого обучения. С помощью моделей на его основе мы будем генерировать текстуры, иконки, да и вообще все что угодно.
Сам по себе 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":"
Вот мы скачали модель, добавили ее в наш 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":"
Скобки \"()\" служат для повышения приоритета выделенного предложения, скобки \"[]\" служат для понижения.
Секрет очень простой - для генерации иконки нужно использовать референс того, что мы хотим получить. Для этого открываем вкладку img2img, вставляем в левое поле первую попавшуюся в интернете картинку меча и получаем то что нужно.
Если нейронка слишком фантазирует и не следует референсу, то нужно уменьшить параметр Denoising Strange. Чем больше значение, тем больше нейронка фантазирует и меньше следует референсу.
Небольшие примеры того, что у меня получилось сгенерить
"}},{"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.
Начинаем сразу с того с чем у нейронок огромные проблемы - с ровных форм, и для этого идеально подойдет текстура паркета. Но перед этим надо научить A1111 делать именно бесшовные текстуры, делается это выставлением одной галочки \"Tilling\" (что делать если нет галочки)
Получаем что угодно, но не паркет - зато бесшовно (кстати бесшовность можно проверить онлайн). Тут снова применяем хитрость с референсом - повторяем за мной:
Честно говоря я ожидал худших результатов, но нейронки меня приятно удивили. Если постараться и подобрать нужную модель, то можно получить неплохой результат - как минимум который не стыдно вставить как заглушку для прототипа.
"}},{"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 решения.
Первый тип решений считывает по заданному видео позу человека и на его основе строит анимацию. Для Motion Capture доступно несколько платных решений, таких как move.ai или DeepMotion. Их можно попробовать бесплатно (с большими ограничениями), но для полноценного использования нужно платить подписку.
Другой тип программ по ключевым кадрам может создать реалистичную, физически корректную анимацию. И на этом поле насколько я понимаю сейчас находиться только один игрок - Cascadeur, который можно попробовать бесплатно, но для нормально использования нужно платить подписку. Каких либо Open Source аналогов для него я к сожалению не нашел.
Бесплатная 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 для калибровки камер.
Пляшем с доской перед камерами секунд 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, но результат на мой взгляд приличный, учитывая что это все сделано на коленке с помощью двух шакальных камер.
Если очень захотеть, иметь большое желание, упорство и нулевое количество денег (и при этом ПК тысяч за 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":"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":"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":"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":"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":"
Первый уровень я решил сразу собирать на новых ассетах, чтобы иметь примерное представление как игра может выглядеть в своем новом обличии.
Сейчас же я меняю подход и сосредотачиваюсь на реализации уровней и механик с использованием слегка допиленных оригинальных ассетов, так как это сэкономит мне время и позволит сосредоточиться на главном — переносе игры на новый движок, потому что 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":"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":"
Я не был в курсе форса на dtf по поводу ее номинации на игру года от сообщества. Я особо не в курсе почему игра пользуется такой популярностью в РУ сегменте интернета - да, я слышал что-то про папича, но в целом все это прошло мимо меня. По моему мнению сказывается общая ламповость игры и огромное значение первоисточника.
Я же выбрал ее потому что она лишила меня игровой невинности. Примерно в 2005 году, когда мне было 6 лет - родители купили первый для нас компьютер и несколько дисков с музыкой и этой игрой. Отчетливо запомнился момент, когда отец посадил меня и сестру за компьютер, запустил Shrek 2 и показал нам как в него играть. Помню свой восторг от этой игры, помню как проходил ее несколько раз - таким образом она стала моим теплым воспоминанием из детства.
Потому что игры и разработка это мои две большие страсти. Я являюсь разработчиком на 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 модели и анимации у меня бы не хватило запала. Но из маркетплейса я использовал только ассеты растительности и ландшафта, а так-же некоторые визуальные эффекты - все остальное берется из оригинальной игры.
Как достать все это из оригинала? Для начала стоит помнить, что оригинальная игра разработана на Unreal Engine 2 и это сильно упрощает работу, потому что разработано множество инструментов для вытаскивания ассетов из игр на этом движке.
Для вытаскивания музыки и звуков я использую 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$.
Делать все с нуля как Capcom в ремейках Resident Evil - это задачка не для программиста одиночки, который пилит все это ради удовольствия, а самый лучший способ убить всю мотивацию и удовольствие - задушишь себя непостижимыми задачами.
Поэтому я решил комбинировать оба этих подхода. Где это уместно я использую старые ассеты, но с новыми материалами и текстурами, иногда докидывая полигонов.
Апскейлинг текстур я делаю через опен сорсную софтину под названием Upscayl. Сверху можно накинуть карту нормалей и получить неплохой результат. Карты нормалей можно создать не выходя из браузера.
Также используя 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":"
Пока я сделал только первый уровень. Реализовывать ландшафт и архитектуру уровня на глаз, открыв на втором мониторе оригинальную игру - еще та задачка.
По механикам работает все кроме магазина и зелий. Шрек может драться, лазать, бегать. Первый уровень в оригинальной игре показывает 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":"
Первый уровень был накинут в достаточно черновом, но более или менее удобоваримом для меня варианте. Я планирую не вылизывать до идеала каждый уровень прямо с ходу его создания, а потихоньку запилить игру и уже в конце переходить к жесткой полировке.
Всего игра насчитывает 11 уровней, первый уровень и большинство механик я запилил примерно за три полных рабочих недели, но дальше мой отпуск кончается и по грубым прикидкам реализация всей игры даже в таком виде может растянуться минимум на год работы по выходным. Учитывая это есть большая вероятность что в какой-то момент я перегорю и заброшу проект, но пока мне это интересно и я планирую продолжать.
Да - я не 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}};