반응형

2026/01 19

[알고리즘] 이분 / 이진 탐색 (Binary Search)

1. 이진 탐색 정의이진 탐색(이분 탐색) 이란 정렬되어 있거나, 단조성이 보장된 구간에서 탐색 범위를 절반씩 줄이며 답을 찾는 알고리즘이다.1부터 100 까지의 숫자 맞추기 게임(up/down) 할때 중간 부터 찾는것과 같은 원리이다.2. 이진 탐색이 가능한 조건아래 두 조건이 반드시 필요하다1. 단조성 (monotonicity)한 방향으로만 움직이려는 성질을 의미한다. 수열이나 함수의 증감형태를 유지 할 때를 말한다.예1 : (1, 2, 2, 3, 4, 5 ) , 또는 (10,8,6,4,4,2) 증가나 감소 에2 : (가능 ,가능 , 가능, 불가능 ,불가능) 또는 (불가능,불가능,가능,가능)즉 중간값을 확인 할 때 정답이 왼쪽 혹은 오른쪽 중 어디에 있는지 확신 할 수 있어야 한다는것, 뒤죽박죽 섞이..

[unreal] 5.7 motion matching chooser table : error

문제 : LogChooser: Error: Chooser Table: CHT_MoverCharacterAnimations ContextData entry 1 expects an object of type SandboxCharacter_Mover_ABP_C, but was passed a struct of type S_ChooserOutputs 라는 에러 메시지 발생,원인 : 테이블 정의와 호출부(참조 지점)이 서로 다른 버전/ 타입 을 사용.CHT 에서 Entry를 내 캐릭터 ABP 로 바꿔도 증상은 그대로 또는 샘플링 캐릭터의 abp나 bp 를 클릭하면 비슷한 에러 메시지가 추가되는 문제가 발생함CHT는 기본 샘플링 프로젝트를 사용 했고 추가로 상속 받아 사용해서 문제가 없을거 같았지만 프리뷰 인스턴트..

[unreal] unreal 5.7 모션 매칭(motion matching) - weapon pose

2026.01.16 - [Unreal/MotionMatching] - [Unreal] 모션 매칭 - 상태 전환 [Unreal] 모션 매칭 - 상태 전환2026.01.14 - [Unreal/MotionMaching] - [unreal] 모션 매칭(MotionMaching) [unreal] 모션 매칭(MotionMaching) 기본이동언리얼의 모션 매칭이란 언리얼에 단순히 애니메이션을 재생하는걸 넘어서 실시간 상황에 따라codehortus.tistory.com이전 게시글로 기본 원리를 익혔다면 지금은 GASP 에 무기 상태에 따른 애니메이션을 연동할 예정이다.현 프로젝트에 라이라에서 사용하는 애니메이션을 이용해 WeaponType에 따른 무기 상태를 연동한다. 작업 목표 1.하체 로코모션은 GASP로 구동,..

[c++] RTTI 와 RAII 의 차이

RTTI(Run Time Type Information)런타임에 vtable과 추가적인 타입 메타 데이터를 사용하여 객체의 실제 타입을 확인하는 동적 메커니즘, 약간의 메모리 성능 오버헤드가 발생 할 수 있다.프로그램 실행 중(런타임)에 객체의 실제codehortus.tistory.com RAIIResource acquisition is initialization 자원 획득을 초기화 한다.RAII 는 자원 관리를 위한 c++ 디자인 패턴 스마트 포인터,컨테이너,락 가드 등 모두 RAII 기반자원 누수를 방지하고 안전한 자원 관리를 보장codehortus.tistory.com RTTI (Run-Time Type Information)런타임 중에 객체의 실제 타입을 알아내는 기능으로 다형성을 사용하는 객체..

c++ 2026.01.23

[c++] L-Value 및 R-Value 식

L-Value 및 R-Value 식자세한 정보: L-Value 및 R-Value 식learn.microsoft.com Value Categories: Lvalues and Rvalues (C++)Learn more about: Lvalues and Rvalues (C++)learn.microsoft.com l-value이름이 있고 주소를 가질 수 있으며, 대입( = 등호)의 대상이 될 수 있는 값으로메모리 위치를 참조하는 식으로 Left 나 Locator 값을 나타내며 l value는 대체로 식별자이다.식별자의 이름은 스토리지 위치를 나타내지만 변수의 값은 해당 위치에 저장된 값이다. r-value식의 일반적인 값이며 임시 객체로 메모리를 가지지 않아 계산에 잠깐 쓰이고 사라진다.l-value 구별하기..

c++ 2026.01.23

[c++] 스마트 포인터(Smart Pointer)

스마트 포인터는 객체의 생명주기를 자동으로 관리하는 포인터 객체이다.전통적인 new/delete 방식에서 발생하던 메모리 누수와 이중 해제 문제를 방지하지 위해 도입되었다.c++ 표준 라이브러리 에서 제공하며 RAII 원칙을 따른다.소유권을 코드로 명확히 표현하는 안전한 포인터2025.11.30 - [c++/객체지향] - RAII RAIIResource acquisition is initialization 자원 획득을 초기화 한다.RAII 는 자원 관리를 위한 c++ 디자인 패턴 스마트 포인터,컨테이너,락 가드 등 모두 RAII 기반자원 누수를 방지하고 안전한 자원 관리를 보장codehortus.tistory.com 1. 필요한 이유 수동 delete 누락시 메모리 누수.여러 포인터가 같은 객체를 해제 ..

c++/객체지향 2026.01.20

[Unreal] 모션 매칭 - 상태 전환

2026.01.14 - [Unreal/MotionMaching] - [unreal] 모션 매칭(MotionMaching) [unreal] 모션 매칭(MotionMaching) 기본이동언리얼의 모션 매칭이란 언리얼에 단순히 애니메이션을 재생하는걸 넘어서 실시간 상황에 따라 가장 적절한 포즈를 선택하는 시스템이다.쿼리(Query) : 모션 매칭의 핵심 시스템으로 캐릭터의 현codehortus.tistory.com이전 기본이동에 이어 상태에 따른 애니메이션을 추가했다.이전 블로그에서 pss 에 대한 설정을 했다 1.PSS(PoseSearch Schema)어떤 데이터를 기준으로 최적의 모션을 찾을것인가 정의하는 핵심 설계도로 단순 애니메이션을 모아 두는 것이 아니라 케릭터의 위치, 속도, 발의 위치 등 비교할 ..

[알고리즘] 다이나믹 프로그래밍 (DP,Dynamic Programming)

큰 문제를 작은 문제로 나누고 작은 문제의 정답을 저장해 재사용해서 전체 문제를 최적(최소/최대/경우의 수)으로 푸는 기법. 하나의 문제는 단 한번만 풀어 여러번 다시 푸는 비효율적 중복 계산을 제거하는 알고리즘이다.성립 조건은 보통 두가지로 1. 겹치는 부분 문제 : 같은 작은 문제가 반복해서 등장한다.2. 최적 부분 구조 : 큰 문제의 최적해가 작은 문제들의 최적해로 구성된다. DP를 푸는 과정 1. 테이블 정의하기2. 점화식 찾기 3. 초기값 정하기예제 1) 피보나치 문제https://www.acmicpc.net/problem/1003위 문제를 보면 1과 0의 갯수만 세면 문제가 풀릴거 같지만 주어진 시간이 0.25초로 제한 시간 초과로 문제를 틀리게 된다 .해당 주어진 식을 그대로 쓰지 않고 dp..

[unreal] 모션 매칭(MotionMatching) 기본이동

언리얼의 모션 매칭이란 언리얼에 단순히 애니메이션을 재생하는걸 넘어서 실시간 상황에 따라 가장 적절한 포즈를 선택하는 시스템이다.쿼리(Query) : 모션 매칭의 핵심 시스템으로 캐릭터의 현재 상태를 종합한 정보 덩어리,위치,속도,방향,현재 포즈, 플레이어의 입력 등 정보들이 담겨 있다. 해당 쿼리를 바탕으로 데이터베이스 에서 가장 적합한 포즈를 찾아 복잡한 로직 없이도 이전 동작과 자연스럽게 연결되는 움직임을 만들 수 있다.Game Animation Sample 프로젝트를 생성 후 위의 폴더를 현재 테스트 중인 프로젝트에 이주했다. 가져온 sandBox abp에 애니메이션을 리타깃 한다.소스를 Sample 에 있는 캐릭터로 잡고 타깃을 내 캐릭터로 설정 한뒤 리타깃 에셋 익스포트를 눌러주면 아래와 같..

[c++] 스택 오버플로우 발생 및 해결 방법

[프로세스 관리] 프로세스의 메모리 구조운영체제에서 하나의 프로세스가 실행 될 때 운영체제가 그 프로세스에게 부여하는 독립적인 메모리 공간을 의미한다.운영체제는 운영체제를 위한 커널 영역과 프로그램을 실행하는데 필요한codehortus.tistory.com 스택은 함수 호출마다 만들어지는 호출 정보(스택 프레임)을 쌓는 메모리이다. 스택 오버플로우는 이 공간의 한도를 넘게 써서 발생한다. 스택 프레임: 함수 가 호출 될 떄마다 해당 함수의 실행 정보를 저장하기 위해 스택 영역에 할당되는 메모리 블록 매개 변수 : 함수 호출시 전달된 인자 값복귀 주소 : 함수 실행이 끝난 후 돌아가야 할 코드의 메모리 주소 지역 변수 : 함수 내부에서 선언된 변수들 이전 스레드 정보 (Saved FP) : 이전 함수의 스..

c++ 2026.01.13
반응형