Хочу засунуть в инвентори ортостатическую камеру внешнего вида персонажа. Т.е . камера всегда смотрит на персонажа спереди и рендерит в текстуру, которая отображается в инвентори. Всё окружение персонажа (ландшафт, предметы, скайбокс и т п) соответственно должно куллиться, для этого все персонажи суются в отдельный layer, и камера рендерит только его. И с этим не было бы проблем, если бы инвентори можно было открыть только у одного персонажа - проблема возникает, когда 2 персонажа стоят рядом: камера в инвентори рендерит их обоих. Быстрым гуглингом не нашел ответа, как сделать так, чтобы камера рендерила только одного персонажа. Совать каждого персонажа в отдельный слой - слоев не напасешься, может быть на форуме кто то знает решение?
Ортостатическую=ортографическую?
+ в таких случаях лучше уточнять используемые инструменты)
Для общего случая я бы предположил, что каждому персонажу присвоена своя модель. Почему бы не попытаться извлечь ее через экземпляр персонажа?
Речь о каком движке?
Llevellyn
в Godot есть visualLayer уровни где отмечаешь галочкой
тоесть в Godot достаточно отметить первого персонажа и все вокруг в Layer 1 и 2
и отметить второго персонажа только в Layer 1
и рендерить по камерам, главная камера рендерит Layer 1 где видно все
камера инвентаря Layer2 где не видно второго персонажа
Если движок позволяет, то попробуй сделать отдельную сцену для отображения персонажа в инвентори.
Llevellyn
> проблема возникает, когда 2 персонажа стоят рядом: камера в инвентори рендерит
> их обоих.
А если у вас персонаж драться в этот момент будет? Или под углом в 45 градусов к земле стоять? Всё это будете рендерить? Или ещё отдельный анимационный слой? И тени от других объектов куда-то пропадут сразу?
У вас каша какая-то в голове. Никто за вас вам её не расхлебает.
NyakNyakProduction
> дилемма Бойля-Мориа
ЧО?
Kaylent
> Ортостатическую=ортографическую?
> + в таких случаях лучше уточнять используемые инструменты)
да, имелась в виду ортографическая камера в юнити
Dimich, т е нарисовать где то за пределами игровой карты дубликат мешей персонажей и смотреть камерой в инвентори на них? Предвижу тут проблему с тенями - они будут не такие, как на оригинале персонажа
@!!ex
>Речь о каком движке?
юнити
NyakNyakProduction
> А если у вас персонаж драться в этот момент будет? Или под углом в 45 градусов
> к земле стоять? Всё это будете рендерить?
да, в чем проблема то?
NyakNyakProduction
> И тени от других объектов куда-то пропадут сразу?
не пропадут
Llevellyn
> т е нарисовать где то за пределами игровой карты дубликат мешей персонажей и
> смотреть камерой в инвентори на них? Предвижу тут проблему с тенями - они будут
> не такие, как на оригинале персонажа
Какие тени тебе нужны? Самозатенение? Там же есть параметры теней и light probes в функции.
Dimich, попробовал ваш вариант, но непонятно откуда брать меш для функции DrawMesh. У SkinnedMeshRenderer'а есть только sharedMesh, а мне нужен актуальный на данный момент (т е подверженный анимации).
В общем нашел я обходной путь - при старте сцены все персонажи находятся в дефолтном слое, а при выборе персонажа кидаю скриптом все его шмотки в отдельный слой (камера в инвентори рендерит только его), при выборе другого персонажа шмотки первого кидаются обратно в дефолтный слой и т. д.
Кто-нибудь в курсе, смена слоев у объектов по скрипту это ресурсозатратно или нет (предполагается что шмоток будет довольно много)?
Лучше сразу абстрагировать кастомизацию от остального функционала касательно персонажей, типа контроллера или аниматора. За пределами карты (а лучше в отдельном слое со своим освещением) рендерить в текстуру инстанс персонажа, на котором висят только лишь скрипты отвечающие за кастомизацию.
что такое инвентори?
V0odo0, мне кажется что будет лучше, если показывать в инвентори, что персонаж делает в данный момент. Хотя может я и не прав
Тема в архиве.