본 캠프 TIL

26.04.21 TIL / C언어 1-5 ~ 1-8 / UE5 Day2

jh009 2026. 4. 21. 21:30

C언어 세션 2일차

1-5. printf() 함수

print formatted의 약자 / 양식에 맞게 출력하다

<> : 각괄호 혹은 꺽쇠괄호는 시스템 경로에서 먼저 찾음.

“” : 큰따옴표는 일단 우리 프로젝트 내에서 먼저 찾고 없으면 시스템 경로에서 찾음



Ex010503) 개행하기

탈출 문자열 \

  출력
\n 개행(New line)
\t 탭(Tap)
\’ 따옴표 출력
\” 쌍따옴표 출력
\\ 역슬래시 출력
%% % 출력

 

Ex010504) 탈출 문자열


1-6. 서식 지정자

진법, 진수

진법: ~개 셀 수 있다.

1진법: “한 칸에” 1개 셀 수 있다 → 0

4진법: “한 칸에” 4개 셀 수 있다 → 0 1 2 3 → 0 ~ 4 - 1 까지 센거임

16진법: → 0 1 2 3 4 5 6 7 8 9 a b c d e f

컴퓨터: 2진법, 8진법, 10진법, 16진법

 

  1. %d: decimal의 약자. 10진수로 대체됩니다.
  2. %o: octal의 약자. 8진수로 대체됩니다. ex) 9(10) <-> 11(8)
  3. %x: hexadecimal의 약자. x는 소문자, X는 대문자로 대체됩니다. ex) 17(10) <-> 11(16)
  4. %u: unsigned의 약자. 양수로 대체됩니다.
  5. %c: character의 약자. 문자로 대체됩니다.
  6. %s: string의 약자. 문자열로 대체됩니다.
  7. %f: floating point의 약자. single precision.
  8. %lf: double precision floating point.

Ex010601) 서식시정자

printf(”%d”, 3245 * 2342); 라는 코드는 “3245 * 2342를 %d 형식으로 printf 해라

Ex010602) 정수 서식지정자

Ex010603) 실수 서식지정자


1-7. 리터럴

소스코드에 적힌 값 그 자체


1-8. 자료형

정수 자료형

자료형 크기 == 표현 가능한 수 서식 지정자
char 1 byte. -(2^7) ~ (2^7) - 1[-128 ~ 127] %c or %hhd
short int 2 byte. -(2^15) ~ (2^15) - 1[-32768 ~ 32767] %hd
int[기본 정수 자료형] 4 byte. -(2^31) ~ (2^31) - 1[-2147483648 ~ 2147483647] %d or %i
long 4 byte or 8 byte. %ld
long long 8 byte. -(2^63) ~ (2^63) - 1 %lld

 

실수 자료형

float 4 byte. 유효 자리수 6~7자리.[부호: 1bit, 지수: 8bit, 가수: 23bit] %f
double[기본 실수 자료형] 8 byte. 유효 자리수 15~16자리.[부호: 1bit, 지수: 11bit, 가수: 52bit] %lf
long double 8 byte 이상. %Lf

 


Blueprint FPS 슈팅 게임 개발 2일차

 

Fab 에서 rifle 검색 후 무료 에셋으로 Add to Project 클릭 

 

다운 받은 에셋 애니메이션 확인

 

FPS_Character → Gun Mesh    SK_M16_Scope 선택


팔 스켈레탈 메시 메테리얼 정상 작동인 것 확인하기

 

Animations → FP_Rifle_Idle 확인

 

FPS_Character → Animation → Anim to play → FP_Rifle_Idle 설정


Auto Possess Player → Player 0


캐릭터 위치 수정 Tip

Transform 창에서 Shift + 우클릭 → 창이 한 번 반짝거림

 

FPS_Character 로 들어가 Transform 창에서 Shift + 좌클릭 → 위치 붙여넣기 (편함)


SK_Mannequin_Arms_Skeleton → Preview Animation → FP_Rifle_Idle 검색

 

hand_r 검색 → Add Socket

 

hand_rSocket → Add Preview Asset → SK_M16_Scope 검색 

 

  • 자연스럽게 배치 
  • 큐브 모양을 끄면 디테일하게 설정 가능


Construction Script

루프린트가 컴파일되거나, 레벨에 배치되거나, 에디터에서 이동/수정할 때 자동으로 실행되는 공간

 

설정 후 Viewport 에서 저장 및 확인

Construction Script 노드 삭제

 

  • Gun클릭 → Sockets → Parent Socket → Select Box → hand_rSocekt 선택
  • Gun의 부모를 hand_rSocekt 로 하면 앞으로 애니메이션이 적용되어도 총이 손에 잘 붙어 있음

 

Gun에 Location, Rotation 모두 (0.0, 0.0, 0.0)으로 변경


Muzzle Flash: 총 부분에 총알이 나가면 화염이 일어나는 것

 

Muzzle Flash 로 이름 변경

 

Muzzle Flash 위치 설정


  • Mesh → Animation → Advanced → Pause Anims 체크
  • 팔이 움직이지 않게 함


변수 생성


이동 및 마우스 조작

 

Content 파일에 Inputs 파일 생성

Inputs 파일

→ Input Mapping Context  → IMC_0421_FPS

InputAction → IA_0421_Look, IA_0421_Move

 

이름에 0421를 추가한 이유는 구분하기 위함 

 

IA_0421_Look, IA_0421_Move

Value Type → Axis2D 으로 설정

 

Index → Negate Y축만 체크 (마우스 위,아래 방향 반전)

 

W: Modifiers → Swizzle Input Axis Values (X축을 Y축으로 변경) / Y = +1 

S: Modifiers → Swizzle Input Axis Values / Y = +1 의 Negate

A: Negate / X = +1 의 부정 

D: 기본 설정 / X = +1

 

FPS_Character → Blueprint


Inputs → IA_Aim생성

 

Value Type → Digital(bool) 

조준한다 True / 안 한다 False

 

조준 키 설정

 

FPS_Charcrter → Blueprint

 

설정 후 확인

Ture → 조준 성공

False → 일반 모드

 

Add Timeline 생성 후 더블클릭

  • 타임라인이란 설정한 시간 동안 값을 부드럽게 변화시켜주는 노드 입니다.
  • 우리는 이것을 이용해서 조준, 조준 해제시 0.25초에 걸쳐 카메라 FOV를 90→60으로 줄였다가 다시 FOV를 60 → 90으로 변경 함으로써 줌인, 줌아웃 효과를 주겠습니다.
  • **FOV(Field of View)**는 시야각 또는 시야를 뜻하며, 카메라, VR 기기, 게임 등에서 한 번에 볼 수 있는 화면의 전체 범위(너비와 높이)를 의미합니다.

 

Track → Add Float Track 생성

 

우클릭 → Add key to CurveFloat_1  → 키 프레임 2개 생성

 

왼쪽 키 프레임의 Time, Value 둘 다 0.0

오른쪽 키 프레임의 Time, Value 각각 0.25 , 1

 

  • 키 프레임 두 개 전부 선택 / Shift 누른 채로 클릭
  • Auto 로 변경

 

Default Value 의 값

  • Default Fov : 90
  • Aim Fov : 60

Lerp 노드

  • 0 → 1값을 기준으로 A 의 값에서 B의 값으로 Fov 값을 변경
  • Ture → Fov 값 90 에서 60 (조준모드)
  • False → Fov 값 60 에서 90 (일반모드)

Play from Start

  • Timeline이 들어오면 처음부분 부터 다시 시작 / 0 → 1로 값이 변경

우클릭 조준 홀드로 할거면 Completed 가 마우스 떼는 트리거

Ctrl + P = 검색창

 

블루프린트 단축키

B + 좌클릭 

S + 좌클릭


애니메이션 블루프린트 기초

Character 폴더 → Animation 폴더 생성

 

State Machine 생성, 이름은 Locomotion

 

 

ABP_FPSCharacter → Blueprint

 

1.

 

2.


캐릭터 Mesh 로 돌아와서 

Animation Mode → Use Animation Blueprint로 변경

 

Anim Class → ABP_FPSCharacter로 변경

 

Animation → Advanced → Pause Anims

False 로 체크

 

FP_Rifle_Idle / FP_Rifle_Run

 

  • Loop Animation → Ture 로 체크
  • Loop Animation에 체크가 안 되어 있습니다. 체크(true)