상세 컨텐츠

본문 제목

만들어둔 기능의 중요성

제작 이야기/제작 기록

by 안말이 2022. 12. 27. 09:00

본문

기능 부분으로 넘어오니 하루만에 소화되지 않는 것이 너무 많다.
다듬거나 추가하려던 것들을 하루만에 소화 못하고 일상으로 돌아가면, 여유 생겨서 다시 작업하려고 봤을 때 절대 기억하지 못한다.


그래서 이번엔 일상을 잠깐 접어두고 몇몇가지를 이틀에 걸쳐 해치웠다.

이건 그중에서 하나로 기능적으로는 돌아가도 그냥 둬선 안 되는 녀석이다.

투명 타겟


저격 기술은 보고 있는 방향에서 8칸까지 공격한다.
그래서 범위 역시 가로막고 있는 것이 없다면 8칸까지 떠야 하는데 종종 그렇지 않은 경우가 있었다.

그 이유가 무엇인고 하니...

특정 이벤트 진행용으로 만들어둔 이 녀석의 범위가 그대로 인식된 탓이다.

최초에 저격 스킬을 만들 때 범위 표시의 기준을 '오브젝트'에 막힐 때까지로 해뒀기 때문에
투명 이벤트도 오브젝트로 인식하고 해당 이벤트가 존재하고 있는 자리를 범위가 통과하지 못하게 된 것이다.

고치는 방법은 간단하다.
인식하고 있는 녀석이 적이 아닌 경우로 예외처리를 해주면 된다.

...하지만 순수 이벤트로 만들어둔 기능이라 쯔꾸르로는 어려운 일이다.


가장 큰 문제점은
예외처리를 위해 해당 오브젝트가 적인지 아닌지 구분할 방법이 필요하다는 것

그나마 다행인 점은 과거의 내가 벽을 처리하는 과정에서 이걸 만들어둔 적이 있다.

적이 아닌 이벤트 만들기 (충돌판정 개선)

※ 제작 기록은 개인 기록 용도로 쓰이기 때문에 반말로 적고 있습니다. (__) 그런데 오늘은 좀 아닐 수도 있습니다. 처음 이 전투방식을 작업할 때는 맵에 존재하는 이벤트는 오로지 적만 있게

ahnmori.tistory.com

고맙다. 2년 전의 나

사진 다시 찍기 귀찮아서 당시 사진을 가져왔다.

이때 만들어둔 스크립트에 투명 이벤트들을 예외 처리 넣었다.

이미 스크립트에 another target과 wall을 아예 구분해뒀기 때문에 이걸 그대로 가져다가 저격의 범위 표시를 세분화하기로 했다.

1. wall일 때는 이벤트를 인식
2. another target일 때는 이벤트를 무시하고 표시


다 만들어놨으니 내가 저격을 만들 때 범위 표시를 어떻게 하도록 해뒀었는지만 확인하면 된다.

위에 얘기했듯이 범위 내에 적 인식이 0인 경우(오브젝트가 존재하지 않는 경우) 범위가 뻗어 나가도록 해뒀는데
해당 부분을 따로 떼어 불러오는 방식으로 해뒀기 때문에 작업이 생각보다 간단해졌다.

객체 지향 만만세

그냥 가장 윗줄의 타겟 정보(116번 오브젝트의 ID)를 판정 변수에 넣어주고

스크립트를 소환해서 판정해준다.

스크립트는 적 인식을 강제로 0으로 만들도록 처리

예외 이벤트인 another target임을 인식했을 땐 오브젝트가 없는 상태와 똑같이 인식해야하므로
스크립트에다가 적 인식을 0으로 만들어주는 내용만 추가해주면 끝난다.

이렇게 하면 another target일 때는 적 인식을 0으로 바꿔줘서 오브젝트가 없는 상태라 범위가 늘어나지만
wall일 때는 실제 적은 아니어도 적 인식이 0이 아니게 되므로, 범위 표시가 중단 된다.

이제 놓친 부분이 없나, 잘못 기입한 건 없나 테스트만 하면 된다.

여전히 이벤트가 존재하고 있지만 범위 표시가 잘 된다.

벽으로 판정하는 쓰레기통은 범위 표시가 막힌다.


결과적으로 깔끔하게 잘 넣어졌다.
아마 과거에 판정 기능을 만들어두지 않았다면, 그리고 여러 기능으로 재활용할 수 있게 만들어두지 않았다면 분명 며칠을 꼬박 갈아야 했을 거다.

아무리 한 번만 쓸 것 같은 기능이라도 최대한 다양한 상황에 쓰일 수 있게 만들어두는 게 역시 중요하다.
그리고 신년이 되면 일상에 지장이 좀 있더라도 속도를 내볼 생각이다.

이젠 정말 이 짧은 분량의 단편 게임을 보내줄 때가 됐다...

관련글 더보기