분류 전체보기 124

[21강] Animation Blending

저번시간에 이어 Attacking 애니메이션 오류를 해결할예정이다. 1. 무기가 있을때 / 없을때 상관없이 진행 2. 여러번 휘두르는 문제 3. 휘두르고 난 후 Idle (Unarmed) 로 초기화 되어 플레이 됨 이번시간에는 3번 문제를 애니메이션 블랜딩 기능을 이용하여 해결할 예정이다. - 애니메이션 두 동작 이상을 섞는 기능 - 애니메이션 몽타주의 슬롯 애니메이션이 실행된 후 idle 등이 초기화 되는 문제를 해결 가능 - "본마다 레이어로 블랜딩" 기능 사용 ex. 상하체 애니메이션을 섞음. 하체의 기본동작을 유지시키는 방법으로 공격 애니메이션을 더욱 자연스럽게 구현 Attacking Animation 오류해결 (3) 1. Upper Body 슬롯 만들기 저번시간에는 de..

[20강] Animation Montage

좋은아침이다! 하고 작업중이던 파일을 열었는데 로드에러가 뜨고 심난했다. 그냥 파일만 바꿔껴주면 되겠거니 하고 이전에 작업한 내용 살펴보면서 커피도 마시고 간식도 먹고 했다. 개선해야할 사항 두가지를 발견하고 해결했다. 1. 칼 파일 로드 에러 --1) 문제원인 파악 저번에 실수인데, 오늘 파악했다. Character 폴더에 Sword 폴더에 칼 자료, Weapon 폴더에 칼자료 이 두가지를 섞어 사용하고 Sword 폴더 칼 자료를 필요없다고 삭제했다. 뭐가 뭔지 정리가 안되고 확실치 않음 작업하다가 삭제한 쪽 자료가 사용되는 부분에서 문제가 되는거였다. --2) 확실하게 해결하기 위해 칼을 다 삭제, 다시 Weapon폴더에 넣고 칼 리임포트, 칼 블루프린트 다시 만듦 --3) BP_Play..

[19강] Spawn Actor & AttachToComponent

이번 시간에 다룰 내용 Spawn Actor : Actor 를 화면에 구현하는데 사용 AttachToComponent : Spawn 한 Actor 를 socket 에 붙이기 위한 기능 구현에 사용 1. 필요한 무기 어셋 임포트 캐릭터 파일 > 탐색기에서 표시 > Sword 임포트 다운로드 한 파일에는 다음과 같이 피직스, 스켈레톤, 메시 정보와 텍스쳐가 들어있었다. 무기는 정적 메시이기에 StaticMesh 라고 오해할 수 있지만, 손 등과 정확히 상호작용하기 위해 SkeletalMesh 구조여야 한다. (따라서 뼈대가 들어가 있다.) SkeletalMesh 이기 때문에 후에 있을 작업에서 Trail 등의 기능도 구현가능하다. 2. 무기를 구현하기 위한 A..

[18강] Anim Notify

Anim Notify 애니메이션이 플레이 되다가 특정 구역을 지나가면 호출해주는 것 * 예시 : 1. 임포트한 애니메이션 > 애니메이션바를 움직이며 원하는 프레임에 "Play Particle Effect" 노티파이추가 2. 임포트한 파티클 효과 "Fire_Exp_03" 설정 3. 플레이를 했을 경우 설정한 프레임에 "Fire_Exp_03" 파티클이 호출됨. Anim Notify 심는 방법 1. 일반 문자열로 처리하는 방식 일반 강의에서 많이 다루며 애니메이션 블루프린트에서 플레이어에게 넘겨주는 방식인데 번거로움 유지보수가 어려움 노티파이추가 > 새노티파이 2. 객체로 만들어서 처리하는 방식 노티파이 객체를 이용하는 방법으로, 유지보수가 더 간편함 노티파이추가 > 새노티파이 하단에 있는 버튼으로 추가 No..

[17강] State Machine(Draw / Sheath)

이번시간에는 이전에 임포트 했던 애니메이션들을 활용하여 만든 BS_Sword 를 통해 칼을 넣고 빼는 것을 구현하여 볼 예정이다. 1. Player > ABP_Player "BS_Unarmed" 에서 칼을 뽑기1, 2를 통해 "BS_Sword" 에 연결된 후 칼을 넣기 1, 2를 진행해 원래대로 돌아가는 형식으로 짠다. 이후 "Drawing", "Sheathing" 변수를 생성한다. 생성한 변수를 이용해 다음과 같이 조건을 넣어준다. 마지막으로 칼을 넣고 빼고 하는 시간을 자연스럽게 맞추기 위해 블렌드 세팅 > 기간 을 다음과 같이 조절하여준다. 빨간박스로 체크한 주황 - 0.1 하양 -0.05 추가로 모드변경을 해 주는데, 맨 마지막은 Linear 로 연결해준다. 애니메이션 키는 같고 선 연결되는 스타..

[Unity] Menu UI

멋진 시작 메뉴 만들기 (유니티 UI 튜토리얼) - 유튜브를 찾다가 좋은 자료라고 생각해서 핵심 내용을 번역해 남깁니다. 썸네일을 클릭해 줘서 기쁘고, 당신의 아름다운 미소를 제 채널에서 다시 보게되어 기쁩니다. 제 이름은 "Thomas Brush" 이고, "Pinstripe" 와 한때 "Coma" 라고 불렸던 게임의 크리에이트 디렉터입니다. 저는 10년간 게임을 만들었고, 이것은 제 직업이기도 합니다. 저는 게임을 제작하는 것에 큰 애정이 있습니다. 어려운 시스템을 갖춘 건 아니지만 기본을 유지하면서 애니메이션 효과등을 이용해서 메뉴를 멋지게 만드는 방법이 있어요. 1. 4K 이미지 만들기 제일 먼저 해야할 일은 포토샵, 일러스트레이터 등을 이용해서 4K 이미지를 만드는 것입니다. 화면상에 보이는 텍스..

[C#] IPv6 에서 IPv4 출력으로 변환

void Awake() { string hostname = Dns.GetHostName(); IPAddress[] adrList = Dns.GetHostAddresses(hostname); } 으로 IP주소를 출력하였을 경우 다음과 같이 IPv6 형태로 출력되는데, Dns.GetHostAddresses(hostname) 가 host 가 IPv6를 지원하는 경우에 이것을 같이 반환하기 때문이다. 따라서 아래와 같이 조건문을 사용해서 IPv4 주소를 선택하도록 수정해야 하는 방법을 이용해 볼 수 있다. void Awake() { string hostname = Dns.GetHostName(); IPAddress[] adrL..

[1658] 최대공약수와 최소공배수

문제 두개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 입력 파일의 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 예제 입력 24 18 예제 출력 6 72 최대공약수(GCD) : 공약수는 최대공약수의 약수이다. - 공약수 : 어떤 두 수 이상의 공통인 약수 - 최대공약수 : 공약수들 중 가장 큰 수 최대공약수를 구하기 위한 함수 int gcd_get(int x, int y) { int gcd; for (int i = 1; i

[2809] 약수

문제 한 개의 정수를 입력받아 입력받은 정수의 약수를 모두 출력하는 프로그램을 작성하시오. 입력 정수 N이 주어진다. (2 ≤ N ≤ 21억) 출력 N의 약수를 작은 수부터 차례로 모두 출력한다. 예제 입력 24 예제 출력 1 2 3 4 6 8 12 24 처리조건 약수 : 어떤 수를 나누어 떨어지게 하는 수 - a * b = c 일 경우 a 와 b는 c의 약수가 되며, 어떤 수 i가 N의 약수일 경우 N % i = 0 이다. - 1은 모든 수의 약수이며 자기 자신 또한 약수가 된다. 따라서 1보다 큰 자연수라면 반드시 2개 이상의 약수를 가지게 된다. - a * b = c 일때 a가 작은수인 경우 b = c /a 로 접근이 가능하며, a * a 0; i--) { printf("%d ", arr[i - 1..

[1402] 약수구하기

문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 출력 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력..