지포군 주인장의 별바다 개발일기

원신 별바다 개발일지 ) 함정장판 만들기 (260510 사망처리 추가)

조회수 66

260510 사망 처리 되지 않는 문제를 수정함.

불장판, 독장판을 만들고 그 위에 올라가면 데미지를 받는 함정장판 만들기

동작 방식은 글로벌 타이머와 캐릭터의 커스텀 변수값을 이용함

-글로벌 타이머가 1초마다 현재 캐릭터의 상태를 확인함

-장판 위에 올라가면 커스텀 변수(fire, poison)을 true로 변경시킴

-글로벌 타이머가 캐릭터의 커스텀 변수가 true일경우에 hp손실을 준다.

-장판 에서 멀어지면 커스텀 변수를 false로 변경시켜서 글로벌 타이머가 hp손실을 멈춘다.

  1. 필요한 오브젝트 프리팹

  • 용암바닥

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786106894_583b77e9-f3eb-454e-9eec-ecd6fe3d4e53.png/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786030871_6827f1b5-6af4-4c0c-8216-44b4fc74bc0a.png/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786074936_d60ed6f4-f12b-4cf4-8777-bdf8b8845750.png

네이티브 충돌 해제하기,

공통 컴포넌트( 이펙트 재생, 충돌 트리거 )추가

노드 그래프 불장판 추가

공통 컴포넌트 상세내용

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786230856_a4983503-e6b3-403d-8bb5-07efa8981717.png/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786268209_3e088ce2-fcd5-428d-9fe8-f8e57ced2922.png

이펙트가 보여주는 영역과 실제 이벤트가 일어나는 충돌 범위는 다르므로 설정값을 바꿔가면서 조절해보자!

노드그래프 불장판 ( 엔티티 노드 그래프 폴더 안에 생성 )

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786433401_338295d7-c9f4-4189-a704-e883066ab1bd.png

간단하게 충돌 영역 안으로 들어오면 진입자의 커스텀변수(fire)를 True, False로 바꿔준다.

  • 독바닥

독바닥은 용암바닥을 복사해서 이펙트랑 노드그래프 부분을 바꿔주면 빠르게 만들 수 있음.

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786597646_593179ab-9b8b-4b8f-83de-a91a9d34a664.png

이펙트를 풀원소로 변경

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786567694_1b1363e0-fc30-4109-ab5f-25dd668704ec.png

노드그래프 독장판( 엔티티 노드 그래프 폴더 안에 생성 )

커스텀 변수 이름을 poison으로 변경

  1. 캐릭터 설정

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786707081_2908e0f2-cfc0-4d7a-9f33-99b01889db30.png

커스텀 변수 추가

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786744680_09d28fc1-58b3-4ea8-bc98-b2c05266f4e1.png

커스텀 변수 메뉴 하단에서 추가를 한 다음 fire, poison 불리언 변수 2개를 생성하기

공통 컴포넌트 추가 버튼을 누르고 글로벌 타이머 추가

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786864129_c46424fa-b8be-48e8-9758-9121fc1b45b5.png

처음에는 글로벌 타이머가 없으니 지정타이머 - 타이머 관리로 들어가서 글로벌 타이머를 추가해준다.

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777786909733_f1f3ab0a-bb5c-4228-873b-9faf1b3a22df.png

신규 타이머 생성 후 이름, 타입, 지속시간을 다음과 같이 설정해주면

3번처럼 글로벌 타이머 목록에서 추가해주기

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777787022105_7ee8276f-cf22-40aa-9126-37fb43246d4a.png

캐릭터 함정 타이머 노드 그래프를 생성해주자.

노드그래프 캐릭터 함정 타이머( 엔티티 노드 그래프 폴더 안에 생성 )

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777787063298_59e209ce-284c-4d1a-9f69-65b15d5b4003.png

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777787124896_fcc1d8a7-cfeb-4a55-95df-28cde4f2ed63.png

글로벌 타이머 트리거 시 더블 브랜치에서 함정데미지계산 타이머가 맞는지 확인하고 다음으로 넘어감.

추가로 글로벌 타이머 시작 노드를 실행해서 함정데미지계산을 루프시킨다.

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777787211460_4f666f42-f987-47fe-971e-36ae15292493.png

타이머 이름이 맞을경우에 내 캐릭터의 커스텀 변수 fire를 가져와서 값이 true(장판 위에 올라간 상태)이면

hp를 감소시킨다.

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1777787274860_1f7f26be-955a-4358-8cc6-0459c2efd27b.png

이번에는 커스텀 변수 poison이 true(장판 위에 올라간 상태)이면 hp를 감소시키는데

fire와 차이를 보이기 위해서 hp손실량을 500으로 만들어줌

궁금한건 댓글로 올려주세요 ^^7

260510 사망 처리 되지 않는 문제를 수정함.

/u/HR2p46sRhRWB3A22YtVD2TNS5Sc2/images/1778417593013_7b689469-0ddb-4762-adfa-c776ba97fa60.png

  1. 현재 캐릭터의 속성을 검색하고 현재 hp값을 가져옴

  2. 더블 브랜치에서 현재 hp값이 함정의 hp손실값 이상일경우에 원래대로 hp손실 노드 실행

  3. 현재 hp값이 함정의 hp손실값 이하일경우에 엔티티 파괴 노드를 실행해서 캐릭터를 사망처리함.