playXP

서브 메뉴

Page. 1 / 21 [내 메뉴에 추가]
글쓰기
작성자 판밍
작성일 2017-04-08 00:00:47 KST 조회 4,382
제목
투사체의 오프셋 설정에 대한 팁 (지속 효과 생성)

* 주의, 함수의 좌표에 대한 개념이 필요합니다.

* 투사체를 복합적인 형태로 사용하기 위해서는 삼각함수, 원의 방정식, 피타고라스의 정의 등 각종 함수와 연관된 지식이 필요합니다. 

 

 

 

투사체를 활용하거나, 각종 스킬들을 만들때 오프셋의 개념은 꼭 필요합니다.

하지만 정확하게 어떤 지점에 어떻게 사용할지 표기하는걸 하나하나 넣어보면서 하기는 너무 힘든데요

 

그래서 그 개념을 정리해봤습니다.

 


 

기본적인 좌표의 개념은 이렇습니다.

유닛을 중심으로 0,0이며

유닛이 바라보는 방향의 왼쪽은 X값 +, 오른쪽은 X값 -

유닛의 바라보는 방향은 Y값 -, 유닛의 뒷 방향은 Y축 -값 입니다.

 

Z축의 경우 해당 유닛이 있는 언덕을 기준으로 0이면 바닥이며 +이면 공중으로, -면 땅속을 가리키는 좌표가 됩니다.

 

 

또한 지속효과에서 이 오프셋을 설정하면, 해당 오프셋은 "최종 도달 지점"에 해당합니다.

 

투사체를 발사하게 되면 시전자의 위치에서 부터 최종 도달지점까지 투사체가 이동하게 됩니다.

 

예를 들어 (1, 10, 10)의 위치로 투사체를 발사하게 된다면

투사체는 (0,0,0)에서 (시전자의 위치)에서 점점 이동하면서 최종적으로 (1, 10, 10)에 도달하게 됩니다.

 

만약 투사체가 아닌 해당 오프셋 지점에 즉시 효과를 발동하게 한 경우에는

(1, 10, 10)의 오프셋에 즉시 효과가 발동하게 됩니다.

 

 

일단 한번 해보겠습니다.

 

이렇게 X값을 0부터 9까지, Y값을 -1로 고정, Z 값을 1로 해두겠습니다.

이렇게 10발의 투사체가 발사되게 되면

유닛의 정면에서 -1의 지점에 서부터 왼쪽으로 일직선으로 투사체가 배치되게 됩니다.

 


 

이렇게 말이죠

 

이미 이해 하신 분이라면

이건 시전하는 유닛을 (0,0,0)으로 하는 함수 좌표 입니다.

 


 

이런 좌표 체계를 생각하시면 오프셋 설정을 더욱 쉽고 직관적으로 하실 수 있습니다.

 

여기까지 이해하셨다면

오프셋을 이용해서 가시지옥과 같이 정면으로 일직을 하거나 수직이 되는 방향으로 오프셋을 잡을 수 있고

샷건이나 멀티플샷 같은 것을 간단하게 구현 하실 수 있습니다.

 

 

그렇다면 이제 부채꼴 형태의 발사, 원형 형태의 발사 등 좀더 자연스럽고 다체롭게 하려면 어떻게 해야 할까 입니다.

이제부터 삼각함수, 원의 방정식, 피타고라스의 정의 등이 필요한 상황입니다.

 

거창하게 말하긴 했지만 사실 원의 방정식, 피타고라스의 정의 두가지만 알아도 노가다로 할 수 있고

삼각함수를 확실하게 구현 하신다면 더 편리하게 좌표를 선정해서 자연스러운 오프셋을 설정 하실 수 있습니다.

 

먼저 트리플샷을 예시로 들어보겠습니다.


 

이 트리플샷은

유닛을 중심으로 정면으로 1발, 그리고 좌/우로 45도씩 옆으로 벌어진 방향으로 한발씩 해서 총 3발의 투사체를

정면을 향해 발사합니다.

 

가장 단순하게 한다면 (1,-1,1), (0,-1,1), (-1,-1,1) 이렇게 만들어서

트리플 샷 처럼 보이게 만들 수 있습니다. 물론 이건 45도 방향으로 으로 나가긴 하지만 아름다운 부채꼴이 아닌

그냥  투사체 3발이 옆으로 늘어서서 정면으로 날아가는 형태로, 부채꼴과 같은 자연스런 형상을 하지는 못합니다.

 

특히 다수의 투사체를 부채꼴로 발사하거나, 원형으로 발사하게 되는 경우 위와 같은 방식을 사용하게 되면

다수의 투사체로 직선을 만들어 발사하는 것과 동일하게 보여 매우 부자연스러워 보입니다.

 

그러기에 가상의 원을 만들어, 원의 가장자리를 따라 형성되는 오프셋 값을 찾아서 자연스러운 곡선을 찾아내야 합니다.

 

 

가장 간편하게는 이렇게 삼각형을 만들어서 피타고라스의 정의를 이용해서 x,y좌표를 구 할 수 있다. 

(직각이등변삼각형의 경우 면의 길이 비율은 1:1:√2)

 

피타고라스의 정의가 성립하는 정삼각형, 직각이등변삼각형, 직각삼각형 등에 대해서는 이런식으로 쉽게 좌표를 구 할 수 있지만

그게 아닌 경우에는 삼각함수를 이용해서 좌표를 구하거나 (sin, cos, tan)

 

원의 방정식 x2+y2=r2를 이용해 찾을 수 있다.

(x2 = x의 제곱을 의미, r은 가상으로 만든 원의 반지름)

 

 

그러니 부채꼴과 원형과 같은 자연스러운 형태를 포기하고

다들 투박한 직선을 이용한 사각형을 이용합시다.^^

 

 

 

 

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
아이콘 Ashley (2017-04-12 13:28:02 KST)
0↑ ↓0
센스 이미지
+꼭 원이 아니더라도 직선 오프셋 효과가 뒤를 잇는다면 해당 좌표 "방향"으로 대상 효과가 발동하기때문.
판밍 (2017-04-12 16:04:08 KST)
0↑ ↓0
센스 이미지
ㄴ 굳이 원형을 이용 하는건 자연스러움을 위한 것이죠. 직선 좌표를 원하는 사거리보다 멀리 잡게 되면 그렇게 티가 많이 안나는 형태를 구현 할 수도 있습니다. 하지만 몇번을 해봐도 역시나 원이 제일 자연스럽고.

이미 블자가 만둘어둔 원형 으로 투사체를 발사하는 능력들을 보면 전부다 오프셋은 연산을 통해 얻는 원의 좌표를 활용 하고 있습니다.
아이콘 아제라테스 (2017-07-24 08:25:58 KST)
0↑ ↓0
센스 이미지
극형식으로 나타낼 때 단위원의 임의의 좌표는 (cosx, sinx)로 등장하기때문에 여기에 0~pi/2사이의 라디안값을 넣어주면 원하는대로 나오겠네요. 3차원 좌표는 좀 생각해봐야겠습니다.
아이콘 아제라테스 (2017-07-24 08:29:48 KST)
0↑ ↓0
센스 이미지
또 우리가 알고 있는 직관적인 카르테시안 좌표계로 나타나는 점과는 조금 직관이 다르네요. y=-x대칭되어서 헷갈릴 수도 있겠습니다..
판밍 (2017-09-18 11:22:51 KST)
0↑ ↓0
센스 이미지
ㄴ 삼각함수를 이용하면 쉽게 찾을 수 있긴 한데, 수학에서 손 놓은지 오래되서, 알만한 개념으로 설명하니 이렇게 되었네요

프로그래밍처럼 공식만 넣어두면 알아서 해주면 좋겠지만, 루트 값 마져 소수점 4번째 자리까지 좌표 그 자체를 입력 해야하니
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.