언리얼 새로운 프로젝트를 만들자
탑다운
BP_Topdown character를 카피해서 BP_Enemy를 만든다
플레이어를 추적할수 있게 AI Move를 넣는다.
Topdown 템플릿은 이미 NavMeshBound가 들어있고 좌클릭으로 플레이어를 움직일수 있다.
블루프린트를 열어보면 아무것도 없는데 BP_ToDownController의 컨트롤러를 사용한다.
적의 생성은 spawn 지우는건 destroy
BP_topdowncharacter에 arrow와 cube를 추가하고 돌아가게 해보자
타임라인을 만들고 오토플레이 루프를 체크하면 플레이하면 자동으로 돌아간다.
플레이어가 움직이면 렐러티브 로테이션도 영향을 받는다
따라서 레러티브가 아닌 월드로 돌려야한다.
cube에 적이 부딪치면 없어지게 해보자
BP_main을 만들어 적을 스폰시켜주자
Spawn할때 절대위치로 생성되기때문에리퍼런스가 필요하고 BP_mainm을 레벨에 놔야한다.
플레이하면 멈춰있다. BP_enemy pawn카테고리에서 Auto Possess AI를 Place in world or spawned로 해준다.
간단하게 랜덤으로 생성할수도 있다. 이건 문제가 가까이서도 발생되는걸 막을수 없다.
일정 거리보다 가깝게 생성되는걸 막기위해 조건문을 넣고 다시 실행 시켰다. 이때 발생된 거리와 거리를 측정시 GetRandom노드가 2번 실행되므로 이를 막기위해 SET으로 값을 고정시킨후 처리하였다.
적을 동그랗게 둘러쌓게 만들기 위해 sin cos을 사용해도 된다.
bp_circle을 하나 만들고 컨스트럭션 스크립트에 sin cos을 이용한 노드를 만들어 원형에 배치하는 로직을 만든다
sin cos는 디그리와 라디안을 선택할수 있다.
For Loop Last Index가 10이라면 디그리는 36을 곱해주면 한바퀴를 돌면서 배치되고 라디안이라면 2pi/10= 0.628 이 된다.
wg_gameend 위젯을 만들자
Text의 알파값을 애니메이션 시켜보자 2초에서 알파값을 0이 되지만 4초까지 유지시켜 animation end값을 4초로 만든다.
적이 플레이어에 도달하면 Success가 실행되고 게임엔드 위젯을 실행해주자
게임엔드 위젯을 플레이 하고 바로 Quit Game하면 애니메이션이 멈추므로 Delay를 시켜준다 그런데 Dealy중 AI적들이 계속 부딪쳐 애니메이션이 계속 실행되므로 충돌을 꺼주던지 Game Pause를 시켜주던지 해야할듯 하다.
BP_Weapon
하이라키컬InstancedStaticMesh를 컴포넌트로추가하고 메시를 표창으로 지정
Construction Structure의 인스턴스를 3개 더만들자 각도를 120도씩 주자
이렇게 인스턴스를 3개 복사하면 이벤트 그래프에서 로테이션을 실행하면 3개가 동시에 실행된다.
TimeLine
Event Graph
표창의 개수애 따라 각도를 자동으로 계산해보자
BP_weapon에서 Last Index에서 자동계산하기 위해 First Index를 1로 해준다.
블렌더 백팩만들기
Ctrl_r로 자르기
Ctrl-2 (2,3,4는 레벨)
옆으로 Ctrl-R을 줘서 아래부분은 평평하게 만들꺼고 위쪽 사이즈만 약간 작게
Ctrl=B을 줘서 경계를 만들면 좀더 네모나게 된다.
옆으로 베벨을 준다
가운데 베벨을 준다
옆면을 선택하고 카피하고 놓은후 사이즈로 줄인후 Extrude
L을 눌러 선택한후 SHT-H로 다른것 감춘후 왼쪽위쪽 라인 제거
민크리스를 조정해서 뒤쪽을 펴주고 앞쪽 에지를 선택한후 베벨을 줘서 네머나게 만든다.
'DXWave' 카테고리의 다른 글
240920 TopDown 게임만들기 표창 (7) | 2024.09.20 |
---|---|
240920 사람만들기 (0) | 2024.09.20 |
240919 elevator (0) | 2024.09.19 |
240913 나제일 언리얼 블렌더 import material 설정 (0) | 2024.09.13 |
240919 예습질문 (0) | 2024.09.13 |