На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Вам не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Тем не менее, многие крупные корпорации выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики как в Crysis рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity? - Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры? - Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
Обучение
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь: https://dotnetcademy.net/CSharp/Beginner Для изучения основ UnityScript выучите вначале основы JavaScript: https://learn.javascript.ru/ Помните, что далеко не всё, представленное в JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочтите эту статью: http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript Помните, что вам достаточно одного языка из двух и учить их оба одновременно не нужно.
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Для начала посмотри на туториалы с официального сайта: https://unity3d.com/learn/tutorials Если же ты не любишь видеотуториалы и предпочитаешь текст, то посмотри здесь: http://catlikecoding.com/unity/tutorials/ Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху: https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unity В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Покоряю скрипты уже который день, заебался гуглить решения базовых механик по 8 часов.
Решил запилить стрельбу через OnCollisionEnter2D(). Запилил жёлтый кирпич вместо стрелы (а может это уже готовый выстрел из бластера, лол), даже прикрутил атаку вблизи.
Пока разбирался с коллайдером для удара в щщи, наебнулись летающие кирпичи. Какого хуя? Rigidbody2D стоит на снаряде, чтобы пинать его в нужном направлении, следовательно, коллизия должна регистрироваться. Разница в скриптах только в том, что кирпич должен исчезать при попадании в противника, но они пролетают насквозь, в логах сообщение не всплывает.
>>387305 Ивенты вызываются только на том объекте, на котором навешён rigidbody. Может ошибся в написании метода, или параметры неправильно передаёшь, или сообщения в логе отключил, или сделал коллайдер триггером. Видишь сколько варантов, которые можно словить.
Какой редактор лучше всего использовать для создания статичных объектов для Юнити (скалы, дома и так далее)? 3DMax, Blender, что-то другое? Где пилить анимации? В какой формат сохранять? Текстуры лепить редакторе моделей или прям в Юнити?
Посоветуйте, как сделать чтобы свет и тени от определенного источника света не отображались на одной камере, но отображались бы на другой? Пока придумал только, что можно сделать копию уровня и этот источник света и вторую камеру запихнуть в одну версию, а первую камеру в другую, но это будут заморочки с синхронизацией динамических объектов. Запихнуть источник света в слой и исключить его в куллинг маске не сработало, хотя по логике вещей должно было бы. Может шейдер какой можно сделать или скрипт камеры, влияющий на очередь отрисовки?
>>387333 >В какой формат сохранять вообще в fbx, но юнити может на лету конвертировать модели из нативных форматов средствами установленного у тебя 3d пакета. То есть если ты используешь 3d max, ты можешь .max файл сохранять прямо в проект, тоже самое для блендера, майи и нескольких других форматов. Очень удобно, когда ты корректируешь модель - в юнити она будет обновляться и изменения сразу применятся в сцену, не надо каждый раз париться с реимпортом. Подробно про форматы https://docs.unity3d.com/Manual/3D-formats.html Кстати, когда пойдешь по ссылке, потрудись прочитать весь мануал.
Вопрос по "механике" выполнения скриптов. Чтобы мой говноскрит был учтён и его start, update etc вызывались на каждый фрейм, его надо бросить в какой-нибудь GameObject, включая пустой (empty). При этом я получи в том скрипте доступ к атрибутам и методам объекта, к которому привязан.
Если я в этих рассуждениях прав, то для получения поступа к самой мякотке надо знать "generic name" по типу self или this. или тупо gameObject ?
>>387510 > надо бросить в какой-нибудь GameObject, включая пустой (empty) Да. Всякое важное, типа глобальных менеджеров можно крепить на камеру.
> для получения поступа к самой мякотке надо знать "generic name" по типу self или this. Можешь референсить объект: public GameObject manya; void Start () { manya = GameObject.Find("OtherManya"); } Где OtherManya — существующий в мире объект.
> или тупо gameObject gameObject описывает объект, на который прикреплен скрипт, насколько я понимаю.
>>387510 если хочешь пользоваться благами юнити, то да. твоей лабуде лучше наследоваться от monobehaviour и пользоватся всякими полезными функциями вроде Start или Update. Есть конечно множество хитрых методов вокруг но они специфичны и тебе про них пока знать не надо. все что находится в сцене учитывается в любом случае.
>>387333 Не слушай зебрапидора. Он хуйню тебе советует. Блендера для всего хватит за глаза. В нем ты сможешь и вершины подергать, и поскульптить, и покрасить. А потом все это запечь в текстуры, как полагается. Плюс, у блендера низкий порог вхождения, например. Вот я такое говно моделю и крашу в блендере после недели изучения пакета. https://sketchfab.com/anon3d
>>387542 Не слушай блендеропидора. Модо-господа с презрением ссут на всех. Интерфейс 10/10. #стабильность без багов и политоты. Из хайполи в лоуполи за считанные минуты. Запекание от неба с Аллахом до собственной мамки. Лепка, анимация, рисование. Он бы и отдрочить тебе смог, но с этим ты и сам справишься.
>>387672 Любой. Просто блендеродебилы не могут успокоиться. Можешь попробовать Майю, Блендер, Модо. И пользоваться тем, что удобнее. Для скульптинга очевидно збраш.
В каком редакторе и как сделать такие вот олдфажные пиксельные текстуры? Они с одной стороны пиксельные, но не похожи на текстуры в современной индюшне, они не "чистые" и пустые, в них множество деталей и элементов. Как и где такое сделать?
>>387769 Это же обычные текстуры низкого разрешения вроде. Только хуй знает, как Юнити их отобразит, выше в треде моя NPC-коробка со стрелкой почему-то покрытая ржавчиной, но она 16х16 все таки. Ещё фильтрация заметно замыливала.
>>387798 На четвертом скрине поделие анона в соседнем треде. Тащемта, у него можно было и спросить, как он запилил текстуры (а он их вроде как сам ручками хуярил). Он вроде даже текстуру кирпичной стенки кидал.
>>387670 Юнити не использует компилятор майков, а делает билд с помощью моно, так что не бойся, будет работать везде. Может через некоторое время перейду на кор
>>387294 (OP) ребят посоветуйте исходник или ассет rts какойнибудь чтоб там было прописано поведение юнитов в отряде и прочее чем больше тем лучше.Неохота писать свой велосипед но там все чета отваливается уже(корованы неправильно корованят) И есть ли на юнити готовая реализация укрытие-перекатной системы? А то я накатал на планшете в яваскрипте убийцу Код доступа рай с открытым миром за три месяца,и решил щас все это портануть на юнити
Сууууууука, какое же дегенератское текстурирование в блендере. В 3дмаксе это делалось в пару кликов, здесь ебенячье количество менюшек, кнопок, экранов, списков и прочего говна. Это надо было постараться настолько хуёво сделать. Всё вроде в блендере хорошо и удобно, но текстурирование - это пиздец.
>>387945 Думаю его обосрали за неадекватность, он как бы спрашивает совета про олдовые шутеры, не воспринимает их, оправдывается, похоже это не его поделка и вообще не про шутеры. Короче: унылая ссанина.
>>388025 Это просто бобров, создатель ванильного рогалика и ещё всяких тайтлов без музыкы на самописных движках. Своеобразный тип, учитывая, что ему за 40 или типа того. Активно обитает на гамине
У кого-нибудь есть готовое решение касательно рэйкаста (вроде так эта штука называется, когда объект поворачивается к камере как в классическом думе) в юнити?
Ну или хотя бы ссылку на обучающее видео или тутор скиньте, пожалуйста.
>>388183 Да я и не против сам превозмочь, но без знаний как-то не получается. Дай ссылку хотя бы на тутор, в котором объясняется создание такой функции.
>>388266 Transform реализует IEnumerable, поэтому можно по нему ходить с помощью foreach. Особо пользы это не даст, т.к. внутри всё равно вызывается GetChild.
>>388406 В руководстве, ссылку на которое я скинул выше, предлагают сделать тоже самое. Но в итоге всё равно спрайт очень хорошо видно издалека, даже несмотря на непроглядный тёмный туман, например.
>>388431 > почему не катит с var В чистом шарпе вроде нет var, не? Хуй знает, что там в учебнике, поясняю за классы здесь: Есть статичные классы. Это когда есть класс с пачкой методов, которые тебе нужны на регулярной основе, и сам класс ты задаешь и больше не модифицируешь, скармливая его методам входящие данные, типа: Console.WriteLine("fgsfds"); Convert.ToChar("a"); Ничего не мешает сделать тебе свой статичный класс, но вроде до нас уже все додумали. Динамические классы. Это ты делаешь шаблон с пачкой переменных, какие-то методы, хуе-мое, а потом ты делаешь инстанции со своими значениями. Вот типа у тебя есть игровой объект Batya. И ты пишешь к нему: namespace Batya { public class Batya { int health; int hunger; int pivas; bool isBald = false; private void EbnutPivka(){ pivas -= 1; } //это ты только написал шаблон, ему нужна инстанция public class Program { public Batya theBatya = new Batya(); //это инстанция конкретного бати, с которым уже можно что-то делать theBatya.health = 100; //вот ты конкретному бате задал значение в переменной } }
Вообще скачай C# Player's Book Guide, там все довольно хорошо расписано.
>>388477 > Вот типа нужен тебе объект Батя, да так чтобы можно было иметь несколько бать, и ты его прописываешь фикс. На типа единичный класс есть синглтон.
>>388477 Вообще-то var это одна из ключевых особенностей шарпа. Да и интересно узнать, что в твоём видении шарп "грязный",а термины в твоём описании классов заставляют прильнуть кровь к глазам. Лучше скачай clr via c#, а другие аноны пусть не читают твой пост.
>>388494 >Вообще-то var это одна из ключевых особенностей шарпа Окей, я просто видел его только в Unity. > что в твоём видении шарп "грязный" C# в Unity с кучей классов, это все что я имел ввиду.
> термины в твоём описании классов заставляют прильнуть кровь к глазам Ну так напиши как надо. Я год назад не мог вкурить, что такое инстанции, вот сейчас снова потихоньку ковыряю шарп, на этот раз с учебником. Если бы мне кто-то тогда пояснил мне, как они работают, хотя бы вот так, может быть я бы продвинулся чуть дальше.
Аноны, сколько баксов будет мне стоить нанять юнити-прогера, чтобы он запилил мне скрипт рандомного создания локации из заранее заготовленных объектов?
И куда мне вообще обращаться с таким предложением? Биржи фриланса?
>>388537 рандомные генераторы лабиринтов из тайлов на ассет-сторе стоят 15-30 баксов. Смотрел несколько штук, ни один не понравился, сделал свой. Но и "локация" - понятие растяжимое, много нюансов, напишешь с подробностями - помогу с оценкой [email protected]
Поясните, как белые люди распределяют / сортируют свои скрипты. Вот есть у меня скрипт бега. Он навешивается на героя. Но есть еще десяток скриптов (стрельбы, взаимодействия, характеристик, и т.д.), куда это все пихать?
>>388567 Легко - не иметь скрипт бега на герое. Скрипт на герое не должен знать ничего про бег. Он должен знать про анимации, звуки и коллизии. Всё остальное тогда подчиняется обычным правилам софтварного инженеринга и модельке героя на экране про это знать не надо. А коду отвечающему за бег не нужно знать ничего про модельки. Это одна из больших проблем Юнити - оно поощряет очень плохой дизайн кода ровно до момента когда всё ломается.
>>388571 Ни в коем случае, там почти такое же говно, только прибитое гвоздям. Юнити это набор API, игровые ассеты и редактор, на уровень ниже UE. В уече тебе сделали всё готовое и оно ОК до тех пор пока игра на это хорошо ложится. Юнит более гибкий в этом аспекте, ты можешь сделать что угодно поверх. Надо просто понимать что MonoBehaviour с логикой это ОЧЕНЬ ПЛОХО. MonoBehaviour это визуальная часть, игровой логики там быть просто не должно. Они должны быть тупыми на уровне "мы умерли - играем анимацию смерти". Всё остальное должно жить отдельно. Лично использовал и использую Entitas в качестве базы.
>>388574 Документация на голову выше, туторы тоже хороши, но их меньше, много конченного говна на уровне "как включить лампочку". В общем разобраться более чем реально. Мне вот интересно, что отпишет анон выше. Вообще говоря, на анриале в рамках блюпринтов можно безнаказанно говнокодить, за что его крайне люблю. На Юнити надо изобретать пайплайн, держать себя в руках и изобретать немыслимое количество велосипедов. В общем создается парадокс, при котором Юнити может понять даже школьник, но вот чтобы создать что-то адекватное необходимо обладать весьма мощным скиллом. Уеч же на первый взгляд оче сложный, но в реальной разработке на нем все делается намного проще и быстрее.
Но с аноном выше соглашусь, если уеч под проект не подходит, например из-за света, то придётся этот самый свет писать. А на юнити не написать, кек. Даже не представляю, что тому анону захотелось навелосипедить.
>>388579 >Документация на голову выше, туторы тоже хороши, но их меньше, много конченного говна на уровне "как включить лампочку". В общем разобраться более чем реально.
Как в UE4 в Paper2D на персонажа прилепить горизонтальную капсулу? Или чем заменить другим? Молю только пошагово. Можешь ссылкой в меня швырнуть
>>388578 Почитай хабру по тегу юнити, там было как раз такое - вся игровая логика реализована отдельно от движка. Хотя как по мне это порочный круг и заставляет писать в пять раз больше кода, причём этот код гораздо сложнее понять.
>>388579 >на юнити не написать Уе4 не поддерживает кастомные системы освещения. Только как постэффект. Юнити поддерживает кастомные схемы освещения, как в упрощённом "легаси" варианте, так и в новом виде с глобал иллюминейшн.
>>388578 Не так уж редко. Тут главное отучиться мыслить в терминах "объектов", а начать мыслить в терминах данных и их трансформации. ECS типа Entitas по сути есть специализированная БД. Там есть таблицы (компоненты в энтитях), есть запросы (системы) и есть индексы (индексы). Всё что делает ECS - каждый кадр трансформирует эти данные в новое состояние. Задача Юнити тут - это просто показать эти данные и их изменения. Есть такое определение игры как "БД с красивым интерфейсом" - вот это оно и есть. >>388617 По идее это больше про общей архитектуре софта. Аналогичный подход тут хорошо показан: https://www.youtube.com/watch?v=x_4Y2-B-THo в первой половине, когда показывают как у них структура классов устроена.
>>388567 не задумывайся об этом пока не заебёт что корневая папка похожа на мусорную кучу. на этом моменте обычно появляется просветление что куда положить. я всегда так делаю.
>стрельбы, взаимодействия, характеристик ты это. логику не размазывай. всегда должно быть главное место откуда ты управляешь главными значениями. то что ты описал должно только интерпретировать эти значения.
>>388573 >MonoBehaviour с логикой это ОЧЕНЬ ПЛОХО Инструменты должны соответствовать масштабу, энтерпрайз подход с созданием абстрактной фабрики для класса вычислителя процента - гораздо хуже для проекта одного человека. Городить такую ебанину ради трёх в ряд точно не стоит.
>>388573 > MonoBehaviour с логикой это ОЧЕНЬ ПЛОХО Т.е. через MonoBehaviour я только получаю данные о коллайдерах, о нажатых кнопках, анимациях и т.п, а что-то типа пихания урона от отравления в FixedUpdate() — это зашквар, который тоже надо выносить из MonoBehaviour? другой анон
>>388720 Если ты будешь слушать того поехавшего то ни одной игры не сделаешь. Запили игру сначала через жопу, потом сам придумаешь как надо делать. Например архитектура всеми любимого маинкрафта - на уровне проектов гд, но это не помешало жирному нотчу стать миллиардером.
>>388725 Бля, ну ок. Тем не менее он прав в том, что всякие штуки типа статов для персонажей подключать к MonoBehaviour нет смысла вообще. >>388728 Собственно, вопрос: как и куда это все крепить, блядь?
>>388735 Тебе нужна чёткая точка входа, оттуда делать как обычно делается без Юнити. Юнити-объекты вставляются туда где обычно лежат движковые объекты типа моделек. У тебя не мужик_с_пулемётом лежит в GameObject, как Юнити хочет. У тебя GameObject с моделькой должен лежать внутри мужика_с_пулемётом. Делается так: один главный GameObject где есть один MonoBehaviour "ИгроваяЛогика" который ведёт себя как стандартный главный цикл. Больше логики нет нигде.
>>388743 Зачем тогда использовать юнити? Если хочешь писать игры в одном классе - бери сишку, сдл и пили проекты распидорасило. Парадигма юнити - таскательство ассетов, и пытаться ее сломать ты будешь ровно до момента когда надо будет импорировать полезный ассет с кучей скриптов распиханных не по фен-шую. Связывать всё это будешь адовыми костылями.
>>388743 >один MonoBehaviour "ИгроваяЛогика" который ведёт себя как стандартный главный цикл То есть MonoBehavior::Update следует иметь только один раз, а в нём задавать порядок обновления?
>>388761 Одно другому не мешает. Редактор, рендер, звук, кроссплатформенность остаются. Я ебал снова писать куллинг и загрузку текстур. > импорировать полезный ассет с кучей скриптов распиханных не по фен-шую Can't be helped, можно воспринимать их как чёрный ящик. Всё по фен-шую всё равно не будет. Главное чтобы костылей было меньше и они были изолированы. >>388775 Я про принцип что Юнити-объект не отвечает за логику. Ферштейн? >>388782 По возможности да. Проще работать.
Неделю назад начал понемногу изучать Юнити, решил двигаться в сторону top-down 2D. У меня вопрос насчет платных ассетов. Стоит ли их в принципе брать на данном этапе? Например вот этот: https://www.assetstore.unity3d.com/en/#!/content/43566
И стоит ли своих денег тайловый редактор внутри юнити, или лучше самому в этом разобраться? А то я постоянно читаю о том что юнити хочет ввести свой, но никакой информации по этому поводу не нашел.
И еще один вопрос, как вы изучали возможности скриптинга Юнити? Есть ли смысл например заучивать ключевые классы и их методы, а то сейчас я только смотрю за тем как кодят другие и гуглю то что они используют.
>>388896 Если тебя смущает необходимость изучать программирование, то выбери тулсет, не требующий программирования же. В юнити писать код всёже необходимо.
>>388477 >В чистом шарпе вроде нет var >>388570 >Это одна из больших проблем Юнити - оно поощряет очень плохой дизайн кода >>388572 >В отличии от Юнити, в уече компонентная система >>388573 >MonoBehaviour с логикой это ОЧЕНЬ ПЛОХО >>388637 >вся игровая логика реализована отдельно от движка >>388650 >главное отучиться мыслить в терминах "объектов", а начать мыслить в терминах данных и их трансформации >>388743 >Тебе нужна чёткая точка входа, оттуда делать как обычно делается без Юнити
>>388988 Да меня и не смущает, я уже читаю книжку по С#, просто насколько я понимаю ассеты сэкономят мне несколько сотен часов моего блуждания в темноте, да и насколько я почитал отзывы, можно посмотреть как это у них всё работает и научиться самому.
Привет всем. Столкнулся с проблемой в 2д-юнити. У меня есть sprite sheet, из которого я наделал несколько кадров для анимаций, всё работало хорошо. Решил сделать еще одну (три картинки на скрине из ФШ, с мечом), добавил по примеру того, как добавлял до этого, import settings не трогал, но моделька стала "размытой". А еще в редакторе фаил показывается 128х14, хотя он должен быть 144х16. В чем может быть проблема?
>>389099 >144х16 >144 Сделай или 256х16, или 128х32. Видеокарты жрут только текстуры с размерами сторон в степени двойки. Видишь в предпросмотре (NPOT)? Это как раз об этом - non power of two. Неподходящие по размеру спрайты растягиваются или сжимаются автоматически и картинка шакалится. И обнови юнити.
>>389091 Сотни часов блужданий тебе сэкономят туториалы по юнити. Ассеты стоит брать, только если ты знаешь зачем они тебе. Можно конечно брать на посмотреть, но эффективность такого подхода куда ниже.
>>389100 Спасибо большое, 128х32 помогло. 256х16 почему-то стало еще более...мыльным. Про NPOT не знал, кроме расшифровки, так что тут отдельное спасибо. Охуеть, на сраном официальном ответнике почти неделю тишина, на дваче за 15 минут ответили. Надо бы в свою дипломную в литературу двач вписать.
Ребята, нужен совет. Хочу сделать изометрическую игру, вот думаю как лучше поступить. У меня есть два стула: 1) Нарисовать сразу в изометрии задники-локации могу в рисование и впихнуть на неё 3д-модельку героя. Но тут сразу возникают сомнения. Если я на тот же quad ебану отрисованную локацию, то камера должна на quad смотреть ровно сверху вниз, чтобы не поехали пропорции. Но тогда и на персонажа она будет смотреть ровно сверху вниз, поэтому на фоне локации, которая как бы "под углом", он будет смотреться как говно. Можно ли сделать так, чтобы 3д-моделька была как бы под таким же углом, что и нарисованные объекты, но в то же время чтобы камера смотрела на него ровно сверху вниз? Коряво объяснил, но, надеюсь, поймёте 2) Напиздить ассетов и делать локации в 3д, а потом отводить камеру чтобы получить изометрию.
Дело в том, что если я сяду на первый стул, то я сэкономлю кучу времени ибо умею рисовать, а в 3д не могу, но я представления не имею как заставить 3д-человечка нормально ходить по такой локации. К тому же придётся как-то ебаться с объёмом "предметов" на локации, чтоб героя перекрывали стены, предметы и т.д. А если на второй стул — придётся ебаться с 3д, осваивать соответствующий софт, но зато я буду лишён всего остального пердолинга.
>>389277 Персонажа-то я и каком-нибудь Mixamo ползунками сделаю. Ну или на крайняк закажу. Одну модельку и несколько анимаций заказать - не разорюсь. Тут вопрос с какой стороны подойти, чтоб через месяц не оказалось что всё хуйня, давай по новой.
>>389281 Да скорее всего так и придётся. Но а вообще, та проблема, что описана в первом стуле, теоретически решается? Я, конечно, понимаю что даже если и решается, то это получится лютый троллейбус из хлеба, но всё же.
>>389284 Вообще решается. Не могу вспомнить как называется игра, где очень хитро извернулись чтобы сделать 2.5д игру в изометрии. Если вспомню — напишу.
>>389271 Задник-билборд и орто-камера чем тебя не устраивают? А сам уровень задай зонами проходимости. не уметь рисовать в 3д и рисовать в изо - это что-то новое.
Ну смотри. Вот на первой пикче задник нет, не мой, но для теста и он сгодится. Вот я кидаю его на квад и переключаю камеру в орто (вторая пикча). Добавляю на сцену персонажа (третья пикча). Он же совсем в другой плоскости, на камере он ожидаемо выглядит тупо сверху, хотя всё остальное "под углом" (четвёртая пикча). Если я чего-то не догоняю, то не шли сразу нахуй, я просто с такой комбинацией (изометрический задник и 3д-персонаж) никогда не работал. А насчёт зон проходимости — да, можно, но сначала надо заставить героя перемещаться по заднику так, чтобы оно смотрелось естественно. >>389338 Да я уже почти свыкся с этой мыслью. Это решит очень много проблем.
Чики ГД'ч. Вообщем решил вкатиться в бинарную сериализацию с помощью BinaryWriterпланировал хранить всякие данные типа сохранений и т.д Вроде все понятно, последовательно записываю через поток биты в файл, затем в той-же последовательности их считываю назад, но на всякий случай решил разобраться как эти данные записываются и структурируются в файле, дабы если решу переобуться на пол пути и изменить структуру, я смог бы вытащить данные из старых сохранений и накатить в новые. Вроде бы принцип понял, я просто последовательно указываю какой тип считывать в BinaryReader, а он сдвигается на необходимое кол-во байт(в зависимости от диапазона типа, например если буль то его диапазон 1 байт, если инт то 4 байта и т.д). Но возникли непонимания со String, Как я понял при записи string в файл первый байт указывает кол-во char в String'е, а после BinaryReader сдвигается на это кол-во байт возвращая их как string, но если char больше чем на 1 байт, то он добавляет еще один байт в начало, но делает это каким-то не очевидным для меня образом, собственно в этом я и хотел разобраться, как BinaryReader определяет в таких случаях сколько букв в стринге и как это интерпритировать - синий квадрат на 3 пике?
>>389366 Я вот не понимаю, а вдруг напарник тебя наебет возьмет все твои наработки склепает игру и получить прибыль не поделившись, как уберечься от такого?
>>389370 >>389378 Все, сам разобрался, он проверяет когда первый байт больше половины -127, то он добавляет еще один байт и умножает на его первый и так далее.
>>389370 >решил разобраться как эти данные записываются и структурируются в файле тебя это ебет штоли?
>я смог бы вытащить данные из старых сохранений берешь и вытаскиваешь с помощью сериализации обратно. или ты еще решил написать свой велосипед? ты ебанутый?
>>389401 Заведи булевскую переменную, делай if внутри второго if, один на проверку score >=100 и в нём обрабатывай обе действия плюс инвертируй переменную, второй на проверку самой переменной и в нём только одно действие. Или просто в проверке && ебани.
>>389408 >Ты все не правильно понял ебать дибил. это ты все неправильно понялй. ты говоришь, что тебе "нужно знать формат, чтобы потом достать данные обратно". причем это можно сделать просто ReadString(). то есть ты либо дегенерат, либо просто из кирилльского любопытства решил расковырять файл в HEX-редакторе, забыв, что можно просто посмотреть исходники этой функции. сейчас я тебе их и покажу:
protected void Write7BitEncodedInt(int value) { uint num; // пока num больше 128 (это 10000000, т.е. значение не помещается в 7 бит) // num | 128 - включаем старший бит, показываея что дальше еще есть байт // записываем как байт // и сдвигаем num на эти записанные 7 байт for (num = (uint)value; num >= 128; num >>= 7) { this.Write((byte)(num | 128)); }
Вообще мне нужно, чтобы при первом нажатии кнопка разблокировалась за 100 монет, а при втором и дальнейших нажатиях открывалась панель. Поэтому, если эту шляпу можно написать проще, то скажите как.
>>389423 На будущее: исходники любого класса можно посмотреть прямо в MonoDevelop. просто в контекстном меню выбираешь go to declaration, а в Assembly Browser Language ставишь на C#
Посоны, в чём легче всего рисовать модельки всяких домиков и столиков? Из 3дпакетов в глаза видел только здмакс, и тот в универе на лабах лет 10 назад, но вроде получалось.
>>389579 Задник это виртуальное пространство. Болванчик бегает в триде мире, просто мир не отрисовывается. Вообще ругать костыли в геймдеве это путь в никуда. Геймдев состоит из костылей "какбыпопрощенаебатьзрителя"
Псоны, прошу советов мудрых. Мну нужно чтоб рядом с моим персонажем (от первого лица) на стенах менялись текстурки. Да-да, говнохоррор, но суть не в этом. Я так понимаю, на мою летающую камеру надо прицепить коллайдер, который при контакте с коллайдером стены будет заставлять стену в месте пересечения колллайдеров менять существующую текстурку на заранее подсунутую. Но как сделать чтоб не вся стена перекрасилась, а только там где коллайдеры пересекаются?
>>389672 Делаешь шейдер, куда в глобальную переменную float2 вписываешь позицию персонажа, во фрагментном шейдере находишь distance(IN.uv, _MainCharacterPosition), ну и сравниваешь со всоим значением.
бля посоны помогите admob интегрировать. может кто-нибудь помочь на реальном примере показать как вставлять рекламу? могу на пиво подкинуть за помощьдешевое
>>389755 не до конца еще сделал простенький раннер как учебный проект. вот ебусь с адмобом уже второй день, пытаюсь понять как он работает. может сможет кто-нибудь на пальцах объяснить? ну или хотя бы просто помочь добавить и с комментариями в коде пояснить чтобы отображался обычный баннер и межстраничный на примере любого туториала Юнити стандартного
>>389756 уже все плагины перепробовал. даже самые простые для идиотов, когда надо просто префаб перетянуть на сцену и все равно не работает, скрипты не подгружаются. хотя казалось бы куда проще. плагин admob vntis но желательно бы с официальным от гугла разобраться, как его настраивать.
Хочу сделать игру типо MUD, онлайн чат с текстовыми командами и диалогами. Посоветуйте, на чём проще будет делать - на Анриле или на Юнити? Другие движки не рассматриваются т.к. в будущем планирую продукт дорабатывать до полноценной 3д игры, но начать хочу с малого. Если есть какие то материалы касаемо этого - буду признателен за ссылки.
>>389774 Судя по всему ты новичок, что однозначит Unity. Но должен предупредить, нужно пииздецки много усидичивости. Если не зассышь могу дать пару советов хуетов как проще пройти через всё гавно.
>>389812 Я другой анон, мой совет будет банален, но мало ли. Я почти год занимался хуйней, но реальный рост начался только когда я послал нахуй все эти видео уроки и готовые ассеты и тупо на одном мониторе api help, на втором редактор кода с отладчиком. Были моменты когда хотел все бросить, но сейчас я могу открыть любой готовый ассет и мне все понятно (если не даун писал). Суть в том что видео уроки это видимость обучения. Настоящее обучение это когда разбираешься и набиваешь шишки сам.
Скачал я тут демку нового МораУтопии (мейд виз юнити) и охуел. На самых минималках тормозит так, что играть невозможно, при том, что графон весьма средний. К примеру последний фар край на манималках у меня выдает стабильные 60 фпс и даже на средне высоких играть можно. При том, что графон и сравнивать нечего.
>>389843 >графон весьма средний Как это ты определил что там средний графон? Хуевая картинка имеет мало общего с нагрузкой на видеокарту. Достаточно накидать на камеру дефолтных постэффектов, чтобы убить ФПС
>>389877 >PlayMaker Ребята не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте что тут писалось. Я вполне понимаю что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
Полгода не обновлялся, было что-то вроде 5.1 с копейками. Сегодня обновил до последней все пизда, фпс порезался в 2-3 раза (а то и больше, обычно счетчик показывал 60-70, но сейчас вообще 10-14). При этом никаких ошибок в консоле, что они там намудрили? Быстрый поиск по форуму выдал всякую хуйню типо удаления программы для контроля скорости вращения вентилятора для фикса.
>>389812 >>389825 Да именно так, учение происходит только на практике и ошибках. Но вот какой путь мне кажется более рациональным: 1. Смотришь вот это https://unity3d.com/ru/learn/tutorials/topics/scripting и параллельно выцепляешь в свою игру то что тебе надо. Тут есть и основы языка, и функции от самой юнити. Простою текстовую игру можно сделать посмотрев первые 10 гайдов. Советую пробывать на инглише смотреть т.к. это отточеные без лишних слов видео. Далее по маленьку выцепляй нужное и меняй под себя. Есть еще совет, не просто копируй код из туторов, а меняй немного или много, только так начнешь ошибаться и когда ошибешься сначала попробуй сам понять что не так, но не долго, а потом гугли. удачи. З.Ы. повторюсь нужно много усидчивости. За неделю не получиться с нуля захуячить свою ГТА или доту. Кстати перфекционизм в больших объемах до добра не доведет, если не можешь решить что то очень долго - переключись на другую
>>390002 > Есть еще совет, не просто копируй код из туторов, а меняй немного или много Я ещё когда всякие туториалы с оф сайта смотрел и когда автор говорит "а сейчас мы прикрутим вот такую вот залупу" - ставил на паузу и пробовал прикрутить её сам. В 80-90% случаев получалось, в остальных случаях включал дальше и смотрел где ж я обосрался. Тоже хорошо скил качало.
>>390002 спасяб. усидчивость есть. пока только вкатываюсь в азы( как создать сцену, работа с префабами и скриптами, анимаци и п.р.) делаю не гта, а рпг типа фоллача 2го. ток под другие реалии.можно будет грабито корованы
Спустя неделю крайне неторопливой ебли с КОЛЛИДЕР2Д я уже не человек, блядь, я склад велосипедов. Запилил коллайдер для взаимодействия и даже коробкомаунта Твайлайт Спаркл, на которого можно сесть, покататься и слезть и дезинтегрировать. Больше на нем, правда, нихуя нельзя делать, хотя неплохо было бы прикрутить хотя бы взаимодействие с NPC и невозможность спешивания прямо в стену.
>>390002 > нужно много усидчивости Два чая этому Кармаку. Капча начинается на 666, лол.
>>390057 Так-то да. Правда, велосипед для взаимодействия я не спиздил, нашел только совет "тебе нужны рейкасты или коллайдеры", что и так было очевидно. А в сторону рейкастов мне пока смотреть даже страшно. Впрочем, куда я денусь.
Есть гайд по смешиванию анимаций ? Можно на английском Нужно заанимировать руки для персонажа, отдельно от других анимаций, видел что можно отключать в определённых анимациях определённые кости.
>>390067 Сам не люблю когда говорят "гугли то-то" и т.д., но тебе нужна Avatar Mask. Я просто уж буквально в одном сапоге, как вернусь — распишу более детально, если ещё не разберёшься.
>>390077 сделай как делают прочие артисты-пидоры. заведи себе патреон, когда с него бабла будет достаточно то найми себе раба и в случае неудач вали всё на него.
>>390080 что, совсем? приклей свои картинки на картонки и делай немое кино перед камерой? можешь вон UE скачать, там будет просто всё через жопу зато погромировать не обязательно. но советую перестать быть бестолочью и смочь хоть что-то базовое.
нубский вопрос! Я приатачил мой годно скрип куда-то (камера, аварату во влагалище и т.д.) и забыл куда. есть ли менюшка к скрипту, где посмотреть, куда этот скрипт вошёл
Категория: нубские вопросы первой степени! Как вычесть один rotation из другого, чтобы получить смещение? Один quaternion из другого вычитаться не хочет.
>>390117 Крайне неторопливая ебля у меня была, потому что были другие дела, лол. Пиздить велосипеды — задача несложная, а придумывать свои мне пока что нравится. Запили сам, чо, вбрось ссылку.
>>390125 >>390126 Лол, спасибо. И нубский вопрос второй степени — нахуя в void yoba указывать тип переменной как Vector3 заново, если он уже указан там же, где и йобы?
Аноны, хелп, вы - моя последняя надежда. Пытался гуглить, нихуя не понимаю. Точнее, понимаю частично, но не могу решить свою проблему. Короче, сразу к делу: уже второй или третий день ебусь с евентами. Понял, что есть лисенеры, делегейты, хуе - мое блядь, но мне надо решить одну конкретную проблему, после которой может прийти прозрение. Мне надо, чтобы евент при нажатии кнопки отсылал всем лисенерам ее имя и в другом методе чтоб я мог эту кнопку уничтожить по этому самому имени. CurrentSelectedGameobject не предлагайте, это не то. Надеюсь, не криво объяснил, гугел выдает только абстрактное понятие евентов и как они работают, но чет все равно не очень понимаю. Выручайте, друзья
>>390131 Не совсем понял. > Мне надо, чтобы евент при нажатии кнопки отсылал всем лисенерам ее имя Тут тебе в помощь BroadcastMessage > и в другом методе чтоб я мог эту кнопку уничтожить по этому самому имени Ну вот через бродкаст её и лови.
>>390132 то есть, по сути, объясню, для чего мне это: Есть несколько предметов под замочками, которые должны открываться только после просмотра юнити рекламы. После нажатия на замочек вылазит меню "посмотреть рекламу, чтоб открыть?" нажав кнопку "да" поэтому CurrentSelectedGameobject не надо и после просмотра рекламы уничтожается конкретно тот замочек, на который нажали до этого, вот
>>390134 > Мне надо, чтобы евент при нажатии кнопки отсылал всем лисенерам > уничтожается конкретно тот замочек, на который нажали до этого Так всем или только тому, на которого нажали?
>>390139 ну, лисенер - то в скрипте находится? То есть, задумка такова, что я нажал на кнопку, лисенеру пришло ее имя, в другом скрипте по этому имени я ее уничтожаю и все. Я как - то не так что - то понял, да?
>>390144 > То есть, задумка такова, что я нажал на кнопку, лисенеру пришло ее имя, в другом скрипте по этому имени я ее уничтожаю и все Я тебя не понимаю. Если скрипт висит на том же объекте, что и кнопка, то просто передай её в него. Ну или юзай таки бродкаст, потому что я хуй знает какой там скрипт у тебя где висит.
>>390160 Ты же можешь выбрать бродкаст у любого объекта, который можно определить заранее. Или у массива объектов. Допустим, нашёл ты по тегу все свои нужные объекты и загнал из в массив yoba Потом пишешь yoba.broadcastmessage ("имя метода", что передаём);
>>390164 Хотя не уверен что пропустит обращение напрямую к массиву, так что если чего - юзай цикл и гоняй массив по индексу. Но я всё равно не до конца понял как там оно у тебя работает, так что не факт что я тебе советую то что нужно
уверен, ща чуть ли не до бана дойдет. но попытаюсь.
Итак, здравствуйте, господа. Звать меня, допустим, Вася. Ебаный студент, не менее ебаный еблантий, которому за две недели максимум надо сделать 2д игрульку. в голове это выглядит как максимально упрощенная версия ранних final fantasy. Гг один. Без "открытого" мира. Меню-карта арен-битва. Несколько монстров, пара скилов, подобие инвентаря.
Сам нихуя не умею, от слова совсем. Проект идет как дипломная работа. Но, как уже понятно, по "профессии" не пойду. Поэтому прошу помощи. Куда\как обратиться лучше? Дохера бабла в благодарность нет (да чего уж там, бабла пока что вообще нет), но с этим, думаю, можно будет договориться.
>>390349 > за две недели максимум Двачую RPG Maker. Хотя можешь напиздить ассетов с магазина и склеить что-нибудь из них. Или открыть какой-нибудь тутор на Youtube и просто скопировать игру чуть меньше чем полностью.
>>390354 Так там не нужен английский, лол. Гугли "Unity %жанрподелия% Tutorial", сразу найдешь дохуя видео с ссылками на используемые ассеты. Просто делаешь так же, как делает чувак на видео. В душе не ебу, как ты будешь показывать преподу код и не тупить при этом, но проект у тебя будет, да.
Ребята, нихуя не понимаю. Добавляю на сцену машину, на колёса цепляю wheel collider, на саму машину цепляю rigidbody, запускаю и машина улетает в ебеня, выдавая лютые кульбиты. Это с какого хуя?
>>390359 Эта машина какая-то заколдованная блять. Вы только посмотрите на это адское колесо. Оно и по Y и по Z вращается ОДИНАКОВО. Неудивительно что на таком колесе wheel collider с ума сходит.
>>390372 ну а модель то откуда? ты ее импортил или готовую взял? попробуй покрутить настройки импорта убери rig и animation галочки(нажми в на ярлык исходника модели в юньке там появяться эти опции)
>>390451 да в общем-то нигде он не проебался, кроме как в развитии. float в int кастуется только если попросишь. а вот то что он сам не захотел кастовать а пришел на двач и стал махать этим говном нам многое говорит.
Блять, я уже не человек, я люблю ПРЫГАТЬ ПРЫГАТЬ! Что это за хуета? На сцене нет нихуя, кроме 4-ёх сфер, засунутых в пустой геймобджект и на которых висит по wheelcollider'у. И всё это так люто пидарасит, что я вообще нихера не пойму что с этим компонентом не так. Гугл выдаёт всякое дерьмо типа смещения центра массы в риджидбади пробовал, ещё хуже становится и поставить массу в риджидбади 2000 и Damper на коллайдерах убрать в 1500. И нихера не помогает. Только на вас надежда, а то у меня скоро глаз начнёт дёргаться так же как на видеорилейтеде.
Как в файле лучше всего сохранять карту, которая имеет вид набора вокселей, примерно как на пикче? Я склоняюсь к такому виду 1: 0 0 0 0 0 0 0 1 1 0 0 0 1 2: 0 0 0 0 0 1 1 1 1 1 0 1 1 3: .....
где 1:2:3 это слои, а 0 1 наличие или отсутствие материала в каждой клетке по порядку. Прокатит?
>>390531 Да нихуя там сложного. В шапке подключаешь using System.Runtime.Serialization.Formatters.Binary; иначе не схавает. Внутри стандартного класса, наследуемого от MonoBehaviour создаёшь подкласс, перед ним прописываешь [System.Serializable] И потом как в твоём туториале - открываешь потоки, льёшь инфу, закрываешь.
>>390534 Так. А как дебагить в юнити? Если в других языках я мог вывести хоть целый массив в консоль и глянуть его тип/размер, то как это делается здесь? Обязательно считать всю сцену для этого?
>>390552 Почему, если я своими глазами вижу, что они небесконечны? Создай пустой GameObject и в нем создай плоскость, увидишь, что она имет конечный размер и форму квадрата.
>>390558 Я пока еще не приступил к сохранинию, разбираюсь с тем, как это все говно запихать в объект или массив объектов. Так как гениальный автор урока рисовал каждый объект с ходу, без сохранения в переменных.
>>390560 > Почему, если я своими глазами вижу, что они небесконечны? Создай пустой GameObject и в нем создай плоскость, увидишь, что она имет конечный размер и форму квадрата. Потому что это визуализация. Держи, ленивец > A plane is an infinitely large, flat surface that exists in 3D space and divides the space into two halves known as half-spaces
Допустим, есть квадратная текстурка, я из неё сделал префаб, и мне нужно её разместить в определённых местах на всей карте. Как это делать правильно? Я делаю с Instantiate в цикле, и цикл раскрывает по карте, где нужно. Это правильный подход? И как потом убрать старые префабы и добавить новые, если у них нет имён?
Как эффективно управлять видимостью объектов в 2D Zeldalike Они ведь так называются?? Чтобы юнит который "выше" отображался под юнитом которые "ниже"? Я думал над тем чтобы при движении по вертикальной оси менялась так же ось z, но не хочу изобретать велосипед.
>>390616 > в определённых местах Руками можешь поставить. Либо скриптом, если надо спавнить на определённом расстоянии друг от друга. > убирать По тегу.
>>390623 Гугли не то что ты думаешь "remove instantiated by tag", а то что является зацепкой к ответу на твой вопрос. Что то вроде "unity3d tag" "unity scripting tag" или конкретнее с упором на твою проблему. "unity3d remove object" "unity3d удалить объект" и т.п. Что на счет твоего вопроса, просто изменить позицию ведь можно?
>>390623 > Гугление по remove instantiated Ты там упоролся что ли? После instantiate твой префаб становится геймобджектом. Какое нахуй remove instantiated, совсем поехал?
>>390718 MovieTexture is finally deprecated after Unity 5.6.0b1 release and new API that plays video on both Desktop and Mobile devices is now released.
см. описание Как я понимаю, человеческий Videoplayer
внезапно понял, что там мапится прямо на экран через рендер и ни положение камеры, ни даже её полное отсутствие роли не играет. Мне нужно сделать так, чтобы из кадра вырезался кусок для симуляции раскачивающегося объектива
>>390621 >>390634 Я почему-то подумал что такую проблему сформулировать в гугле не получится, но как только попробовал, нужная строчка нашлась сразу же. Вот она: GetComponent<SpriteRenderer>().sortingOrder = Mathf.RoundToInt(transform.position.y 100f) -1;
Я даже не знаю что она делает и как работает. Но я присобачил движущемуся игроку её в апдтейт, а статичному в данном случае дереву в старт, и всё заработало. Даже не знаю, радоваться или плакать.
>>391016 Ну это я знаю, я это и искал. Я имею в виду что до сих пор не понял как и зачем работают эти GetComponent. Да и зачем округлять до целого числа тоже не совсем понятно.
>>391019 GetComponent возвращает тебе хуйню на которой он вызывается того типа который ты просишь. в данном случае возвращает SpriteRenderer. где ты ставишь его леер на столько насколько у него позиция в Y. а округляешь потому что оно только int принимает.
>>391019 >Как работают эти GetComponent скрипты, transform, SpriteRenderer, Box Collider - это все компоненты. Один и тот же компонент на дереве и игроке это две копии с разными параметрами(в SpriteRenderer у них разные спрайты - дерева и человека). GetComponent возвратит ту копию SpriteRenderer что висит на том же игровом объекте, что и скрипт. То бишь "соседний" компонент
Жду ругательства от двачевских экспертов. Сам делал (не удивительно) Ам.. ну... что ещё добавить - то. Аааа, эт самое, это просто "build pac хуяк" (Вы по другому не понимаете) Если хотите выплеснуть весь негатив, то вот ссылка на этого пидора в вкотактеле. https://vk.com/0x00000024
>>391090 Кстати, если спиздить ассет, который "только для ознакомления и личного использования", засунуть его в игру и выкатить в стим, насколько велика вероятность всяких судебных исков и прочего дерьма? Или всем похуй?
>>391091 Cам посмотри - анон чуть выше скидывает пики ассетов, выкаченных с сиджиперсии, куда их залили из ассет стора, а никто их даже не узнал, некоторые вообще начали писать кипятком при виде пятилетней давности ассетов. Там ещё в паке руины были живописные. Так что смело воруй @ продавай.
Мне нужна помощь. Для игры мне нужна платформа, которая будет трястись, создавая некое землетрясение. Прошу, поделиться кто чем может: ссылками, видео, самим кодом. Заранее благодарю.
>>391144 Блядь. public GameObject platform; void Update () { platform.transform.position += new Vector3(Random.Next(0,1), Random.Next(0,1), Random.Next(0,1)) * Time.deltaTime; } Вроде бы Random так работает, давно его не использовал. Только прикрути возвращение в какую-нибудь точку, а то распидорасит.
Вот что то сижу, ебусь с костями и вроде всё хорошо. Но потом я вспоминаю, про FTL, сделавший 25кк, с экипажем из трёх пикселей и пиктограммами оборудования, и над моим стулом рождается сверхновая. Причём усложнение графона и игрового процесса только увеличивают критичность оценки геймкритиков из 8б и твои шансы жидко обосраться с объёмом работы. Без гениальной идеи только клоны флаппибёрд и пилить. И это нагоняет депрессию.
>>391252 > ебусь с костями Далеко не уходи, вопрос имею. Юнити вообще сама по себе умеет в кости и анимацию? Ну, то есть можно ли засунуть в неё голый меш и всё это прикрутить? А то я всё это дерьмо не особо ковырял, юзаю готовые модельки, но интерес имею.
>>391253 создать скелет в юнити нельзя. Для таких как ты есть mixamo.com - простой и благодатный сервис автоматического риггинга и скиннинга гуманоидных персонажей. Если у модельки сильно выходящие за рамки базового человеческого меша компоненты, типа: длинные волосы, наплечники, юбки или фартуки, результат будет довольно хреновый, нужно корректировать вручную будет. Також если короткая шея очень длинный подбородок, лишние вертексы, раздельные меши ну и все вроде. На счет анимаций: в юнити можно переносить анимации с одного гуманоидного персонажа на другой, если у них меканимовский тип рига. То есть можно использовать готовые или краденые.
>>391255 > Для таких как ты есть mixamo.com Да я его и пользовал раньше, сейчас у меня свой моделлер есть, мне просто интересно было, вдруг в юнити есть какой-нибудь костыль для всего этого дерьма, но я его просто не нашёл. Оказалось — нет.
>>391266 Хватит, чтобы вкатиться в шарп, но потом придется разбираться в классах Юнити, тащемта они довольно простые. А на сайте туториалы по сути учат шарпу параллельно с объяснением фич движка, но лично мне по видео учиться нихуя не удобно, хотя в английский могу нормально. Прочитай Player's Book Guide, поделай в консольке всякие текстовые симуляторы бати и вкатывайся в Юнити. А я пойду дочитаю его, лол.
>>391252 >только клоны флаппибёрд и пилить Ну в некоторых руках и из клонов годные игры получаются, например: мультиплеер флеппи берд, флеппи берд, в котором нужно от стен(на которых появляются шипы) отскакивать, находя безопасное место, или флеппи гольфДа да, есть и такое.
подскажите, где я обосрался на другом компе всё работает, но там SDK пришёл с Xamarin на этом установка сделана через Android Studio (пидары не раздают более экзешником, только в зипе)
Много ли памяти требует вот эта команда, засунутая в Апдейт? GameObject thePlayer = GameObject.Find("ThePlayer"); PlayerScript playerScript = thePlayer.GetComponent<PlayerScript>(); playerScript.Health -= 10.0f;
И стоит ли жертвовать удобством, засовывая все нужные скрипты в единый скрипт? Как делаете вы?
>>391379 Бродкастом, например, но его в апдейт засовывать - ещё больше через жопу. Или в одном скрипте создавай публичную переменную типа смкрипт или геймобджект, на котором висит второй скрипт, передавай его и в Старте ебашь GetComponent.
>>391379 1. получить нужный компонент заранее, например в старте если плаер меняется в процессе игры(переключение между персонажами например) предусмотреть промежуточный скрипт, который это отслеживает и передает нужному 2. использовать события в какой-либо форме. т.е. первый скрипт посылает соопшение "плаера стукнули на 10хп", плаер его ловит и обрабатывает.
>>391377 че за ебанутые костыли, просто пропиши public PlayerScript player; и в инспекторе в самой юните перетащи плеера в эту дырку. А у плеера добавь функцию changeHP(int v) { health += v; health = mathf.clamp(health, 0, 100); } И в любом другом скрипте нужна бует токо эта строка player.changeHP(-5);
Анон, помоги понять основы языка. Проблема в том, что я не понимаю, как в скрипте написать, что если персонаж попадет в триггер, то нужно выполнить то и то.
Раньше делал карты для первой Амнезии где написать скрипт было намного проще и понятней.
Например Если(Объект("Игрок") коснется Объекта ("Стул_1") { Дестрой Объект("Стул");} И все.
Здесь же я не совсем понимаю, как ссылаться на тот или иной объект и т.д.
>>391404 делаешь колайдер обьекта триггером. на него вешаешь скрипт OnTriggerEnter в который передается колайдер того обьекта, который туды влетел. проверяешь игрок ли это и делаешь что нада
>>391404 Как этот анон >>391406 сказал. Вешаешь на объект с коллайдер-тригером скрипт, ОБЯЗАТЕЛЬНО вешаешь Rigidbody на объект, который должен касаться коллайдера. Иначе ивент тупо не происходит. "Collider other" на пикче — это объект, который касается коллайдера, на котором висит скрипт.
Сап, аноны. Пишу 3D-редактор на C# и WPF, хочу использовать Unity в качестве графического движка. Есть некий WPF-овский контроль, на который собственно хочу осуществлять вывод графики сцены. Вопрос: как мне подключить Unity к своему приложению, есть ли какая-нибудь информация на этот счет.
Если я хочу запилить систему взаимодействия с объектами двери, сундуки и т.п. в 2D, то для того чтобы активировался ближайший объект по направлению мышки, нужно использовать Raycast? Или есть более простые способы?
>>391430 Сам думал над этой хуйней, рейкасты не понравились, потому что хуй знает, когда их вызывать, алсо хотелось прикрутить подсветку "нажмите E чтобы активировать". Придумал только постоянно активный коллайдер перед моделькой игрока, которая проверяет теги объектов, в которые он въезжает. Если с объектом можно взаимодействовать, он передаётся в переменную на главный скрипт на игроке, а там скрипт по телу определяет, какую функцию вызывать по нажатию кнопки "использовать". Хуй знает, оптимально это или нет, но оно работает.
>>391431 по направлению мышки - только рейкаст. вызывать каждый кадр. коллайдер не катит ибо имеет зону действия и вполне может не зацепить нужный объект/зацепить лишнее
Может я что-то не так понимаю, но вроде бы tris это треугольники, а verts это вершины, так? Тогда почему юнити пишет что у обычного кубика 24 вершины, если их там по идее 8? Или если из одной вершины выходит больше чем 2 ребра, то она считается за несколько?
>>391489 где тебе это пишут и зачем тебе это нужно? каждая вершина сохранена лишь один раз, если она участвует в нескольких треугольниках, это прописано в индексах
>>391494 Ты мыслишь, как человек. Есть способы триангулировать, "как тебе нужно", но мне лень объяснять. Если бы ты запостил свой пак с аниме-девочками, то возможно...
>>391495 Какую в левеле пропишешь, та и будет в данный момент юзаться. Пишешь две, можешь переключаться между ними. Рендер-камера обычно финалка со всеми пассами. Признак профана, но большинство детей про пассы не знает, так что делай что хочешь.
[RequireComponent(typeof(MeshRenderer), typeof(MeshFilter))] public class MakeCube : MonoBehaviour { float size = 0.5f;
void Start () { Vector3[] verts = new Vector3[] { new Vector3(-size, -size, -size), new Vector3(size, -size, -size), new Vector3(-size, size, -size), new Vector3(-size, -size, size), new Vector3(size, -size, size), new Vector3(size, size, -size), new Vector3(-size, size, size), new Vector3(size, size, size) };
int[] tris = new int[] { 0,2,1, 1,2,5, 3,0,1, 1,4,3, 0,3,2, 2,3,6, 1,5,4, 5,7,4, 6,3,4, 6,4,7, 6,5,2, 7,5,6 };
большое, блять, дело сделать меш через код. зачем? неибу. смеху ради? посмотреть на хуйню? я не знаю. например я сделал чтобы в треде показать какая хуйня бывает.
>>391513 йеп. у куба слева нормали вершин смотрят по направлению вершины, у куба справа нормаль каждой плоскости перпендикулярна плоскости. в итоге куб слева думает что он шар, а куб справа только выглядит как куб, а на самом деле это 6 квадратов.
> It should have 24, because each face needs 4 separate vertices for the normals and UVs. The faces can't share normals and UVs (well, technically they could, but the lighting and texture would look completely screwed up).
>>391519 жа. проебаные нормали. вообще у юнити mesh.RecalculateNormals() отталкивается от количества смежных эджей же. так что не все нормали на самом деле торчат совсем уж по направлению от уголка. вот с красивыми нормалями кубик! гораздо лучше!
В юнити есть какое-нибудь "приклеивание?" Например, вот есть у меня большой куб, я подношу к нему маленький куб, мне нужно чтобы они были встык. Только на глаз ставить ну или через scale и position ручками считать?
Окей, у меня есть рейкаст от объекта Игрок к объекту Йоба. Пока луч касается Йобы, он активен, как только луч перестает касаться йобы, он выключается. Как Йобой получить информацию о том, что луч перестал его касаться, и при этом не использовать память уж слишком неэффективно?
В моей реализации вместо того чтобы включаться и гореть, йоба мигает аки бешеный, потому что каждый кадр его вырубает.
>>391707 > Как Йобой получить информацию о том, что луч перестал его касаться Не совсем понял зачем тебе это. Йоба по умолчанию выключен, игроком пуляешь лучом. Если луч наткнулся на объект с тегом yoba, то передаёшь в йобу нужный метод или чего там тебе надо.
>>391708 У Йобы есть дочерний объект, который должен включаться и быть включенным все время, пока на Йобу направлен луч. С этим проблем нет. Но когда луч отходит, я больше не имею доступа к Йобе через RaycastHit, и не могу придумать как тем не менее сказать Йобе что пора бы ему выключить свой объект.
Чувствую что упускаю что-то очевидное, аш пригорает
>>391709 Ну так там же где пускаешь луч, где у тебя проверка что если светишь на объект с тегом yoba, то йоба включает свой malinki yoba, а иначе (то есть если тег не yoba), то йоба выключает malenki yoba.
Посоны, я понимаю что анимировать скелет в юнити это та ещё ебля, но мне буквально надо изменить позицию пальцев одной руки. Куда жать? А то я только готовыми анимация пользовался.
>>391814 И как потом это сохранить чтобы рука сжималась только тогда, когда мне надо? Это можно как-то сохранить в новую анимацию, а потом кисть изменять через AvatarMask когда нужно?
>>391718 >>391711 Я уже накостылял тут как бешеный. Правда неправильно работает когда два объекта рядом находятся, но это не принципиально, их всё равно много не будет.
Я забыл добавить что это всё происходит в апдейте, и у меня ебанная паранойя по поводу производительности.
>>391818 в 2д вообще похуй, если совсем параноя юзнай FixedUpdate() например, но в нем нельзя детектить нажатия кнопок, можно но детектить не будет в 50% случаев. Взгляни на это. RaycastHit2D hit = Physics.Raycasy... if(hit.collider.tag == "yoba"){ hit.transform.getcomponent<YobaMINI>().toggleOutLine() }
>>391818 Не представляю, что надо делать, чтобы прямо пиздец по производительности был. Когда у меня возникает мысль "Да не, грузить же будет" на стадии двух коробок вместо персонажей и одного зеленого квадрата вместо травки, я вспоминаю баталии в Mount&Blade. С другой стороны это Юнити, даже сраный Verdun на минималках жрет неоправдано много.
Анон, можно ли как-нибудь чекнуть, находится ли уже "в воздухе" объект (игрок)?
Не юзаю контроллер, передвигаю игрока, прикладывая к нему силу по векторам. Прыжок - сила по y, но получается так, что его можно спамить, постоянно прикладывая силу, и улетать в космос. Не поможешь?
>>391827 > Анон, можно ли как-нибудь чекнуть, находится ли уже "в воздухе" объект (игрок)? В характер контроллере есть такая вещь как isGrounded. Если без него, то хуй знает, стрелять рейкастом под ноги, например.
>>391827 в fixedUpdate пишешь что то вроде if(physics.raycast(position, vector3.down, 1.1f) Grounded = true; else Grounded = false; З.Ы. там где 1.1 это то насколько луч стрельнет вниз. таким образом если под ногами на расстоянии 0.1 небудет земли то прыжок мы не делаем. if(Grounded) Jump(); else sosiPisos();
>>391830 Ой хуйню написал про фиксед сорян. Нужна такая ебала bool Grounded(){ if(raycast) return true; else return false; } и там где прыжок пишешь if(Grounded()) jump();
Ещё вопрос. Есть у меня анимация простоя, есть анимация ходьбы. Анимации проигрываются как надо, в зависимости от того стоит герой на месте или нет. И вот запихнул я анимацию прицеливания и хочу чтоб герой мог целиться и стоя и во время ходьбы. Создал Avatar Mask, выделил там необходимые части тела (руки и голову), создал в аниматоре отдельный слой по маске, кинул туда анимацию прицеливания, вроде всё норм. И вот хочу я чтобы герой по ПКМ начинал целиться. Сделал void Update { if (Input.GetMouseButton (1)) { animator.SetLayerWeight (1, 1); } else if (Input.GetMouseButtonUp (1)) { animator.SetLayerWeight (1, 0); } } но получается коряво, персонаж слишком деревянно переключается между анимациями, за 1 кадр. Сделал так float weight = 0f; void Update () { if (Input.GetMouseButton (1)) { weight = Mathf.Lerp(weight, 1f,Time.deltaTime 10f); animator.SetLayerWeight (1, weight); } else if (!Input.GetMouseButton (1)){ weight = Mathf.Lerp (weight, 0f, Time.deltaTime 10f); animator.SetLayerWeight (1, weight); } }
Вроде всё работает, но насколько целесообразно держать в апдейте то, что стоит за условием else if (!Input.GetMouseButton(1))? Оно же постоянно обрабатывается. Да и вообще, правильно всё или я на велосипеде катаюсь? Походу вот это >>391818 мой брат-параноик
Поясните за оптимальных NPC и игрока. После некоторого пердолинга пришел к такой схеме объектов, потому что, если объединить это все в один объект и добавить RigidBody, все коллайдеры начнут толкать остальные объекты. На том же коллайдере для взаимодействий это нахуй не нужно. Главный скрипт с управлением висит на родителе, двигается тоже родитель. На модельке висит две строчки в Update(), которые ставят модель в (0, 0). Это правильное решение? Не пойдет ли по пизде физика и не будет ли модель спокойно проходить сквозь стены?
>>391855 Окей, посмотрел в стандартном 2D пакете, который есть из коробки в Unity, что модель игрока двигается через RigidBody, а двигать персонажей через transform.position — зашквар, хоть и удобно.
>>391870 Rigidbody там все равно учитывается: другие модельки своей я толкать мог. Другое дело, что я в итоге аки бог ходил сквозь стены со статичным телом. Алсо, повесил теперь RigidBody и модель на корень, и все внезапно заработало как я и хотел, а не как обычно, хотя настройки все те же. Ебаный пердолинг.
>>391930 > он типа себя родного находит по GetComponent<Image> () ??? Все так. > какие профиты не делать это через декларацию в public и перетаскиванием в гуе? Меньше лишних операций.
>>391948 transform.FindChild("Yoba").GetComponent<Rigidbody2D>().angularVelocity = 1; Имхо, если тебе нужно будет прикрутить детей объекту, ты будешь знать для чего каждый из них нужен. Либо отправлять массово методы. А так делай как хочешь, главное понимать, что вообще происходит в проекте.
>>391966 кстате, он в том видосе ошибся и по joystickImg = GetComponentInChildren<Image>() и получил вложеного чайлда, а самого парента, в котором скрипт.
Я знаю что вы знаете! Есть у меня мишень, есть пистолет, стреляю рэйкастом, все дела. Нужно чтобы в месте попадания в мишени появлялась дыра Натуральная дыра, сквозь которую можно смотреть. Пока из мыслей только ебенить свой шейдер, который будет просвечивать насквозь те участки, которые помечают пули. Всё правильно думаю или велосипед получится? Есть у меня ощущение, что это делается намного проще.
>>391983 > ебенить свой шейдер, который будет просвечивать насквозь те участки захуя свой, если можешь выбрать катофф и красить альфу. но не делают таких дырок в играх не просто так, их не делают потому что катоффы и недайбох транспаренты дают НЕХИЛЫЙ такой овердрав и вообще всячески мешают z-буфферу, что соответствующе сказывается на производительности.
и да, тебе предстоит не только отыскать позицию на UV куда попала пуля, но и позаботиться о том чтобы попавшая в шов развёртки пуля дырявила текстурку адекватно, а не наполовину
у меня тоже не работали, но было это давненько. вариант A я тогда поставил дефолтный язык раскладки на инглиш вариант В я неделю назад установил юнити 5.5 так не разу никакой попоболи я не могу ждать 2 минуты пока открывается VS ради своих говно игор, в отличии от 5 сек монодевы
>>392191 Видать монодевелоп настолько крут, что у него даже такие костыли не у всех срабатывают. Ещё, кстати, он иногда перестаёт раскрашивать код, приходится или терпеть или перезапускать, причём вместе с юнити. Хоть и правда на ВС переползай.
>>392190 Вариант А я нагуглил, но для меня не применимо, в макоси нету такого понятия как раскладка по умолчанию. Тут раскладка не меняется по инициативе системы, только по команде пользователя. Пробовал вообще интерфейс системы переключить на английский - не помогло.
По варианту В. У меня 5.5.0f3 Попробую обновиться, но надежды мало.
>>392197 5.5.2f1(64-bit) Поставил дефолтную раскладку на EN все работает. Если зайти в монодев с RU, автоматически меняется на EN и все работает. А как там на маке хз
Вы мне лучше вот что скажите. Каждый раз когда изменяешь полторы строки в коде и переваливаешься на юнити - она несколько секунд ни на что не реагирует. Я понимаю что компиляция, все дела, но хули так долго-то? Можно как-то ускорить?
>>392199 Попробуй угадать прежде чем смотреть под спойлер.
На маке нет VS, есть только куцая vs code. Я вообще не фанатик, могу и в винду ребутнуться, или виртуалочку запустить. Но, блин, неудобно. Этим, видимо всё и закончится.
>>392205 У меня через встроенный апдейтер тоже не видела, поэтому просто скачал с сайта свежий дистр. Я тут недавно и поэтому не знаю, может быть так и задумано, обновы только в пределах ветки. Хз.
Проебался я тут тжри дня с модельками и анимациями, а сейчас смотрю на них и понимаю что я в душе не ебу что с ними делать. Без идеи ничего хорошего не слепишь, а идеи в голову не идут. Ох уж этот ТВОРЧЕСКИЙ ЗАПОР
>>392222 я правильно понимаю, что если открою в редакторе другую сцену, юнити сделает ее по дефолту первой, т.е. надо всякий раз смотреть в build settings?
ещё такая фигня: в сцене с меню у меня панели, которые по определению полупрозрачны. Такое ощущение, что панель остаётся лежать на гуе и после загрузки второй сцены. видно, что краски другие и всё как-то темней
на первом пике, если сцена с шариком грузится первой на втором пике, когда та же сцена грузится из/после меню, где панели
>>392226 > я правильно понимаю, что если открою в редакторе другую сцену, юнити сделает ее по дефолту первой, т.е. надо всякий раз смотреть в build settings? нет. Расставляешь сцены в build settings в нужном порядке и всё.
>>392227 я переключен на андроид, но гоняю в редакторе как бы расположение в build settings не влияет на порядок, если запускаю на компе как заставить юнити и с редакторе брать порядок как в build settings по возможности без долгого билда?
>>392230 Чего? По умолчанию запускается сцена с индексом 0, потом уже скриптами в нужных местах подгружаешь сцены с нужным индексом. Индекс тебе build settings пишет справа от названия сцены.
А, ты про редактор. В редактор при запуске игры внезапно открывается та сцена, которая у тебя сейчас открыта. Не надо делать как на пикрилейтеде, у тебя тогда сцены смешаются. Доделал сцену - закрывай и открывай вторую.
>>392243 > но в скрипте какой сцены держать этот код? Ну тут уже надо смотреть чего там у тебя происходит. Если ты насчёт перехода из меню в основную сцену, то вообще поебать куда ты этот скрипт повесишь, потом по нажатию кнопки просто выполняешь метод и всё.
>>392243 >>392246 Ну то есть для перехода из сцены1 в сцену2 код должен висеть на объекте из сцены 1, для перехода из сцены 2 в сцену1 или в сцену3 — на объекте сцены2. А уже на каком именно объекте — тут уже по обстоятельствам. >>392244 Там у него сцены наслаиваются.
>>392250 Лень читать, сразу скажу: Есть скрипты там можно прописать что-бы при нажатии Плей в редакторе запускалась нужная сцена, а не текущая. Когда ты редактируешь сцену там одно освещение, а когда запскаешь там хуйзнает какое, если ты не настраивал его специально. Обычно амбиент лайт отпадает.
>>392339 > Ведь не важно же, где скрипт лежит? В смысле на ком он лежит? Не важно, да. Но у меня этот пример >>392338 работает, в частности в инвентаре.
>>392343 > ведь папка Resources подцепляется функцией по умолчанию? Да. Ты в примере на этом пике >>392339 пытаешься его подгрузить в нихуя. В этом примере >>392338 присваивание, что тебе и нужно.
>>392368 Ну вот сам подумай, почему у меня это работает, а у тебя — нет? Может быть потому что ты делаешь что-то не так? Что именно — хуй знает, у меня твоего проекта на руках нет.
>>392370 Ну вряд ли там что-то понёрфили. Порежь там свой проект, что никто твой ИНТЕЛЛЕКТУАЛЬНЫЙ ТРУД не спиздил и скинь — посмотрю где там чего у тебя не цепляется.
У коробок новый этап эволюции: теперь можно тут же экипировать лежащий на полу предмет, все экипированное хранится в Dictionary, а enum слот экипируемого предмета используется как ключ. Охуенно. Теперь надо инвентарь сделать, но у меня уже EXPLICIT TYPE DECLARATION от этого кода. Тяжело, когда ты тупой и порядком заебался читать StackOverflow. Пиление UI тоже тоже не радует. Пытался поковырять слайдеры, чтобы сделать простые бары под хп-ману-стамину и прихуел (особенно от типа, который посоветовал в коде отрисовать слайдер, вот это пушка,блядь), благо в каком-то туторе все было довольно хорошо описано.
Вот здесь парень поварачивает платформу, нажимает на кнопку, и меш поварачивается относительно платформы. Делаю так-же, меш не поварачивается, чяднт? Версия юнити - 5.6f1. https://youtu.be/m5wBulwoZss?t=44s
>>392445 >>392446 >>392447 Проблема была в версии юнити (5.6). В 5.1.0 всё работает по писанному и картинка конвертируется в prefab и грузится как Sprite
Решил вкатиться в геймдев на этом движке и вот назрел первый вопрос. Анон юзает бесплатный Unity Personal или ворует Unity Pro? Какие подводные в обоих случаях?
>>392545 > Какие подводные в обоих случаях? В бесплатной версии нет Dark Theme для труe девелоперов. Ну и еще щепотки графона. Скачай бесплатку, начни ковырять, поймешь, нужно ли оно тебе вообще.
>>392416 Ой, иди нахуй. Вот эта хуйня не работает. Я уж подумал, что в Update пихать нельзя (да и не нужно, пожалуй), прописал в OnHit() изменение хп. Диспенсер стрел убивает стороннего NPC, убивает меня, в дебаге все отображается. А слайдер, сука, не работает.
Смотрел примеры юнити игр, не нашёл ни одной от индуса, где было бы красивое 3D. 2D игры получаются более менее, бывают даже очень красивые, а вот 3D везде недотягивает и игры выглядят дилетанскими.
По-моему нужно забить пытаться в 3D в одну харю, это слишком накладно и даже невозможно. Халтурщики конечно пытались продвинуть лоуполи, но в итоге покупатель не оценил и сторонится поднобного.
В отличие от пиксель артка, который спустя время до сих пор собирает кассы.
Есть вопрос, нужно сделать так что бы было видно тело персонажа при виде от первого лица ну и пользователи со стороны видели персонажа. Это делается слоями ? Если да, то обьясните. Ещё проблема в том что если делать от первого лица видимость всего персонажа приходится камеру перед лецом держать иначе куча багов возникает. Можно ли убрать видимость конкретной части тела или проще в меше "отпилить" голову для вида от первого лица ?
я правльно понимаю, что в случае айфона готовиться к отсосу, т.к. установка только через шоп mojo не предлагать? а на андроиде можно и напрямую из пакета?
>>392749 плюс фотона в том что для игры по сети не нужнен отдельный сервер, а вообще с таким отношением если тебе не интересно самому почитать то нафиг ты вообще этим занялся ?
>>392752 Хотелось узнать что думает местный разработчик. + информативность, ранее я темы мультиплеера не касался, а если и касался там были довольно устаревшие материалы (2010-2013-й годы)
Подскажите ньюфагу, как сделать, чтобы персонажу наносился урон от удара о поверхность на высокой скорости, но урон рассчитывался по формуле (вектор скорости тела * угол удара о поверхность) чтобы была возможность получения урона от удара о стены/потолок, но при этом не иметь проблемы при контактах с поверхностями на скорости по касательной.
>>392763 >>ньюфагу из за этого у меня встречный вопрос может оно тебе не надо? Тобишь это жизненно необходимо геймплею? Надо взять угол между vector3.up игрока и полигона о который он ударился. А для силы удара узай impulse.magnitude
>>392768 но проще незаморачиваться и просто прописать if(col.impulse.magnitude > например 5, потестишь сам) ApplyDamage(99999999); если совсем ньюфаг гугли OnCollisionEnter
>>392772 Перечитав я понял что тебе надо гуглить только OnCollisionEnter из которого вытекает col.impulse. Тобишь импульс столкновения. Если ты рпосто бежишь он около 0.1 а когда именно ударяешься 3+
кто работал с MMD в унети через mecanim или как-то ещё и смог импортировать более, чем одну анимацию!
Если ли возможность поставить анимацию на запись, если данные по верчению джоинтов приходят по другому каналу данных?
Я понимаю, что вопросы весьма специфичные и криво поставленые. Модельки импортируются, мне бы теперь мой мокап пристегнуть и начать бабло лопатой грести
>>392843 >желательно, и не спорь схуяли? не траль плиз Мокап как способ создания анимации никогда не был для реального времени ни предназначен ни пригоден, то что появилось несколько "спортивных" игр с кинектом, где удалось применить распознание позиции тела в реальном времени никак ситуацию не изменило.
>>392846 >ну как с таким упёртым разговаривать... >кинект - мокап реального времени кинект - это просто устройство. Сенсор глубины. Сам по себе он ничего с данными не делает. Я сам кстати использовал не кинект, а asus xtion, у него в два раза больше разрешение или в два раза больше частота кадров при том же разрешении. Что дальше делается с этими данными - уже зависит от софта. К примеру тот же ipi soft позволяет, помимо всякого базового, вроде кропа или ретаргетинга анимации на целевой скелет, применять разные фильтры, устранять джиттер и всякое другое разное, нужное для того, чтобы анимация выглядела гладенькой, а кости не тряслись, как листья на ветру. Поскольку фильтрация делается на базе информации сразу из нескольких кадров и в несколько проходов, это может занимать много времени, сродни рендерингу. Какое уж тут реальное время.
>>392858 У тебя есть четыре стула: Awake(), Start(), Update(), FixedUpdate(). Ну и куча специфических табуреток. Main() в юньке нет. Первые два делают штуки один раз до загрузки сцены и прямо в начале сцены соответственно, Update() каждый кадр выполняет действие, FixedUpdate() по фиксированной частоте, чтобы не зависить от FPS.
>>392857 они там в край прихуели, 3к+ просят, а х-коробку-то за 8-9 покупали причем ведь блять и сами в игры на нём не играют потому что игры с кинектом это для сказочных дегродов вообще и ПРОДЕШЕВИТЬ НЕ ХОТЯТ
>>392861 Хуя-хуя, датчики не идеальны и с каждой новой костью в цепочке погрешность будет расти всё сильнее. В целом работало нормально, но кисть и особенно пальцы пидорасило просто нечеловечески. И с калибровкой возни много.
>>392887 Чайлд получает координаты крепления к паренту и угол вращения датчика между ними. Из этого расчитываюся координаты конца чайлда, которые передаются его чайлду.
TIL: активация несуществующего триггера аниматора бьёт по производительности гораздо сильнее чем расчёт коллизии двух динамических объектов.
>>392897 >Чайлд получает координаты крепления к паренту и угол вращения датчика между ними. Из этого расчитываюся координаты конца чайлда, которые передаются его чайлду. и я так же запилил вот здесь уже много раз на ГД выкладывал https://drive.google.com/open?id=0B5eCY5SALqIZTENvWUVkSm01LTQ
Посоны, ковыряю я тут один туториал с офсайта Юнити хотя туториалом это назвать сложно, у них там уже почти всё готово, открываю сцену и там какие-то анальные шарики по всей сцене. Методом тыка и гугла узнал что это Light Probe Group, почитал о нём и приуныл. Сколько я туториалов ковырял, сколько своих говнонаработок клепал — никогда на эту залупу не натыкался. В мануале написано что он нужен для того, чтоб свет был заебись. А если мне и так заебись? Всё таки надо курить это дерьмо? У профи небось в каждой игре эта хуерга в освещении участвует, да?
>>392958 короче это такая хуегра чтобы вторичное освещение освещало ещё и твоих кхарактеров например, заходишь ты в анальный тоннель, вторичное освещение на лайтмапах там есть и тоннель тускло освещен, хотя не находится в прямой видимости от источника освещения, а вот кхарактер и прочие мувейбл обжекты — не. диссонанс. ну и короче расставляешь эти анальные пробы и перестраиваешь освещение, вуаля, и твой 3.5полигональный нериганный уёбок адекватно реагирует на освещенность сам их не юзал, основываюсь на аналоге из юича
>>392959 Спасибо, антоша. Короче, решил пока на них внимание не заострять, просто буду помнить что они есть. Если начнутся такие вот проблемы со светом — буду доставать эти анальные бусы. А пока пусть в сторонке полежат.
>>392958 Это Global Illumination, на ютубе есть ролики с объяснением этой хуйни. Нужно для графона. Или когда моделируешь помещение со множеством лампочек, которые накладно делать настоящими лампочками. Что значат шары так и не понял, у меня свет от GI выбивался далеко за пределы площади, очерченной шарами. Мб для наглядности.
>>392961 LIGHT PROBE - нужен что бы освещать динамические объекты на сцене, статическим светом. Например хуй ты подсветишь объект от emit текстур без источника света light. Можно сказать что один шарик light probe выступает в качестве пипетки как в фотошопе и наносит полученный свет на что бы там нибыло. Вроде таво
>>392964 То есть настраивать эти шарики не надо? Разместил и они будут подсвечивать динамический объекты, высчитывая всякие там интерполяции на основе основного извините за тавтологию света?
>>392958 Все очень просто: эти штуки нужны, чтобы лайтмаппинг влиял не только на стены, пол и потолок, но и на движущиеся объекты. Освещение, запеченое на каждый шарик как бы проецируется на объект, если тот находится близко к шарику. Если находится между двумя - эффект будет средним между ними. Конечно надо иметь в виду, что освещение это не настоящее, теней от него не будет.
Вполне можно не использовать все это, также как не использовать лайтмаппинг, можно обвешать всю сцену исключительно реальными источниками света с реальными тенями.
Но можно расставить свет и пробки, запечь лайтмаппинг и удалить все источники света вообще! Как на пике. Под персонажа кинуть blob shadow. Использовать только кратковременно существующие источники света без теней для эффектов. И получится в принципе красивая сцена, где персонаж или какие-то другие объекты, типа движущихся платформ, освещаются при перемещении по сцене, а у персонажа вроде бы есть тень. Короче апофеоз оптимизации в плане освещения.
кстати, в мануале про это все подробно, блять, написано, причем на русском языке.
>>392967 > кстати, в мануале про это все подробно, блять, написано, причем на русском языке Да читал я это всё. Вопрос был немного о другом. > Всё таки надо курить это дерьмо? У профи небось в каждой игре эта хуерга в освещении участвует, да?
>>392968 если используешь лайтмаппинг - грех не использовать лайтпробы, это же кусочек графона считай бесплатно. И что там курить, прочитать за 10 минут всю информацию по компоненту и за 5 минут сделать тестовую сцену? полчаса на накидать шариков на основную? Это же все очень просто.
Скачивал давным-давно версию юнити 4 с чем-то, побаловался, забросил. Вот хотел сегодня снова залезть разочароваться в своём нубстве и снова забросить, но внезапно оказалось, что он перестал работать. Скачал новую версию 5 с чем-то, а она виндовс 7 требует а я на Висте, потому что пошло всё нахуй. Я нашёл не ту версию или что?
Поясните за AddForce у Rigidbody. Вроде как ему надо передать вектор силы, но насколько я помню — вектор силы это направленный отрезок, у которого даже вполне есть длина возможно путаю, школу закончил почти 15 лет назад, а тут у нас один Vector3, который в данном случае является координатами. Так вот он — это координаты чего? Направления вектора относительно центра тела? Вот я написал такую строчку: GetComponent<Rigidbody> ().AddForce (transform.position, ForceMode.Impulse); То есть этот самый вектор силы — это координаты самого объекта. И куда полетит объект при использовании этой строчки? Говном не кидайтесь, я просто уже заёбаный. Знаете как бывает когда одно и то же слово повторяешь и оно теряет смысл? Вот тут та же хуйня, я элементарное говно уже не осознаю а оно мне нужно.
>>392971 от vector3(0, 0, 0) тобишь центор персонажа и до vector3(10, 10, 10); первый вектор тебе не выдается как бы он по у молчанию 0.0.0 в центре твоего игрока. попробуй пропиши transform.forward * 10; форвард это то куда смотрит синия ось Z
>>392970 > OS: Windows 7 SP1+, 8, 10; Mac OS X 10.8+. > Windows XP и Windows Vista не поддерживаются; серверные версии Windows и OS X не тестировались.
> апофеоз оптимизации в плане освещения а ничего что статический свет не освещает статические объекты от слова вообще, только в лайтмапы печёт, а риалтам вообще игнорирует их и подозреваю что расчет освещения от сфер — особенно от нескольких сразу — такой же или даже потяжелее будет чем расчет прямого освещения
> Под персонажа кинуть blob shadow под открывающиеся двери из индора в аутдор тоже будешь блобшадоу кидать?
> и удалить все источники света вообще класс, и под каждый пук нужно будет свет включать назад, перестраивать, отключать
>>392971 вектор идёт из центра ригидбоди, да > у которого даже вполне есть длина да, но это не нормализованый вектор, в нём же и задаешь силу > Направления вектора относительно центра тела? относительно центра, но в системе глобальных координат, т.е. не зависит от поворота ригидбоди
>>392978 > это тебя толкнет в ту сторону которую ты смотришь это толкнёт тебя в ту сторону, в которую ты отбежал от центра мира и с той силой на какое расстояние ты отбежал
>>392983 а она то с каково перепугу толкнет? первая точка по дефолту локальный 0.0.0 и вторая та что мы указываем, тоесть ты толкнешь этой строчкой с 000 до 000
Так, с векторами всё заработало, ещё раз спасибо. Мне, собственно, что нужно было — чтобы от взрыва "бомбы" все объекты с Rigidbody разлетались в соответствующие стороны. Те, что слева — влево, те, что сзади — назад и т.д. Сделал как на пикрилейтеде — вроде работает, только надо вектор умножать, а то вяло отскакивают, ну и приплюсовать Vector3.up, наверное. И проверку на дистанцию, а то бомба получается такая ядрёная, что от её взрыва вся сцена скачет, даже если объект чёрти где. >>392984 > тоесть ты толкнешь этой строчкой с 000 до 000 Неа, нихрена, попробуй сам. Если объект стоит в (0, 0, 0), то эта строчка его не сдвинет, потому что будет двигать в те же (0, 0, 0). А вот поставь его в (0, 0, 10) и он вполне себе неплохо полетит по Z.
>>392977 >а ничего что статический свет не освещает статические объекты от слова вообще, только в лайтмапы печёт, а риалтам вообще игнорирует их спасибо, кэп. >и подозреваю что расчет освещения от сфер — особенно от нескольких сразу — такой же или даже потяжелее будет чем расчет прямого освещения "Не читал, но осуждаю" Делаешь пару тестовых сцен с разными вариантами освещения, открываешь профайлер, смотришь результат. Подозрения сменяются знаниями, основанными на опыте, уровень скилла растет, все дела.
>> Под персонажа кинуть blob shadow >под открывающиеся двери из индора в аутдор тоже будешь блобшадоу кидать? Речь шла только о персонаже. Очевидно же, что такой сетап сцены неприменим в ситуациях, когда требуются динамические тени от объектов окружения. Если у тебя игра про открывающиеся двери из индора в аутдор, очевидно, блять, надо делать по другому. Применять те или иные способы можно и нужно исходя из своих целей.
>класс, и под каждый пук нужно будет свет включать назад, перестраивать, отключать Тут вообще нет слов. Чекнуть enable для группы источников света — это проблема? Или что там у тебя вообще за пуки такие, которые могут требовать постоянной перенастройки всего освещения сцены? Тебе походу только бы доебаться. Лайтпробы в детстве обидели? Делай вообще как хочешь, кто тебя ограничивает?
>>392985 >> с 000 до 000 >>Если объект стоит в (0, 0, 0), то эта строчка его не сдвинет, потому что будет двигать в те же (0, 0, 0) >> с 000 до 000 >> с 000 до 000 >> с 000 до 000 >> с 000 до 000 ты под наркотой или че? ты тоже самое написал что и я только под предлогом того что ты прав. пиздец ахуеть
>>392995 если ты стоишь не в 000 и укажешь в addforce transform.position то тебя никуда не толкнет потому что бы первая кордината в центре тебя, и вторая тоже. получаеться ты толкнешься в центр себя
>>392992 Странно, но не работает. Сама выборка срабатывает, массив создаётся, а вот как доходит до строчки > rb.AddExplosionForce(power, explosionPos, radius, 3.0F); так и нихера, стоят и стоят.
>>393000 Мда, всё ещё страннее. При предполагаемом взрыве визуально все остаются на местах, но в инспекторе у каждого "отбрасываемого" объекта и position и rotation меняются. Такого я, надо сказать, ещё не видел.
>>392991 > Что символизирует это самое "-1"? умножить на -1 инверснет вектор без особой ёбли. да, их можно вот так перемножать.
>>392990 > Делаешь пару тестовых сцен с разными вариантами освещения, открываешь профайлер, смотришь результат. Подозрения сменяются знаниями, основанными на опыте, уровень скилла растет, все дела. ну что же, я попробовал вообще есличестно ожидал что все эти оккультные пляски со светом до добра не доведут, на деле же результат неоднозначный
фпс поднялся, ето да, но блики пропали. блики это вам не тот всратый specular из древней эпохи, они делают живым метал, склизкие щупальца, лужи и океаны и даже очки анимешных девочек. деталь-нормал-мапы пострадают в первую очередь. короче от лукавого это всё. но вообще спасибо за идею, неплохой эксперимент.
нет, свет не выключен в статике, просто они там темнее, но не в мощности суть а в спекуляре
> Тебе походу только бы доебаться. нет ты затираешь новичку про экспериментальный подход, которй пойдёт разве что для О.Л.Д.-фажных (старающихся ими казаться) игор, ну или какой-нибудь ещё казуальной хуйни. они вот так вот берут, делают-делают, трудятся, а потом ОКАЗЫВАЕТСЯ что Х не работает как надо, а почему? а потому что Х был разработан под нужды нормальных людей, которые действуют по тем принципам, которые придумали собственно разрабы движка, и ещё удивляются, типа, А ДОЛЖНО ЖИ РАБОТАТЬ
А вы знали, что в последней версии unity для бесплатной лицензии встроен шпионский модуль, который собирает инфу о пользователях. На сайте об этом нигде не написано. Это вообще законно?
>>393031 Эту хуйню можно отключить в про версии. Галочка в плеер сеттингс. Тпа отладочная инфа отсылается вместе с данными кредиток и кейлогом за последние 5 лет
Может быть кто-нибудь посоветует, как сделать красивее
У меня по датчику на - поясе - каждом бедре - каждой голени - каждой ступне
в модельке они сверху вниз считаются чайлдами предыдущего парента. Соответственно, если я вращаю бедро, то колено не гнётся, т.к. голень получает вращение родителя.
Велосидедом на пике вращаю чайлда назад конъюгированным кватернионом родителя, чтобы в последствии самому чайлду задать вращение от его собственного датчика.
Коротко: пусть чайлды свисают с суставов без вращения через родителя
>>393112 > Что в юнити отслеживает, что чайлд получит вращение парента Чайлд же вроде всегда получает вращение парента. Во всяком случае обычные объекты, не ебу как там это у ригов.
>>393176 Дело вот в чём: я могу в Update задать вращение любой кости/сустава называйте как хотите. Логично, что в отриганом префарбе некая "сила" делает перерасчёт положения чилдренов, т.к. родительская кость сместила свою конечную точку, откуда чилдрены ростут.
В том же Update я вручную возвращаю ротацию чилдренов в исходное new Quaternion(0, 0, 0, 1), и это работает, НО из-за проёба с синхронизацией, наверное, конечные чилдрены "дёргаются" при движении.
Физика частиц ультраоптимизированна или что? У меня по 100 частиц носятся и рикошетят, отправляя коллбеки, без какого-либо вреда для фпс. В чём подвох?
>>393255 > ультраоптимизированна было б что оптимизировать там у частиц физика от слова "точка в пространстве", делов-то, просчитать за фрейм коллизию точки и передвинуть её на вектор скорости + вектор гравитации > отправляя коллбеки разве что вот это быстренько, да но вообще сомневаюсь что в больших масштабах это применимо, думаю что водичка каплями, которая коллайдится сама об себя вызовет затруднения у ФПС
>>393264 >было б что оптимизировать У них есть круглые коллайдеры так то, разве что РБ не прилепить. >но вообще сомневаюсь что в больших масштабах это применимо Я шуты делал на частицах, огонь вышел вообще пушка.
>>393266 > круглые коллайдеры для определения столкновений. а для физона те же "точки", потому что не вращаются, а следовательно и избавлены от необходимости рассчитывать импульс и прочие трудоёмкие вычисления
Да сука, я сделал это. 3 дня ушло, причем два из них я потратил на слишком усложненную версию с шестью прицепленными коллайдерами, в результате всё удалил и сейчас за час сделал вот так. Не идеально, но работает.
Как можно улучшить толчок от удара? Понизить трение? Или тут всё дело в движении камеры?
>>393307 Улучшить я имею ввиду общий вид, а не силу толчка. Или ты думаешь лучше будет если она подальше улетать будет? >>393308 Окружения - скачал бесплатный тайлсет, он первые вылазит в поиске. Зомби и тянку рисовал сам. Ориентировался на игру EnterTheGungeon.
>>393305 че за жесть с 6 колайдерами? я бы добавил в анимации в кадре удара эвент DoAttack с примерно таким кодом if(vector3.dist(postition, player.position) < attackRange)//если игрок в зоне удара rigidBody2d.addForce((transform.position - player.position).normalize * punch);
>>393305 кстати если не очень шаришь в математике и логике в целом, советую iTween правда придеться часок потратить что бы разобраться но он это годнота если хочешь могу помочь в дискорди
>>393318 Вот я к такому и пришел в итоге. А изначально я подумал что если зомби замахнулся и ударил в одном направлении, то урон должен проходить только в этом направлении, типа чтобы можно было увернуться. Следовательно добавил 6 коллайдеров-триггеров на каждое направление удара, похоронил себя в куче функций, переменных и триггеров, и когда это таки хромая заработало, понял что это всё нахуй не нужно было.
>>393321 О, спасибо за наводку. Посмотрю. Кстати, а что из математики нужно бывает в принципе? Я как раз на математическом факультете учусь, интересно.
>>393338 видно тебе не очень надо это говно, т.к. если надо было бы нагуглил наверно даже нет готовой говно игры. Так зачем засорять голову калом? но на скоолько я знааю для этого есть Asset Bundles или как то так
>>393399 Я думал есть какой-то метод, куда можно просто передать значение, которое надо исключить. Ну да ладно, так тоже пойдёт, похеру, всё равно уже велосипед на велосипеде.
>>393400 лол? не такие уж и велосипеды я написал, в первой же ссылке гугла тоже самое var validChoices = [1,3,5]; function GetRandom() : int { return validChoices[Random.Range(0, validChoices.Length)]; }
>>393403 В том и дело, что у меня будет не 0 и 9, это я для примера написал. У меня будет диапазон от 0 до 63 и "исключений" может быть до четырёх. Например, иногда надо нарандомить число из диапазона, но не 3 и 17, иногда не 10 20 30 40. Короче, загнал исключения в небольшой массив и если нарадомленное число совпадает с числом из массива, то рандомится заново.
>>393405 Поле 8 на 8 квадратов, от одного до четырёх квадратов могут быть "активными" (читай - подсвеченными) и мне надо активировать/подсветить ещё один рандомный, который на данный момент активным не является. То есть исключить из рандома те индексы, которые уже активны.
>>393406 лол так это динамическая хрень попробуй примерно: list kvadrati[]... getRandQuad(){ временный лист disabled[] for(...)//пробегаем по массиву { if(kvadrati.Glow == false) disabled.add(kvadrati); } return disabled[random.rang...]; }что бы юзать листы которые проще массивов добавь сверху всего кода using collections.generic или типо того
>>393409 list[] quads transform getRandQuad(){ list[] notGlowing for(...quads.lengt...){ if(quads.glow == false) notGlow.add(quads); } return notGlow[random.range(0, notGlow.lenght)] } я не ебу на скоько ты нуб так что написал попонятней
Ну почему я такой криворукий аутист, что даже на первом простейшем туториале обосрался. Делал все один в один как тут http://catlikecoding.com/unity/tutorials/clock/. Но, как вы можете видеть на пикриле, ничего не получилось. Ошибку выдает следующую: UnassignedReferenceException: The variable hours of ClockAnimation has not been assigned. You probably need to assign the hours variable of the ClockAnimation script in the inspector. UnityEngine.Transform.set_localRotation (Quaternion value) (at C:/buildslave/unity/build/artifacts/generated/common/runtime/TransformBindings.gen.cs:98) ClockAnimation.Update () (at Assets/ClockAnimation.cs:26)
Гуглить я конечно пытался, но нашел решения только для частных случаев, в которых ошибка как правило в коде. На всякий случай залил вот код https://pastebin.com/srKcZR53 может кому так удобней.
>>393438 переводить пытался?You probably need to assign the hours variable of the ClockAnimation script in the inspector./ВОЗМОЖНО ТЕБЕ НАДО ПРИСВОИТЬ ПЕРЕМЕННУЮ HOURS В ИНСПЕКТОРЕ 2 ошибки возможно вытекает из первой
если переменная в классе объяслена как public, это даёт возможность присвоить ей значение уже в инспекторе. Для этого маркируешь объетк, на который положил сктипт, и смотришь в inspector, какие ячейки пустые "None". В них перекладываешь опять же в редакторе то, что подходит по смыслу.
>>393451 И такое в принципе возможно, если сделать скрипт сложнее. Ты перекладываешь его на объект Clock, и в Start() делаешь поиск чайлдов по имени или тегу. Это как бы вслепую и легко обосраться. Ведь надо проверять, нашлось ли нужное.
>>393453 ты почитай или посмотри видео хотя бы сначала что такое update, lerp... ты так заебешся по каждой мелочи которую ты искозил по незнанию ждать ответов
>>393453 ну корутинах можно, только они никак не отличаются по сути от апдейта + если ты новичок только лишний бред только получишь в голове если перескакивать с простых вещей на более сложные
Вопрос такой, понял что дефолтный механизм травы в unity сосёт 700 отрисовок в секунуду и это только трава, которая ещё и по омски за игроком вращается и не вариант. Сделал меш. Но проблема в том что если плейсить с помощью кисточки в terrain details он спавнится на пару см ниже чем нужно, и в итоге над террейном видно лишь макушки. Вангую проблема в изначальной модельке
Хочу плавное движение и в тоже время по фиксированным позициям. Например вращение: Я пишу IEnumerator: newRotation = -target (Mathf.Cos(Mathf.PI time * speed)); где time обновляется time += Time.fixedDeltaTime ну и плюс условие newRotation == target. Дальше, получив новое фиксированное значение поворота я хочу плавно повернуть к нему. Мое решение в Update: transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.AngleAxis(newRotation, Vector3.forward), Time.time);
Вроде как-то работает но все равно странно. Боги Unity как вы двигаете/вращаете объекты в этом простом движке. самому писать интерполяцию?
>>393523 > Боги Unity как вы двигаете/вращаете объекты в этом простом движке. самому писать интерполяцию? У меня двигаются через MoveTowards, но без вращения, ибо 2D.
>>393530 Спасибо за MoveTowards. Вместо Lerp юзаю RotateTowards(prevRotation, nextRotation, Time.deltaTime) и вроде показывает самое стабильное линейное сглаживание
>>393523 привет 1 что хочу сказать корутины тебе не нужны если у тебя не многомилионный проект в котором пиздецки важен каждый 0.1 фпса. 2. для поворота. (Q = quaternion для сокр) //здесь вставляешь желаемое направление например если тебе нужно повернуть в сторону монстра.(если получиться кверх ногами, переверни выражение в LookRot..) Q newRot = Q.LookRotation(player.position - monster.position) transform.rotation = Q(.Slerp) или (.RotateTowards)
>>393565 > корутины тебе не нужны если у тебя не многомилионный проект в котором пиздецки важен каждый 0.1 фпса А я их юзаю для плавных перемещений, чтоб в апдейте не вертелись постоянно, а работали только когда надо.
>>393625 > Главное, что возможно Возможно всё, что укладывается в понятие "компьютерная игра". Другой вопрос — как долго это делать и какие ресурсы для этого нужны.
Тут кто нибудь делал мультиплеерные игры, где мультиплеер - основа всей игры? Как я понял встроенный сервер поддерживает около 1000+ коннектов, но производительность не очень у него. Ulink чуть получше.
>>393653 Я уж не говорю о том что все Фотоны(сервер и клоуд) дорогие, платные и с ограничением по коннектам. Если б у меня были деньги - платил бы за Phonot Server, но у меня столько денег нет, могу максимум тысяч 30 заплатить за такое серверное решение.
>>393658 боюсь тебя расстроить за 30к в год без ограничения тебе никто никогда не даст. Это либо пиздешь, либо скорость будет количество подключений делённое на максимальную скорость
Хелп народ. нужен ассет или готовая база чего-либо, которая поможет создать смесь визуальной новеллы и поинт & клик адвентюры. Все статика, анимации и 3д рендеры не нужны. Огромная куча комнат, у каждой комнаты свой бек (10-ки беков). С выполнением переменных меняется бек. Ах ну да, без программирования. Смотрел Fungus, но там очень уродско реализована система save\load, и при достижении почти 1к блоков, лаги неебучие в проекте. До этого юзал ренпи, но заебался придумывать костыль для интерфейса.
>>393710 > Все статика, анимации и 3д рендеры не нужны > нужен ассет И что ты там в ассете хочешь увидеть, если тебе нихуя не надо? > Ах ну да, без программирования А, понятно.
Господи, что там кодить в ёбаной визуальной новелле?
>>393712 >>Господи, что там кодить в ёбаной визуальной новелле? как я понял ему это и надо, то есть кодовая основа на которую он просто прилепит картиночки. И да согласен по мойму тоже в новеле кодить особо нечего
>>393714 > Раз написал, значит с этим проблема Я не шучу, чтобы осилить шарпы на уровне управления визуальной новеллой, тебе понадобится максимум неделя, и то это с учётом того, что ты каждые 5 минут будешь чесать яйца и переваливаться на двачик. Если более целенаправленно, то это один день чтобы влить себе в голову кучу инфы, потом с этим всем выспаться и ещё один день чтобы всё закрепить. Всё.
>>393715 >>393716 То, что я ни грамма не программист, и в душе не ебу как все прописать. Я по части - сделать так, что бы выглядело красиво. На изучения языков у меня нет времени.
Так подскажите про системы, или будете дальше писать про код и блп-бблп-бла?
>>393717 > Так подскажите про системы, или будете дальше писать про код и блп-бблп-бла? Пойми, игр совсем без кодинга не бывает, даже визуальных новелл. Так или иначе тебе придётся писать/редактировать скрипты.
>>393717 всмысле нет времени? "сделать" что то, что бы там нибыло красивым есть, а кодить нет. Есть только 1 вариант ищи напарника который будет это делать бесплатно
>>393717 нет никаких систем, что за навязчивая идея найти какую то систему. Может проще не юзать юнити? На сколько я знаю есть спец. движки для виз. новелл. Зачем тебе юнити которое подразумевает код
>>393719 Программисты всему голова, и кроме них нету больше профессий? >>393720 Юнити не панацея. Имел его ввиду, потому-что посоветовали выше описанный Fungus Asset что и подразумевают говотую работу по типу визуальных новелл и поинт енд клик адвентюр. Но на практике, при работе с большими проектами загружают всю оперативку на максимум, в результате чего работать невыносимо... Специализированные движки по типу RenPy увы предоставляют довольно смешанную иформацию. Тут тебе фастстарт для даунов, которые реально за вечер осилил и в дорогу, а если чуть посложнее, то уже идут прям полотна кода, в которых хрен разберешься.
>>393723 > Программисты всему голова, и кроме них нету больше профессий? Тебе выше уже сказали, тебе хватит двух дней чтобы освоить шарпы на уровне написания скриптов для ВНок. Или воя профессия всему голова и потратить два вечера на изучение чего-то другого кодекс не позволяет? Ты дольше свою "систему" искать будешь. Мне вот нужно было склепать несколько моделек, я не пожалел нескольких вечеров чтобы освоить Блэндер на уровне макаки и сделать/затекстурить то, что я хотел.
>>393723 я забыл название game maker или game constructor. я на нем без кодинга сделал простенький марио в 12 лет. а какие возможности там есть щас не могу представить
>>393717 > я ни грамма не программист, и в душе не ебу как все прописать Тут так-то полтреда такие и я не исключение. Вон сколько довольно простых вопросов всплывает. По шарпу есть годные учебники. По юньке видеоуроки на официальном сайте — это шарп вместе с классами и функциями движка. Оба стула ничего так.
Сделал красиво в Agisoft Photoscan Импортировал в obj и открыл в блендере - все норм вставляю в юнети - проёбывается текстура пробовал и через fbx - блендер норм, юнети сосёт
>>393841 всё оче просто - это не текстура, это вертекс колорз хотя может вдруг и текстура, я хуй знает, но подавляющее большинство 3дсканов пишут цвет именно в вертексы тебе предстоит сделать ретопологию модели (советую Topogun), сделать ей развёртку (обычно либо zbrush либо макс) и запечь увета вертексов в настоящую текстуру (советую xNormals)
>>393847 >2. это не модель а скульптура с милионом полигонов, нужно делать ретопологию видно же на скрине с блендером, что 200к трисов. Для какой-нибудь интерактивной презентации вполне сойдет.
Мне нужен доступ к методам того объекта который задет рейкастом, причем в метод нужно передать значение. Как это сделать эффективнее?
Искать по тегу быстрее чем по имени, так? Но при этом я прочитал что еще круче вообще не использовать методы Find..., а получать всё через get/set. Что использовать то?
Как лучше анимировать 2D спрайты? У меня сейчас всё идет через AnyState и с одной переменной переключаюсь между различными состояниями прибавляя 10 или 20, попытался усложнить анимацию - всё по пизде пошло.
>>393870 нуу не знаю, вопрос насколько нестандартный? если уж совсем нестандартный такой что прям вообще нестандартный, то, думаю, не стоит, а если нестандартный так, немножечко, то, вроде бы, можно
В общем касаемо чатов. Кто нибудь пытался сделать так чтобы: 1. В одной строчке - сразу несколько текстовых команд 2. Помимо текстовых команд можно ещё и обычный текст в эту же строчку.
>>393901 vasiliy666 не знаю. Делаю через стандартный workflow шаг за шагом. Чанк у меня только один. Как и почему юнети разбивает на нестолько частей, я не знаю.
Блуры - те, что я поменит на втором пике? Не я их делаю, сами по дефолту выходят.
Сейчас переделываю под 20к поли
начинаю догадываться, почему в юнети выглядит замыленно - так подмешивается отражение от нормален в то время, как в агисофте и блендере картинка без света и текстурка один к одному
>>387294 (OP) Кто-нибудь может подкинуть каналов на ютубе, которые объясняют саму структуру разработки игры с нуля, а не просто "делаем простую бегалку в юнити за 3 часа"?
>>393905 Парсер - это то, что разбивает строку на логические части. Для примера можешь погуглить парсеры командной строки. И реализация от юнити никак не зависит. Берёшь строку - получаешь команды.
>>393909 если ты новичок, то просмотром таких видео ты не сможешь сделать даже простейшую игру. Нужна много практики, а видосики только создадут иллюзию познания. Процессы отличаються у проффесионалов\любителей\новичков целиком и полностью. Любитель и новичок в первую очередь практики, которым не нужен анализ рынка, макеты и прочий кал.
>>393914 да это спецефическая особенность людей, проще поверить в какой то субьективный кал который никак не тратит энергию мозга, чем начать что то запоминать и вникать
>>393910 Сначала подумал что это название. А какие? Те что я находил именно "делаем бегалку".
>>393913 > ты не сможешь сделать даже простейшую игру > практики, которым не нужен анализ рынка, макеты и прочий кал Да я в принципе скорее про общую архитектуру проекта, как все компоненты сливаются воедино. Просто туториалы типа "напишем скрипт двигающий кубы по нажатию клавиши" это конечно хорошо, но у меня с этим нет проблем - а как правильно делать уже то, что уже похоже на реальный комплексный продукт с анимациями, моделлингом, алгоритмами всё равно не ясно. Идеально было бы препарирование уже существующих игр - есть такие каналы?
>>393906 > vasiliy666 не знаю имел в виду многочисленные туторчики с ютуба
> Делаю через стандартный workflow шаг за шагом о том и речь. да, он попроще и побыстрее чем возня с профильными программами. но не лучше.
> Чанк у меня только один. чанков у тебя полно, судя по вот последнему скрину. всё что окружено блюром - чанки. островки развёртки, ну ты понел.
> Блуры - те, что я поменит на втором пике? Не я их делаю, сами по дефолту выходят. их даёт запекалка Agisoft Photoscan
> Сейчас переделываю под 20к поли попробуй MeshLab, а в нём Filters -> Quardic Edge Collapse Decimation. неплохо снижает полигональность при сохранении формы, хотя и хуже зибрашевского десиматора особенно для хард-сюрфейс мешей вроде зданий, впрочем лучше дефолтного из Агисофта
> почему в юнети выглядит замыленно - так подмешивается отражение от нормален впринципи ты прав, но вот всё это хуйня. вообще хуйня. тебе нужна настоящая карта нормалей, снятая с первой модельки, той, которая на 10млн полигонов. с ней ты вообще не отличишь те 20к поли от оригинала
>>393988 ты уже начал делать какой то сложнейший проект для которого тебе жизненно необходима та невнятная эмульсия которую ты ищешь? с трудом вериться что твой проект сложнее оригами. Это в идеале, а в реале ты даже не начал по твоим словам
Я обрыл весь интерент на эту тему. ВЕСЬ. Четкого ответа нигде нет. Есть только смутное решение проблемы методом шаманства от такого же новичка.
Проблема: Есть 8 анимаций направления стояния и направления бега, но без рук. Руки должны анимироваться отдельно. Казалось бы, сделай два аниматора, один на игроке, другой в чайлде. Но нет, стоит подвигаться, как анимация перестает быть синхронной. Окей, тогда гуглим решение, все советуют использовать animation layers. Делаем всё как сказано, но опять, хуй там плавал. Теперь в зависимости от веса слоя на экране либо тело без рук, либо летающие руки. На пикрелейтеде у меня два идентичных синхронизированных слоя. Состояния Idle и Run содержат в себе Blend Trees. Что делать, в какую сторону копать, в какие бубны бить?
>>393998 Не совсем понял чего ты хочешь. > Руки должны анимироваться отдельно То есть у тебя есть базовые анимации, но они не юзают руки, потому что движение рук у тебя в другой анимации и ты хочешь их смешать?
>>393998 Вот тебе и юнити с его русской документацией, лёгким обучением, многими тут хвалящими и т.д. А сами нифига не могут подсказать, видимо на столько умные ребята. Я сам не пользуюсь Юнити, в анриле это выглядит вот так
>>394004 >Я сам не пользуюсь Юнити И нафиг ты вылез со своего петушиного угла для блюпринт-программистов? Кому какое дело как это делается в уече, фростбайте, сурсе? У вас там реферальная программа какая-то, ассет за каждого привлеченного в секту?
>>394021 > Так что возможно ты не сделал всё правильн Я как раз таки всё сделал правильно, ибо мой проект работает, а это >>393998 писал вообще не я, я просто иногда удивляюсь людям, которые не могут даже пару предложений прочитать.
>>394023 Ну >>394010 тоже не я писал. Но по мне это ХУ проблема. Ему стоит поискать причины в реализации его проекта, а не искать альтернативные методы.
Возник вопрос по ландшафту. Как увеличить его чёткость ? Просто если задать размер всего лишь 5000х5000 То видна угловатость ландшафта. Как сделать более детальным ландшафт ?
>>394000 Я специально разделил руки и туловище, чтобы руками можно было анимировать атаку, например. И не прерывать при этом бег, и не использовать кучу спрайтов. >>394006 Насколько я понял пока гуглил, аватар маск это скорее для 3D c гуманойдами, либо для других конструкций с позвонками. Для обычных спрайтов я не нашел как это применить. >>394021 Т.е. ты просто добавил второй слой, синхронизировал, поставил ему Additive, добавил анимации и вес, и всё заработало? У тебя Blend Trees были внутри? >>394028 Так я и не ищу альтернативные. Просто в интернете на эту тему вообще нет материалов.
>>394121 >добавил второй слой И третий для анимаций удара >поставил ему Additive Override. У обеих вес 1. Анимация верха и низа вообще не пересекаются между собой. >У тебя Blend Trees были внутри? В одном из слоёв есть.
>>394312 У меня в стандартных ассетах хуй да нихуя. Сейчас я тупо юзаю выдранные из линейки ассеты, ибо знаю где там что лежит. Но если для текстурок и моделек все збс, то батч-конвертера для анимаций я не нашел, писать его влом - приходится тратить время на ручную поштучную конвертацию.
>>394318 Мне не нужно 5к анимаций, мне нужно 100 визуально различимых юнитов на любые роли, у которых есть по 5 основных анимаций - чтобы при просмотре было сразу понятно, что вон то - дракон летит, вон то - труп лежит, а вон то - лошадь едет, а не наоборот. Линейка просто потому, что там все есть с запасом, и я знаю где что лежит - если есть какая-то другая игра, где можно батч-рипнуть - то тоже пойдет.
Хочу рисовать модельки, при этом модельки должны рулиться ползунками прямо внутри игры, из скриптов. Для примера. Есть модель ракетного двигателя, есть три ползунка, диаметр + длина сопла и давление окружающей среды. Двигаю первый и второй, меняется непосредственно сама модель, и меняется радиус эффекта реактивной струи. Двигаю второй, меняется внешний вид реактивной струи. Набросайте примерный пайплайн, как такое можно сделать, я полный 0 в создании моделек для юнити. Блендер уже скачал, скилл рисования проиллюстрирован пикрелейтедом.
>>394332 Я ещё и не таких видел. Один у меня спрашивал можно ли передвигать персонажа без скриптов, потому что "а то я в скриптах немного лох". Предложил ему воспользоваться готовым, на что получил городе "но я ж сам хочу". Хуй пойми этих мамкиных игроделов, делать хотят, а учиться не хотят.
>>394321 стало интересно, набросал заготовку для сетапа меша для факела реактивной струи. http://image.prntscr.com/image/1eefd6b6fdbd4fb99136aad3b9fe8c66.png Я так полагаю, дальше делается меш-основа эффекта, прискиннивается, анимируется в крайних состояниях системы. В юнити на меш навешивается материал с шейдером пламени, управлять формой можно переменные в аниматоре. Делать я это конечно же не буду. Неплохой спецэффект наверное был бы.
>>394338 Бротиш, я конечно все понимаю, ты опытный и умный, но перечитай мой вопрос. Мне нужен краткий гайд, куда погуглить, чтобы из нихуя и блендера сделать себе красивую кастомизируемую модельку в игре. В игре. На Юнити.
>>394341 А ты посмотри видео, там как раз про это. В редакторе задаются ключи, юнити эти ключи видит и через float-переменную ты изменяешь value этих ключей и меняешь модель уже в юнити. Что за мода пошла даже видео не досмотреть и говорить что это не то?
Анчоусы, кто работал с FSM'ами? Их есть невероятное количество, все платные, но тем-не-менее полезные. Уже и заплутался который лучше подойдет, может посоветуете.
На данный момент известно про FlowCanvas, Makinom, PlayMaker, Node Canvas, ICode, plyBlox, и GameFlow. Можно еще сверху добавить визуальный скриптинг типа Uscript, который можно втулить в пару с фсмом. Цель - небольшой 2д проект. без физики, куча переменных, економика и диалоги.
Как сделать dropdown.SetValue("Your Mom")? Как выставить значение по индексу нашел, как узнать текстовое значение из выбранного пункта нашел, а как выставить значение по тексту - хз.
Прошлый тред: https://2ch.hk/gd/res/311710.html
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Вам не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Тем не менее, многие крупные корпорации выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики как в Crysis рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
Обучение
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
Для изучения основ UnityScript выучите вначале основы JavaScript:
https://learn.javascript.ru/
Помните, что далеко не всё, представленное в JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочтите эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помните, что вам достаточно одного языка из двух и учить их оба одновременно не нужно.
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Для начала посмотри на туториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol