Advanced: Тема повышенной сложности или важная.
wmask
> Почему люди сворачивают и идут по газону?
я специально согнал их в одну точку (на траву и обратно), чтобы их побольше пихалось, дабы проверить как они будут обходить друг друга.
в реальной игре они ходят немного более осмысленно.
А сколько всего ботов могут ходить по городу?
Virtex
сейчас в игре ~100 персонажей, из них простых пешеходов около 45. не шибко много, если не пытаться их концентрировать в одно место, но для сравнения в прошлом (текущем доступном) патче пешеходов было вообще 15)
У тебя наверное такой толпой какой-то ИИ рулит в реалтайме? Куда кому идти, когда исчезнуть из поля видимости, заменить другой моделью на новой позиции за углом.
codingmonkey
У каждого чела свой ИИ, своя память, своё восприятие. Каждый NPC видит всех других и игрока, при этом для него нет разницы между игроком и другим пешеходом. Все NPC живут в локации всегда и ничего не забывают. Это было принципиальное решение с самого начала, т.к. мне так интереснее :D
Пешеходы идут от одного края левела к другому, время от времени совершая действия внутри (сходить в магазин, посидеть на скамейке/в кафе, дождаться трамвая и сесть в него, выкинуть мусор в помойку, будет больше). Сейчас, дойдя до края, они разворачиваются и идут в другой край о_0, но в будущем я это заменю на выхождение за пределы досягаемой игроком зоны и скрытие за углом - после чего можно телепортнуть чела на другой край и в общем-то забыть его прошлую память. Но пока чел в локации, я не хочу чтобы он и его возможности взаимодействия с миром куда-то исчезали, хотя оптимизации конечно есть - у дальних челов нету коллизии (слепая интерполяция по посчитаному пути), ИИ обновляется раз в секунду (у ближних раз в 100 мс), естественно визуально они не рендерятся/не анимируются за стенами.
>т.к. мне так интереснее :D
та понятно, я бы наверное так же делал.
У меня не получилось выйти из квартиры чтобы растолкать прохожих на улице, но за то в учебной миссии я нашел немного огнестрельного, после чего попытался спрятать улику, между делом опрашивая очевидцев происшествия )
>хотя оптимизации конечно есть - у дальних челов
а лоды используются на дальних анимациях, статике ?
codingmonkey
> У меня не получилось выйти из квартиры чтобы растолкать прохожих на улице
В текущей версии нет обстакл авойданса из видео, и челов меньше, новую версию выпущу "вот-вот" (уже 3 недели правда как "вот-вот").
Управление и взаимодействие с объектами я в новой версии тоже переделал, т.к. ты не первый кто писал про "не смог понять, как выйти из квартиры", надеюсь в новой версии такой проблемы не будет.
codingmonkey
> после чего попытался спрятать улику, между делом опрашивая очевидцев
> происшествия
ну там по сути не обучение, а просто минипесочница с интерактивными объектами из игры, чтобы поупражняться) у челов там ИИ выкл.
codingmonkey
> а лоды используются на дальних анимациях, статике
пока что нет ибо там в челах и без того до смешного мало полигонов, я потом их заменю на нормальных, там и лоды будут
>т.к. ты не первый кто писал про "не смог понять, как выйти из квартиры"
А я подумал что играть уже разучился )
Да взаимодействие нужно сделать более простым что-ли, если это не повредит задумке конечно.
>без того до смешного мало полигонов
Заметил, я фаренгейт почему-то вспомнил сразу, может быть еще мафию, хотя от неё не фанател особо.
А в игре нужно будет отыгрывать жестко заданную сценарную роль или можно прикидывать плохим/хорошим по мере повествования истории или сюжета нет )? прочел в 0-ом
Еще заметил что игра стартует между двух мониторов рабочего стола наверное это баг ?
codingmonkey
> А в игре нужно будет отыгрывать жестко заданную сценарную роль или можно
> прикидывать плохим/хорошим по мере повествования истории или сюжета нет )?
Сюжет ворк ин прогресс, сейчас я по сути создаю для игры контекст, в котором уже можно будет реализовывать разные квесты с норм сюжетом. В игре есть 2 квеста (и ещё 2 мини-почти-квеста), но они опять же больше как тесты механик, с сюжетом в них не очень. Но я считаю этот момент очень важным, и сюжет конечно же будет.
codingmonkey
> Еще заметил что игра стартует между двух мониторов рабочего стола наверное это
> баг ?
баг юнити значит) у меня один монитор, если бы знал, пофиксил бы каким-нибудь хаком.
Обнаружил что ты делал мини-ресёрч на тему камеры от третьего лица.
И меня это несколько заинтересовало поскольку я тоже имел счастье попытаться ее реализовать (откуда-то скомуниздить и переделать под себя).
Она при этом худо-бедно работает, но не так круто как у тебя )
И я не вполне понял что ты имел ввиду в этом отрывке и для какого случая это рассматривается ?
Я так понял это когда персонаж идет на встречу стене, камера смотрит на него (прямо в лицо) и не должна при этом провалиться за стенку ?
Вот на этой картинке где ГГ должен находиться, в центре сферы ?
codingmonkey
> Она при этом худо-бедно работает, но не так круто как у тебе
Ну всякие "кинематографичные" заморочки я в релизе временно отключил во благо удобства. Плюс, в текущей версии есть баг, из-за которого камера всё ещё (!) умудряется местами пролезать сквозь стены (там тупо рейкаст не с той позиции шёл), я пофиксил это в новой (следующей) версии.
codingmonkey
> И я не вполне понял что ты имел ввиду в этом отрывке и для какого случая это
> рассматривается
Почему-то когда я spherecast (луч с толщиной) у физдвига начинал в такой точке, где изначальная сфера частично пересекается со стеной, он дальше спокойно пролетал сквозь стену. В кач-ве решения, я отодвигаю начало луча в обратном направлении сначала.
codingmonkey
> Вот на этой картинке где ГГ должен находиться, в центре сферы ?
да
>я отодвигаю начало луча в обратном направлении сначала
мм ясно
А таким образом ты получаешь, направление
5. RaycastHit occHit; 6. Vector3 origin = charHead.position; 7. Vector3 occRay = origin - cameraOptPos; 8. float dt = Vector3.Dot(transform.forward, occRay); 9. if (dt < 0) occRay *= -1;
Что-то про систему амортизации(spring system) у тебя как-то мало сказано.
просто "The best references here, in my opinion, are steadicam" и видео )
В общем мне интересно у тебя реально одна камера которая и просчитывается?
Или связка из "жесткой" камеры и "мягкой"(реальной) - которая постоянно "лерпится" к жесткой, с разными скоростными параметрами ?
Делал на глаз, много smoothstep'ов и лерпов, не знаю что конкретно можно отнести к амортизации из этого. Каждый кадр сперва расчитывается типа мягкое движение, потом выравнивается по коллизиям.
Вообще да, сначала я делал 2 отдельных точки камеры и lookAt позиции, первые резко управлялись инпутом, вторые к ним притягивались. Потом я забил на это, ибо не слишком комфортно для игры.
Это вообще очень непросто сделать камеру типа очень плавной и ровной и при этом не сдерживать и не угнетать этим игрока.
Сегодня вновь запускал игру и у меня получилось выйти из квартиры )
Сел на трамвай, дошел до какой-то кофешки. Заказал кофе. Официант не особо торопился, пока все столы не протер - потом только принес чашку )
Я отдал 10 баксов. Это не слишком за кофе?) И потом когда гг встала из-за столика и отошла, официант еще раз хотел получать 10 баксов за кофе ))
Цветов у него не оказалось, за ними походу завтра нужно прийти.
У тебя как-то реализована смена дня и ночи в реал тайме, за какое реальное время проходят одни сутки в игре ?
Далее я прошлялся где-то с чемоданом, меж домов и по набережной. Нашел какого-то охранника клуба. Гг развела его на сумочку и он ушел её искать. Я за ним, он походу дверь не запирает. Там что-то все очень тормозит, вроде не сильно много народу и эффектов. Короче там я как мог убегал от всяких охранников. (И это странно имхо, по идее только он должен был заподозрить что гг пробралась туда без разрешения (и то при визуальном контакте с ним), а там похоже все сразу в курсе были )
И вот это разворот ГГ на реплику "Стой!" он мне кажется не уместным, если я не собираюсь останавливаться пускай они стреляют, ранят или сами останавливают как-то, хватают за
руку, ногу, валят на пол и надевают наручники...
Короче всего один охранник добежал за мной до той кофешки на улице, там я попытался сеть и опять заказать кофе, но он когда гг сидела за стулом прицепил ее наручниками к себе (они кстати как-то странно смотрятся, растягиваются, браслеты вроде так не тянуться, а сам охранник при этом как будто бы себе шнурки завязывал) ) В общем после того как он прицепил гг к себе он стоял и чего-то ждал, в инвентаре я нашел нож и попытался наказать его. Но он убил героиню. Забавно что официант все ходил матерясь вокруг. Охранник походу пораненный стоял пригнувшись неподалеку, пришел полицай и так же как и официант начал матерится )) Потом он вышел на проезжую часть и его сбил кто-то )) Я хотел покрутить камеру посмотреть на все это безобразие, но почему-то камера не шевелилась, я считаю что даже после смерти она должна шевелиться )
И еще вопросец вдогонку ты вот эти анимации сам делал ?
codingmonkey
> официант еще раз хотел получать 10 баксов за кофе
это странно) может быть ты как-нибудь заказал его 2 раза? А много времени прошло между первым и вторым прошением?
codingmonkey
> У тебя как-то реализована смена дня и ночи в реал тайме, за какое реальное
> время проходят одни сутки в игре ?
Я изначально планировал не делать динамическую смену. Планирую смену по сюжету. Т.е. будет версия локации где всегда закат, будет ночь, будет день. Отличаться будут не только визуально, но и кол-вом людей, закрытостью/открытостью заведений. МОЖЕТ БЫТЬ я всё-таки передумаю и сделаю динамическую смену, но тут много проблем, причём в первую очередь не графических даже, надо всем NPC писать цикл жизни не на 2 часа, а на все сутки.
codingmonkey
> И вот это разворот ГГ на реплику "Стой!" он мне кажется не уместным
понял, попробую по-другому сделать
codingmonkey
> они кстати как-то странно смотрятся, растягиваются, браслеты вроде так не
> тянуться
ну это так... временная версия)
codingmonkey
> сам охранник при этом как будто бы себе шнурки завязывал) ) В общем после того
> как он прицепил гг к себе он стоял и чего-то ждал, в инвентаре я нашел нож и
> попытался наказать его. Но он убил героиню. Забавно что официант все ходил
> матерясь вокруг. Охранник походу пораненный стоял пригнувшись неподалеку,
> пришел полицай и так же как и официант начал матерится )) Потом он вышел на
> проезжую часть и его сбил кто-то
мля :D :D
codingmonkey
> И еще вопросец вдогонку ты вот эти анимации сам делал ?
написал конвертер из мафии, в основном оттуда вытащил, ещё несколько из бесплатных источников доработанных и пара самых простых типа толкания/удушения сам.