Войти
Unreal EngineФорумОбщее

Разные мелкие вопросы (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
8:42, 10 янв. 2021

зашибись тени в ue, ровные!
Изображение


#46
10:39, 11 янв. 2021

Слушайте, а каким образом можно переключая APaw на другой, за одно переключить и HUD на него же?

У меня HUD берет текущего перса на BeginPlay()

void AMyHUD::BeginPlay()
{
  Super::BeginPlay();

  tank = Cast<AActorTank>(UGameplayStatics::GetPlayerPawn(this, 0));
}
и если я переключусь на другого перса то HUD остается завязан на предыдущий инстанс перса
  APlayerController* controller = UGameplayStatics::GetPlayerController(GetWorld(), 0);
  if (!controller) return;

  if (controller->WasInputKeyJustPressed(EKeys::One))
  {
    if (!SwitchToCharacter) return;

    controller->UnPossess();
    controller->Possess(SwitchToCharacter);
  }

пока вижу два варианта.
1. брать каждый AHUD::DrawHUD() текщий APaw()

void AMyHUD::DrawHUD() 
{
  Super::DrawHUD();

  tank = Cast<AActorTank>(UGameplayStatics::GetPlayerPawn(this, 0));
...
2. либо же, добавляем к персу GetHUD()
AHUD * AActorTank::GetHUD()
{
  //we only want locally controlled and controlled by player, not AI
  if (!IsLocallyControlled() || !IsPlayerControlled()) 
  {
    return nullptr;
  }

  APlayerController* PC = Cast<APlayerController>(GetController());
  if (!PC)
  {
    return nullptr;
  }

  return PC->GetHUD();
}
и обновляем указатель в HUD на нового APaw
  APlayerController* controller = UGameplayStatics::GetPlayerController(GetWorld(), 0);
  if (!controller) return;

  if (controller->WasInputKeyJustPressed(EKeys::One))
  {
    if (!SwitchToCharacter) return;

    controller->UnPossess();
    controller->Possess(SwitchToCharacter);
    
    // update pointer to currently active APaw in MyHUD
    AActorTank* TankCharacter = Cast<AActorTank>(SwitchToCharacter);
    if (TankCharacter)
    {
      AMyHUD* hud = Cast<AMyHUD>(TankCharacter->GetHUD());
      if (hud) 
      {
        hud->UpdateActorPointer(TankCharacter);
      }

    }
  }

Как ваш HUD знает какой сейчас APaw активный и используется игроком?

#47
(Правка: 12:06) 11:51, 12 янв. 2021

а по какой причине из 5-ти расставленных TankAI_NPC (BP on base c++class)
один не двигается, куда бы я его не поместил на уровне ??

+ Показать

#48
(Правка: 14:40) 14:37, 12 янв. 2021

отказался от блюринта, который оборачивал TankAI, только за одним - чтобы ему можно было задать кастомный AIController.
сделал тоже самое в cpp и по удалял блюпринт танки, закинул просто из с++

ATankAI::ATankAI() 
{
  PrimaryActorTick.bCanEverTick = true;

  MovementComponent = CreateDefaultSubobject<UFloatingPawnMovement>(TEXT("Movement"));
  MovementComponent->MaxSpeed = 1000.0f;
  MovementComponent->UpdatedComponent = RootComponent;

  // дефолтные ИИ для танка
  AIControllerClass = AActorTankAIController::StaticClass();
  AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned;
}

void ATankAI::BeginPlay()
{
  Super::BeginPlay();

  // спавним ии для данного инстанса танка в начале игры
  SpawnDefaultController();
}

но проблему с AI это не решило, часть двигается другая же стоит

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

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#49
(Правка: 15:20) 15:10, 12 янв. 2021

Слишком мало информации, чтобы посоветовать что-то конкретное.
Варианты на вскидку:
1) передаваемый вектор равен (0,0,0)
2) точка пути в которую надо достигнуть, не может быть достигнута (там есть проверка и возвращается даже причина почему точка не может быть достигнута)
3) точка находится за пределами NavMesh или не включена в Dynamic (Project Settings -> Navigation Mesh -> Runtime Generation)
4) Ну и самый очевидный AIController не создаётся или в нём не создается BehaviorTree (или в нём нет Billboard). Легче всего отлаживать на 1-2 танках). Там можно выбрать за кем следить. И вообще надо запускать и следить чо они делают и чо не делают смотря на сцену и смотря в BehaviorTree (например в замедленном режиме нажав Ctrl)

Ну и надо не забывать что UE изначально сетевой движок, поэтому там сразу две части в коде: клиентская и серверная. Которая по своему дружит между собой.

Ну и неужели в логе пусто, вот там у тебя есть Message Log, Output Log. Вообще ничего не пишет?

#50
16:29, 12 янв. 2021

Salamandr
спасибо за советы!
ты не поверишь, но все было идеально и код и логи там только тот мусор для отладки который я спамлю из компонентов. даже отладка таска для очереди BT:FindRandomLocation показывала успех когда возвращала рандомную точку на нав меше.

дело было вот в чем:
он изначально брал геометрию танка для nav и под ним строил зеленые области, только треки обходил
нужно было добавить для корпуса Navigation::BoxCollision c оффсетом и/или включить динамик обстаклес
ну и включить в коллизиях там же мешу - vehicle a не blockall
Изображение

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

#51
23:33, 14 янв. 2021

переключился на партиклы, доделал взрыв по туториалу с ютуба

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

походу обилие лайта в партиклах это бич по производительности!
надо держать их минимум и лучше отдельными эмиттерами с низким кол-вом частиц!

а еще редактор кхм... партиклов, какой он ука не удобный в ue, особенно та часть где кривые редактируются, как им люди пользуются?!(

#52
1:47, 15 янв. 2021

pixelperfect_
> а еще редактор кхм... партиклов, какой он ука не удобный в ue, особенно та
> часть где кривые редактируются, как им люди пользуются?!(

Или я что-то путаю, или на видео Cascade. Эпики уже некоторое время продвигают Niagara. Он тоже неудобный, но ничего, привыкнуть можно.

#53
6:25, 15 янв. 2021

pixelperfect_
> а еще редактор кхм... партиклов, какой он ука не удобный в ue
Забей на cascade, переходи на Ниагару. Уже полно по ней туториалов

#54
7:43, 15 янв. 2021

Tony Lynx
> переходи на Ниагару. Уже полно по ней туториалов

и шо там такого ?

#55
8:42, 15 янв. 2021

>переходи на Ниагару
а Cascade деприкатед что-ли уже?
смотрел одно видео про ниагару, где робот сквозь клетку проходит и подумал что Niagara для скинмешей!
ну в общем и для каких-то не стандартных штук.

#56
21:33, 15 янв. 2021

pixelperfect_
> а Cascade деприкатед что-ли уже?
> смотрел одно видео про ниагару, где робот сквозь клетку проходит и подумал что
> Niagara для скинмешей!
> ну в общем и для каких-то не стандартных штук.
Не деприкейтед вроде, но в итоге ниагара его заменит. Сам просто только начал ее изучать, как помне более удобная и легче в освоении. Интерфейс более интуитивный. И насколько знаю в уе5 именно она будет.
Ниагара для всего, эпики ее именно как замену делают для каскейда

innuendo
> и шо там такого ?
Чисто по личным ощушениям лучше каскейда

#57
11:53, 24 янв. 2021

Cоздал TPS темплейт на С++ который.
И все понять не могу, кто и где изменяет значение Speed в этом графе, кто контролирует переменную? какой-то логики на BP, я в теплейте не нашел!
Просмотрел код проекта, вообще нету упоминаний  о Speed, посмотрел инпуты в свойствах проекта там ее тоже нет. 

Изображение

Блин, а где же и кто тогда?

#58
15:32, 24 янв. 2021

Tony Lynx
> > и шо там такого ?
> Чисто по личным ощушениям лучше каскейда

чем?

#59
9:53, 29 янв. 2021

1д бленд спейс, несколько анимаций расположены по порядку idle -> walk -> jog -> mid run -> fast run
почему когда ставишь превью точку между анимациями получается такая фигня?

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Страницы: 1 2 3 4 5 Следующая »
Unreal EngineФорумОбщее