Unrela - 시퀀스 만들기 (AI편)

2025. 5. 22. 16:35·Unreal5 프로젝트 다이어리

3번째 던전에서 일정이상 AI를 잡게되면 카운팅을 누적해서 마지막 강한 몬스터가 나오기전에

벽이 부숴지는 연출이 나오고 그 안에서 AI가 걸어나오는 연출을 해보도록 하겠습니다

 

우선 벽이 쉽게 부숴지지않게 Damage Threshold(데미지한계치) 를 올려놓은 상태입니다

 

기본으로 벽의 콜리전 세팅을 해줍니다

 

Pawn과 WorldDynamic에 블록 판정을 하여 플레이어가 벽이 부숴지기전에 지나갈수 없도록 합니다

 

사용할 벽 블루프린트를 만듭니다

 

사용할 마스터필드 블루프린트를 만듭니다

 

Chaos Distruction으로 만든 벽 블루프린트를 설치하고 앵커필드를 설치해줍니다

 

설치한 벽면에 앵커필드를 할당해줍니다

 

 

마스터필드액터를 스폰하는 함수입니다

AdjustIfPossibleButAlwaysSpawn으로 스폰할려고하는 위치에 콜리전이 있어도 강제로 스폰합니다

void ASwordPlayerGameBase::SpawnMasterField()
{
	FVector masterFieldSpawnLoc(1540.0f, 630.0f, 160.0f);
	FRotator masterFieldSpawnRot = FRotator::ZeroRotator;
	FActorSpawnParameters mfSpawnParams;
	mfSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;

	UWorld* dungeonWorld = GetWorld();
	AActor* SpawnedMasterField = dungeonWorld->SpawnActor<AActor>(masterFieldActor, masterFieldSpawnLoc, masterFieldSpawnRot, mfSpawnParams);
}

 

시퀀스를 실행시키며 시퀀스동안 UI를 숨기며 인풋을 제한하는 함수입니다

void ASwordPlayerGameBase::PlayWallSequence()
{
	if (player->characterWidget)
	{
		player->characterWidget->SetVisibility(ESlateVisibility::Collapsed);
	}
	FMovieSceneSequencePlaybackSettings playSetting;
	ALevelSequenceActor* sequenceActor = nullptr;
	playSetting.bAutoPlay = false;
	ULevelSequencePlayer* swordSequenseWall = ULevelSequencePlayer::CreateLevelSequencePlayer(GetWorld(), wallBrokeSequence, playSetting, sequenceActor);
	swordSequenseWall->Play();
	//can move player call delegate
	swordSequenseWall->OnFinished.AddDynamic(this, &ASwordPlayerGameBase::wallSequenceFinish);

	//stopPlayer
	if (InputComponent && InputComponent->IsActive())
	{
		InputComponent->Deactivate();
	}
}

 

웨이브스폰에 해당 함수를 추가하였습니다

else if (newCount == 36)
{
	SpawnMasterField();
	PlayWallSequence();
	currentTemplates = { strongSkeleton1, strongSkeleton2, strongSkeleton3 };
	SpawnLastWave(currentTemplates, 10);
}

 

 

 

본격적으로 시퀀서를 만들어보겠습니다

시네카메라를 설치후 문을 트래킹하게 세팅하였습니다

 

문에서 서서히 바깥으로 멀어지다가 옆을 보게 시퀀스를 제작해줬습니다

 

 

AI의 BehaviorTree를 설정하여 스폰한뒤 정해둔 위치로 이동하게 만들었습니다

2025.05.22 - [Unreal 팁] - BehaviorTree 단순 좌표 이동

 

 

최종결과물

일정 이상 마리수를 잡게되면 AI가 벽을 뚫고 나오는 컷씬이 실행됩니다

 

 

 

 

 

 

 

 

'Unreal5 프로젝트 다이어리' 카테고리의 다른 글

Unreal - 던전진행도 위젯 만들기 (스칼라 파라미터 조절하기)  (0) 2025.05.23
Unreal - 자동 흡수되는 확률형 드롭 아이템 만들기  (0) 2025.05.22
Unreal - 부숴지는 벽 만들기 (Chaos Distruction)  (0) 2025.05.22
Unrela - 시퀀스 만들기 (캐릭터편)  (0) 2025.05.21
Unreal - 레벨이동시 게임저장, 로드하기 (Save Game)  (1) 2025.05.20
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
  • Unreal - 던전진행도 위젯 만들기 (스칼라 파라미터 조절하기)
  • Unreal - 자동 흡수되는 확률형 드롭 아이템 만들기
  • Unreal - 부숴지는 벽 만들기 (Chaos Distruction)
  • Unrela - 시퀀스 만들기 (캐릭터편)
lucodev
lucodev
커피와 노트북 그리고 개발
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (121) N
      • Unreal5 프로젝트 다이어리 (73)
      • Unreal5 프로젝트 다이어리2 (3) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 다이어리 (21) N
        • Stack (3)
        • Hash (4)
        • Heap (2)
        • Sort (1) N
      • 코드 개인보관함 (8) N
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼 로딩창
    언리얼 behaviortree
    언리얼 look at
    언리얼 컷씬
    언리얼 motionmatching
    언리얼 로딩
    언리얼 시퀀스
    unreal 시퀀스
    unreal loading
    언리얼
    unreal sequence
    언리얼 behavior tree
    언리얼 비헤이비어트리
    unreal 모션매칭
    unreal 컷씬
    언리얼 모션매칭
    언리얼 foot step
    언리얼 페이드 아웃
    unreal 로딩
    unreal look at
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unrela - 시퀀스 만들기 (AI편)
상단으로

티스토리툴바