네코랜드 기초(2021년)

[기초강좌] 15. 상태(버프, 디버프)

ChaYong 2021. 2. 2. 03:32

안녕하세요. 차용입니다.

 

오늘은 나에게 일정시간 동안 강화 버프를 걸거나

 

적에게 역으로 디버프를 거는 것을

 

알려드리고자 합니다.

 

바로 진행 해보면서 알려드릴게요.

 

기존에 만들던 프로젝트를 열어주세요

 

우선 저처럼 예제를 만들어서

 

이를 수정하는 방식을 선택하셨다면

 

기본적으로 버프가 들어가 있습니다.

 

(혹시 따로 빈 프로젝트를 만드시면서

 

따라오시는 분이라면 그냥 우선 그렇구나~하고 넘어가주시고

 

아래에 있는 스크린샷에 내용과 똑같이 만들어주시면 됩니다^^)

 

테스트 플레이를 하면서

 

버프라는게 어떻게 작용하는지

 

확인해 보도록 할게요.

 

영상에서 보시면

 

제가 명령어를 하나 사용합니다.

 

채팅창에서 스크립트를 실행하는 코드인데요

 

/script unit.AddBuff(1)

 

지금은 모르셔도 좋습니다.

 

다만 의미는

 

'나에게 1번 버프를 걸어라~'

 

라는 것 정도만 아시면 되겠습니다.

 

자세한 건 추후 스크립트 강좌를 진행하면서

 

알려드리도록 할께요^^

 

무튼 이렇게 해서 공격력상승 버프가 걸리니

 

상단에 버프 아이콘이 나타나고

 

공격력이 일정시간 증가함을 볼 수 있었습니다.

 

이제 버프를 만들어보도록 해요. ㅎㅎ

 

버프라는 이름이 네코랜드 스튜디오에선

 

'상태'라고 불립니다.

 

오잉? 상태? 어디서 본 듯한....

 

이라고 생각하신 분이 있으시다면

 

정말 대단하신 거에요 ㅎㅎ

 

우리가 만들지는 않았지만

 

계속 눈에 띄었었거든요 ㅎㅎ

 

바로 보도록 할게요

 

데이터베이스 창을 열어주세요

 

짜잔~ 바로 여기에 있었습니다.

 

다른 탭을 건드리면서 봤었죠? ㅎㅎ

 

이 상태라는게 버프라고 동일하다고 보시면 됩니다.

 

왼쪽 목록에 보시면 1번 공격력 증가 보이시나요?

 

아까 저희가 위에 테스트 플레이에서 사용한 그 버프 입니다.

 

2번에는 지속데미지라고 나와있군요.

 

네, 이건 바로 독데미지와 같이 일정시간 동안

 

데미지를 입히는 디버프류입니다. ㅎㅎ

 

공격력 증가를 눌러보시면 아래와 같이 창이 뜹니다.

 

자세히보시면

 

공격력을 약 20초 동안 10포인트 올려주는 버프

 

라는 설정을 가지고 있네요.

 

우측에 특성란에 뭔가가 적혀있군요.

 

이것도 어디선가 많이 보던....

 

선택 후 마우스 우클릭하여 Edit메뉴를 열어줍니다.

 

이렇게 되있군요.

 

그런데 ㅎㅎ 이것도 어디선가 본적있다는 느낌이 드시죠?

 

그 느낌 맞습니다^^

 

저희가 아이템을 만들 때

 

능력치를 올려주기 위해 건들였던

 

특성의 스텟부분입니다.

 

이런식으로 능력치를 올려주면

 

여기서의 능력치 값은

 

상태가 걸려있는 동안만 변동되고

 

상태가 끝나면 다시 원상능력치로 돌아오는

 

신기한 능력을 가지고 있습니다. ㅎㅎ

 

이 부분들을 건들여주시면

 

기본적인 능력치 향상 버프는 쉽게 만들 수 가 있습니다.

 

그럼 능력치 하락 디버프도 가능한가?

 

라고 의문점이 드신 분도 계실거에요.

 

아주 멋진 발상이십니다.

 

이런식으로 마이너스 값을 입력하면 됩니다.

 

학교 다닐때 수학이 기억나시는 분들은

 

아마 어렵지 않은 개념일거에요

 

a + (-b)

 

와 같은 구조이거든요 ㅎㅎ

 

그런데 당시에 수학포기자였다거나

 

너무 배운지 오래되서 기억이 나지 않는다거나

 

혹은 아직 배우지 않았(?)다거나 하시는 분들에게는

 

저 표현방식을 어려워하시기도 해요.

 

그럼 그냥 이렇게 생각해주세요

 

부호를 안붙이면 버프!

 

마이너스 부호를 붙이면 디버프!

 

ㅎㅎ 이러면 쉽죠? ㅎㅎ

 

위와 같은 형태로 만드시되 조금씩 변형을 해보세요

 

그럼 느낌이 뽝! 올거에요

 

이제 이 상태를 어떻게 걸지에 대한 문제가 생기네요

 

크게 스킬사용에 의함 방식과,

 

아이템 사용에 의한 방식으로 나뉩니다.

 

결론적으로 얘기 드리자면

 

사용법은 쉽습니다. ㅎㅎ

 

우선 스킬탭으로 이동해볼게요.

 

스킬 중 이미 공격력증가 스킬이 있네요

 

들어가보시면

 

위와 같이 나옵니다.

 

다른 건 저희가 스킬만들면서 설정했던 부분이니

 

따로 안건들일게요

 

주의해서 보셔야 할게.

 

우측에 특성란과

 

아래 적힌 스크립트 코드입니다.

 

둘다 버프를 걸게끔 하는 건데요

 

특성부터 보도록 할게요.

 

상태 추가를 선택하여 마우스 우클릭 후 Edit을 눌러줄게요

 

 

그럼 이와 같은 창이 나타납니다.

 

어라? 이거 아이템 만들때, 상태만들때 사용했던 거죠?

 

네 맞습니다.

 

데이터베이스에서 특성이란 부분이 나오면

 

이를 조작해서 능력치 값에

 

변동을 줄 수가 있다라고 보시면 됩니다.

 

(다만 캐릭터 탭의 특성은 능력치 값이 적용이 안됩니다)

 

상태 탭을 눌러보시면 위와 같이 창이 보이실거에요

 

상태 추가도 되고

 

신기한 건 확률적용이랑 상태 제거도 가능하네요 ㅎㅎ

 

때에 따라서 확률적으로 버프, 디버프를 걸리게하거나

 

유익한 버프를 제거하는 기능도 만들 수 있다는

 

말이 되겠군요 ㅎㅎ

 

여기서는 상태추가로 1번 상태였던 공격력 추가를

 

걸어놓게 했네요 ㅎㅎ

 

이런 식으로 상태를 걸게 할 수도 있구요

 

아까 스킬창에 보셨던

 

b.AddBuff(1,a)

 

이 스크립트 방식으로도 가능합니다.

 

공식창에서 a는 시전자, b는 대상자라고 보시면됩니다.

 

따라서 b에게 1번 상태를 추가하되 시전자는 a로 설정해라

 

라는 스크립트 코드가 되겠습니다^^

 

아이템에서도 상태를 추가하는 방식은 위와

 

완전히 동일합니다^^

 

이제 디버프에 대해서 알아보도록 할게요

 

위 설명을 다 보셨다면 지속데미지도 금방 구현이 됩니다.

 

데이터베이스에서 상태탭으로 다시 돌아가 볼게요

 

왼쪽 목록에서 지속데미지를 클릭해보시면

 

이렇게 뜨죠?

 

여기서 이름, 설명, 지속시간은 설명드렸고....

 

아래 지속상태에 대한 설명을 드릴게요

 

이것도 데미지 공식 적는 것과 마찬가지로

 

스크립트 코드를 적어서 실행 할 수 있는 부분입니다.

 

여기서 종류는 HP데미지, 데미지는 30으로 설정했구요

 

옆에 시간이라고 적힌 것이 또있네요?

 

위에 지속시간하고 무슨 차이일까요?

 

즉 위에 지속시간은 전체 지속시간이구요

 

아래 시간은 데미지를 입히는 반복주기(공식적용주기)입니다.

 

이 또한 스킬탭에 가면

 

연동된 스킬이 있습니다.

 

바로 이 스킬인데요

 

여기서 주의해서 보셔야 할 것은

 

특성란에는 없고

 

공식란에만 뭐가 적혀있다는 것입니다.

 

특성란에서의 상태추가는 스킬을 사용한 자기 자신만

 

상태가 추가되는 개념이어서

 

적에게 상태를 입힐 수가 없습니다.

 

엥? 기껏 만들어 놓은 지속데미지가 쓸모 없다구요?

 

ㅎㅎ 다행이 스크립트 코드를 적으면 해결됩니다.

 

위에서 설명드렸던

 

b.AddBuff(2,a)

 

이걸 사용하시면 됩니다.

 

그럼 b에세 2번 상태를 맥이는데(?) a가 시전한 것이다.

 

라는 의미이죠

 

2번 상태가 지속데미지 였었죠?

 

이 스킬을 사용하게 되면

 

적에게 지속데미지를 주게 됩니다.

 

음. 한번 테스트 플레이에서 아예 봐볼가요?

 

그전에 스킬을 자동으로 습득시켜볼게요

 

저희가 자동시작 이벤트로 만들었던

 

최초직업변경 이벤트에

 

스킬 배우기 이벤트로 스킬을 2개 배우도록 하겠습니다.

 

이렇게 뜨면 됩니다.

 

자 테스트 플레이를 해보도록 할게요

 

촛불모양의 공격력증가 스킬사용시

 

버프가 제대로 걸렸구요

 

톱날 모양의 지속데미지 스킬 사용시

 

적에게 20씩 데미지가 들어감을

 

보실 수가 있었습니다.

 

여기서 확인 할 수 있는게

 

바로 여기에도 방어력 공식이 적용이 된다는 것이죠?ㅎㅎ

 

즉 지속데미지 공식란에 적힌 데미지 30에

 

적의 방어력인 10을 빼서

 

실제 데미지는 20이 들어갔습니다.

 

그런데 자세히 보시면

 

첫타가 0이 들어가죠?

 

이유는 처음에 애니메이션이 충돌시 들어가는 데미지가

 

없고 단지 상태만 추가하게 만들었기 때문입니다.

 

따라서 이렇게 공식을 수정해주시면 해결됩니다.

 

30, b.AddBuff(2,a)

 

30의 데미지를 입히고, b에게는 2번 상태를 추가하라. 시전자는 a

 

라는 뜻이 됩니다.

 

기존에 써왔던 방식과 다르게 쉼표를 사용해서

 

데미지를 입힘과 동시에 상태추가를 동시에 처리했네요

 

이런식으로도 가능합니다^^

 

이후에 다시 테스트 플레이 해보시면

 

최초 타격 데미지가 20(30-10)이 박히는 모습이

 

보이실거에요

 

 

처음 데미지 20이 달고

 

지속데미지 20이 달면서

 

반격좀비1가 죽는 모습이 나옵니다.

 


음.. 이번엔 아예 처음부터

 

방어력 50%를 하락시키는 디버프를

 

만드는 과정을 보여드릴게요.

 

우선 리소스가 필요합니다^^

 

우리의 구세주, 구원자! 윤밤느님의 홈페이지로 달려갑시다 ㅎㅎ

 

(yunbam.tistory.com/)

 

그랬더니 딱!

 

이햐~ 날 좀써주쇼~라는 듯이 멋진게 하나 올라와 있네요

 

다운다운 ㄱㄱ 감사합니다 윤밤님 ㅎㅎ

 

아이콘은 이거 그냥 축소한 이미지 만들어서 쓰도록 하죠 ㅎㅎ

 

<아이콘이미지>

적이 방어력 하락에 걸리면

 

이런 애니메이션을 달고

 

돌아다니도록 할게요 ㅎㅎ

 

음.. 일단 상태부터 만들어볼가요?

 

4번으로 만들었습니다.

 

이름 넣고 아이콘을 넣었구요

(방식은 아시죠?^^)

 

설명을 넣고

 

지속시간을 넣었습니다.

 

이제 방어력 하락을 넣어볼게요

 

우측에 특성 아래 공란을 더블클릭해주세요

 

이렇게 넣어줄게요

 

변동 스텟은 Defense로, 값은 -50%입니다. ㅎㅎ

 

이런 상태가 됬네요

 

이제 몬스터에게 이미지를 달고 돌아다니도록 해볼게요.

 

애니메이션탭으로 가줍니다.

 

애니메이션 이름을 정해주고

 

그래픽 None버튼을 눌러줍니다.

 

가져오기 버튼을 눌러 윤밤님의 제작하신

 

애니메이션을 가져옵니다.

 

설정을 눌러주세요

 

수동을 누르시고 액션삭제버튼을 눌러

 

기존에 있던 것들은 싹 지워주세요

 

액션 추가하시고 이름을 화룡의 포효로 지어줍니다.

 

미리보기로 들어가셔서 그리드를 짤라줍니다.

 

이 애니메이션은 가로 5칸, 세로 1칸으로 나누니

 

딱 맞게 나눠지네요^^

 

그리고 하나씩 이미지를 눌러 위 플레임에 추가하시면~!!

 

요렇게 됩니다.^^

 

이제 확인버튼 누르시고

 

선택버튼을 눌러주세요

 

 

커맨드 추가를 누르시고

 

수명은 30초

 

시작크기는 가로:0.08, 세로:0.08

 

액션이름은 화룡의포효

 

유닛따라가기 True

 

종료크기 가로:0.08, 세로:0.08

 

이렇게 맞춰줄게요.

 

그리고 다시 상태탭으로 가셔서

 

애니메이션을 넣어줍니다^^

 

자 이제 스킬만 만들어주면 되겠네요

 

스킬탭으로 넘어갈게요

 

이름을 넣고 아이콘을 넣은 후 설명을 넣었구요

 

쿨타임은 15초, 소모mp는 10을 넣었습니다.

 

아래 공식란에는

 

상대방에게 버프를 거는 코드를 적었습니다.

 

b.AddBuff(4, a)

 

어? 근데 특이하게 종류를 HP회복으로 했죠?

 

원래는 hp회복을 하는 용도지만

 

ㅎㅎ 이렇게 하시면 따로 데미지를 안주고

 

디버프만 걸리게도 할 수 있습니다.

 

자 스킬을 상대방에게 맞추려면

 

여기에도 애니메이션이 붙어야겠죠?

 

이름, 그래픽 설정해주셔도 되는데요

 

메모리 등의 측면을 고려하자면

 

무애니메이션(즉 하나의 프레임만 있는 것.)을 만들어

 

사용하셔도 좋습니다.

 

저는 일단 기존에꺼 그대로 쓸게요^^

 

커맨드 추가를 해주세요

 

그리고 이번엔 충돌영역표시를 체크하겠습니다.

 

그리고 속성에서 애니메이션은 안보여도 되니 

 

시작투명도와 끝투명도를 1로 잡아줄게요.

 

액션이름은 화룡의포효를 선택해줄거구요

 

최대충돌 횟수는

 

여기에 최대 몇명까지 닿을 것인지(범위공격?)에

 

대한 설정입니다. 한 5명 정도 해줄게요 ㅎㅎ

 

아래 충돌영역 크기를 32로 잡아줄게요

 

눌러보니 중요한 설명이 나왔네요

 

추후 최적화를 고려하신다면 이런 점도 알아두시길 바래요^^

(물리연산에서는 body체 개수가 적을수록 비용이 덜 듭니다^^)

 

포효범위를 이정도만 잡을게요

 

자 스킬탭으로 돌아와서 애니메이션 연동해줘야겠죠?

 

다됬습니다.

 

이제 스킬을 배워보도록 할게요^^

 

이렇게 스킬배우기 이벤트를 넣었습니다.

 

(아, 전 기존에 공격력증가나 지속데미지 스킬 이미지가

 

마음에 안들어서 그냥 삭제했어요 ㅎㅎ

 

제가 추구하는 스타일이랑 달라서.... )

 

테스트 플레이를 할게요.

 

아 그전에

 

플레이시 자꾸 죽는 것 때문에 힘드시다면

 

팁을 하나 드릴게요

 

/script unit.AddItem(아이템번호)

 

라고 치시면 해당 번호의 아이템이

 

케릭터 인벤토리로 들어옵니다. 착용해주시구요 ㅎ

 

마나량 때문에 힘들다 하시면

 

/exp 경험치량

 

하셔서 광렙을 시키신 다음에 마나량을

 

충분히 늘리시고 진행하셔도 좋습니다^^

 

자 테스트 플레이 들어갑니다^^

 

음.. 일단 디버프가 잘 걸리는 것 같긴 한데

 

문제는 애니메이션 위치가 너무 발바닥이네요 ㅎ

 

시작 오프셋의 위치를

 

y축 방향으로 25만큼 올려줍니다.

 

(애니메이션에 따라 다르니 각자 수치를 변경하시면서

 

조정을 보셔야되요^^)

 

하는 김에 효과음도 넣도록 할게요

 

pgtd.tistory.com/169?category=869332

 

호랑이 울음 소리 효과음 mp3 다운로드

어흥 / 호랑이   어흥 / 울림변조 경고 / 호랑이 먹이 사수 울음소리 / 호랑이 숨고르기 / 호랑이 숨 깊게 쉬고 내 밷기 / 호랑이 호랑이 끼리 싸움 소리 호랑이 울음 소리 호랑이 크로마키 다운

pgtd.tistory.com

이분 홈페이지에서 호랑이 효과음을 받아봤습니다.

 

효과음 넣는 것은 지난 시간에 해봤죠?

 

호랑이소리를 다운받아

 

ogg로 변환작업을 거치고, 리소스 관리자 SE폴더에

 

가져오기 방식을 통해 음악을 가져오면

 

여기서 선택할 수 있었죠?

 

다 됬습니다.

 

바로 테스트 플레이 가보도록 할게요

 

잘 되는 거 같네요 ㅎㅎ

 

아 참고로 키보드 C키 누르시면

 

우측 하단에 단축스킬창이 전환됩니다.

 

즉 총 단축스킬은 8개까지 가능해요^^

 

이햐 오늘 글은 길었네요 ㅜㅜ

 

영상으로 하나 글로 하나 길어지긴 매한 가지...

 

이건 뭐 변하지 않는 제 스타일인가봐요 ㅎㅎ

 

뭔가 하나라도 더 전해주려하다보니

 

말이 자꾸 길어지는 점 죄송합니다.ㅠ

 

최대한 줄여보려고 노력해볼게요 ㅜㅜ

 

오늘 게시글도 따라오시느라 정말 고생많으셨습니다.

 

다음번에도 좋은 게시글로 찾아뵐게요^^

 

그럼 좋은 하루되세요~^^