목록언리얼 (116)
초보 코린이의 성장 일지
타겟팅 변경을 할때 외적, 내적식을 대입해서 예외처리를 하는거부터 시작해 보겠다. 사용할 함수 추가 및 변수 추가 1. InRight를 입력값으로 받아서 체크가 되면 오른쪽이고, 체크가 안되면 왼쪽이라고 판단할 것이다. 2. 로컨변수 Map은 STL에 Map을 그대로 사용한 것으로 키, 값을 받아준다. 1. Target가 없으면 움직일 필요가 없으니 확인해준다. 그리고 Target 구역을 다시한번 정해서 판단할 것이다. 2. Profile에 배열로 Target는 굳이 추적할 필요가 없으므로 체크해주기 3. Array Element로 Hit된 결과가 나올 것이므로 Break로 Character형인지 체크해주고, 그 Hit된 객체에 위치를 하나 얻어올 것이다. 4. 이제 방향을 만들어야하므로 Characte..
게임에서 보면 타겟팅이 고정되는 순간 마우스가 움직일 수 있게 되는데 대부분 좌우는 보정치를 둬서 막아두게 된다. 위 아래는 자유롭게 움직일수 있도록 만들어 볼 것이다. 1. 아래까지 작성을 하게된다면, 타겟팅을 했을시 마우스 좌우위아래가 보정이 생겨서 어느 지점에서 움직이기 힘들어진다. 2. 이 지점을 풀어주기위해 핀분활을 통해 Character, Target에서 X, Z축만 가져가고 회전은 Y만 가져가준다. 사용 할 함수, 변수 추가한 상태 1. false 경우 보간을 통해서 타겟팅이 이뤄지도록 만들어준다. 2. 회전이 딱 맞도록 완료되어야 하는 값이 Owner to Target 이며, 거기까지 가야하므로 ture로 연결 3. 위와 동일하게 보정이 들어가므로, Target에 대한 축을 이용하기 위해 ..
Particle 설정에 대해 조금 알아보고 넘어갈 것이다. 6가지 카테고리처럼 나눠져있는게 각 효과를 표현한 것이다. 디자인 영역이지만 프로그래밍에 있어서 간단한것은 수정 할 수도 있어야하기 때문에 어느정도 살펴볼 것이다. 수정을 할때는 각 카테고리 기능들을 off 해주고 수정하는게 바람직한 방법이다. Initlal이 붙은 기능의 뜻은 최초 초기값을 나타낸다. Required 을 눌러서 Emitter이 붙은 기능들을 수정해 볼 필요가있다. Loops = 몇번 반복할지 Duration = 전체 시간 Deleay = 방출하기까지 최초 딜레이 Low = 거기에 곱해질 비율값 1. Warp 같은 이동스킬을 사용할때 파티클을 무한으로 설정해 놓으면 사용이 불가능하다 그래서 반복횟수를 지정해줘야 한다. 2. Loo..
어렵지만 더욱 심화한 작업을 시작해 볼 것이다. 본을 가상으로 만들어서 특정한 부위가 움직였을시 자연스럽게 움직일 수 있도록 만들어 보겠다. 하나 알고 지나가야하는게 있다. 1. spine_01 부위에 반일 Mesh Space Rotation Blend를 끄고 몽타주 애니메이션을 UpperBody로 바꾸고 동작을 취하면 허리가 고정되어 이상하게 동작을 하게 된다. 2. 물론 x, y, z 축 값을 주면 그 수치만큼은 움직일 수 있으나 그렇게 되면 다른 수치에 영향을 주게 될 수도 있다. 3. 결국에는 Pelvis에서 회전을 90 주고 아래에 spine_01에 회전7을 줬다고 가정한다면, 움직일때 허리 부분이 90에 고정된 상태에서 7만큼 움직인다. Mesh 공간이라는건 Skel Mesh 안에서 옵션으로 ..
이론은 이해할 수 있으나 과정 자체가 너무 복잡하고 지금까지 했던 과정들을 넘어서는 어려운 난이도를 자랑한다. 하지만 개발에 있어 꼭 알아야 하는 부분이라 최대한 정리를 해보겠다. 스켈레톤 본들을 보면 위에서 아래로 흐르는 구조로 각 관절이 정리되어있다. 또 한 본들은 각 부위마다 위치, 회전, 크기를 가지고 있고, 각 트랜스폼을 가지고 있다. FK 1.위에서 천천히 내려오면서 각 부위에 도착할때마다 값을 계산하고 아래로 내려오면서 위에 값들을 누적하면서 계속 내려온다 2. 위에서 연산하는만큼 엄청 빠르다. 3. 문제점은 애니메이션 수정이 불가능하다. 4. 가만히 서있다고 생각했을때, 발이 어딘가 올라가 있다고 가정하면 모션에 변화가 생기게된다. 하지만 계산이 이뤄진 상태로 내려오다보니 나중에 차질이 생..
줌을 했을시 자연스러운 동작이 아닌 각진 느낌으로 기능이 이뤄진다. 보간을 통해서 우선 자연스럽게 만들어 보고 조준점을 만들어서 피격까지 구현해 볼 것이다. 보간을 위한 커브를 하나 생성해준다. CurveFloat = 일정시간동안 가게 하고, 한값만 가능하다 CurveLinearColor = 값 4개 동시에 가능 CurveVector = 값 3개 동시에 가능 1. 빈 곳을 아무곳이나 클릭해서 엔터를 누르면 지정을 할 수 있다. 2. 0초부터 기본값인 90으로 지정해준다. 3. 빈 곳을 또 클릭해서 엔터를 누르고 지정을해줄 것이다. 4. 그리고 시간을 0.1초동안 45까지 내려가도록 값을 바꿔준다. 부드러운 원하는 값이 설정된다. 1. 한글로나 영어로 타임라인이라고 치면 설정해놓은 커브를 가져다가 사용할 ..
활동작에 오류들이 몇개 존재한다 우선 위아래 각도에 따른 애니메이션 변화와 활이 위를 보고 쏴도 정면으로 나가는 것 그리고 활을 당기고 나서 다른 무기로 바꿀때 화살이 손에 남아있는것 이런 사소한 오류부터 잡고 기능들을 구현해볼 것이다. 우선 손에 남아있는 화살부터 제거해 볼 것이다 remove item 이라는 함수를 사용하면 간편하게 제거가 가능하지만 기초적인 반복문으로 찾아서 지워주는 방법으로 해볼 것이다. 사용하게될 함수 및 변수를 우선적으로 생성해줬다. 1. 우선 전에 End_Equip에서 Set Collision Enabled를 No Collision으로 만들어줬다. 2. 그래서 Unequip에서는 다시 Query로 돌려줘야한다. 3. 그리고 Attach에서도 Socket을 Holster_Bow..
FireBall 스킬은 현재 발사만 되는 상태이므로 피격이 되도록 만들어 줄 것이다. 또 한 피격시 소멸되도록 조건을 넣어서 완성해보겠다. 커스텀 이벤트를 하나 생성해주고 날린다는 의미로 이름을 설정해준다. 어느 방향으로 날릴지를 판단해 줄 입력 파라미터를 추가해준다. 1. 추가한 컴포넌트 Projectile를 가져다가 안에있는 스피드를 불러준다 그리고 곱해주면 날아갈 방향이자 속도가된다. 2. 그다음 Projectile로 Velocity를 연결해 값을 셋팅해준다. 곧 날아갈 방향 3. 멈춘 상태에서 Shoot가 콜됐을때 Set Active를 수행하도록 연결해준다. (지정해주고 활성화 시키는 방법, 값을 변경할때 용의하다) Weapon_FireBall로 이동 원래 만들었던 SpawnActor 뒤에 Vai..
전에 스킬이 캐릭터 주변을 회전하는 스킬을 구현했었다 하지만 피격구현은 하지 않아 구현해볼 것이며, 그다음 만들어 볼 스킬은 손에서 직접적으로 던지는 스킬로 구현해 볼 것이다. 우선 맥락은 같고 손에서 나가는것도 동일하나 방향이 정면으로 나가고, 애니메이션만 바뀐다는것만 알면 된다. 스킬이 도는 모션만 구현했을뿐 피격까진 구현하지않아 HitData는 빼고 진행했었다. 이제는 피격이 필요하므로 엑셀표로 값들을 수정 할 것이다. Weapon_Around로 가서 임포트해서 가져온 엑셀을 설정해준다. 이제 값들은 넣어줬으니 Skill_Around로 가서 피격에 필요한 행동을 넣어 줄 것이다. 충돌체 Sphere를 클릭 후 이벤트로 가서 On Begin Overlap를 눌러서 생성해준다. 스피어에 닿는 순간을 나..
텔레포트를 구현했지만 시야를 아래로 두고 사용하게되면 바닥에 몸이 끼는 경우와 벽 위로 쓰게되면 뒤로 떨어지는 버그아닌 버그가 발생한다. 이걸 잡아주고 스킬을 또 구현해 볼 것이다. 1. Location을 핀분활을 하고, 일단 X, Y는 그대로 사용할 것이고 높이인 Z축만 설정해주면 된다. 2. 캐릭터 가지고 조종하면 되는것이므로 Character안에 Capsule Component를 받아 Get Scaled Capsul 함수로 연결한다. 함수 선언시 보면 Un이 존재 하는데 이건 순수한 값으로만 설정한다는 의미이고 안 붙은거는 변경이 가능할때 사용하면 된다. 3. 캡슐에 반 크기라는 의미는 곧 캐릭터에 반 크기와 동일하다 그만큼은 Z축으로 연결해서 위로 올려준다. 이러면 바닥으로 꺼지는 일은 이제없다 ..