전체 글 115

[221019] KAKAO [1차] 비밀지도

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include using namespace std; vector ChangeNum(int n, int max) { vector retval; while (n >= 2) { retval.push_back(n % 2); n /= 2; } if (n > 0) { retval.push_back(1); } while (retval.size() < max) { retval...

[C++11] 람다식

C++ 11 규약부터 정식으로 추가된 람다식은 함수를 헤더에 선언할 필요가 없으므로 간단한 로직을 간편하게 처리할 수 있다는 장점이 있다. 람다식은 다음 네가지 영역으로 구분된다. 1. 람다 소개자 [ ]로 표시되며 람다 구문이 참조할 환경(캡처)을 지정한다. 식 안에서 사용할 멤버 변수와 함수의 인스턴스. 2. 파라미터 리스트 람다 함수가 사용할 파라미터 지정. 함수 인자가 없다면 빈 괄호 사용. 3. 후행 반환 타입(Trailing Return Type) ‘->’ 기호를 사용한 후 람다 함수가 반환할 타입을 지정한다. 반환값이 없다면 void 사용. 4. 람다 함수 구문 { }로 캡처 환경을 사용한 람다 함수의 로직을 넣어준다. 캡처로 지정된 클래스의 멤버 변수와 함수에 자유롭게 접근할 수있다.

C++ 2022.10.19
[UE4] 델리게이트(Delegate)

특정 객체가 해야 할 로직을 다른 객체가 대신 처리할 수 있도록 만드는 보편적인 설계의 개념이다. 언리얼 엔진의 델리게이트는 A객체가 B객체에게 작업 명령을 내릴 때 B객체에 자신을 등록하고 B의 작업이 끝나면 A에게 알려주는 설계방식을 의미한다. 로직 순서 1. A의 함수를 B에 등록 2. B에게 A가 명령. 3. B가 A의 명령을 실행. 4. 1에서 등록한 A의 함수를 호출. 애님 인스턴스에서 제공하는 델리게이트 애님 인스턴스에는 에니메이션 몽타주 재생이 끝나면 발동하는 OnMontageEnded라는 델리게이트를 제공한다. 어떠한 언리얼 오브젝트라도 UAnimMontage* 인자와 bool 인자를 가진 멤버 함수를 가지고 있다면, 이를 OnMontageEnded 델리게이트에 등록해 몽타주 재생이 끝나..

UE4 2022.10.19
[UE4] 애니메이션 몽타주(Animation Montage)

애니메이션 몽타주란? 애니메이션 몽타주는 폭넓은 애니메이션 이펙트가 가능해지는 다목적 툴로써, 주로 코드를 통해서나 플루프린트 비주얼 스크립트 안에서 애니메이션 컨트롤을 노출시키는 데 관련되어 있다. 몽타주를 사용하면 블루프린트 또는 코드를 통해 애니메이션 애셋을 바로 제어할 수 있다. 여러 애니메이션 시퀀스를 하나의 애셋으로 합칠 수 있으며, 이를 섹션으로 나누어 그 일부 또는 조합 재생이 가능하다. 몽타주 안에서 이벤트를 발동시켜 다양한 로컬이나 리플리케이트 작업을 할 수 있는데, 예를 들면 사운드 큐나 파티클 이펙트 재생, 탄환 수와 같은 플레이어 값 변경, 심지어 네트워크 게임에서 루트 모션 리플리케이션(복제)도, 애니메이션에 루트 모션이 켜진 경우 가능하다. 몽타주 활용예시 로직 기반 애니메이션..

UE4 2022.10.19
[UE4] 디버깅 모드로 에디터 켜기

언리얼의 C++ 솔루션 파일에서 F5키를 눌러 디버그를 실행하면 에디터가 자동으로 켜진다. 이렇게 에디터를 디버그 모드로 키게 되면 디버깅에도 유리할 뿐 아니라, 핫 리로드 방식보다 빠르다. 수정한 코드를 반영하고 싶다면 큐브모양의 컴파일 버튼을 누르면 된다. 컴파일 옆에 작은 화살표를 누르면 아직 실험단계인 라이브 코딩 활성화가 있는데 이를 사용하면 컴파일없이 실시간으로 내 코드 변경사항이 플레이를 끄지 않아도 적용된다. 하지만 아직 실험단계인 만큼 오류가 많다고 하니 활용에 유의하자. 참고로 라이브 코딩 후 ctrl+alt+f11을 누르면 적용된다.

UE4 2022.10.05