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진법
- %d: decimal의 약자. 10진수로 대체됩니다.
- %o: octal의 약자. 8진수로 대체됩니다. ex) 9(10) <-> 11(8)
- %x: hexadecimal의 약자. x는 소문자, X는 대문자로 대체됩니다. ex) 17(10) <-> 11(16)
- %u: unsigned의 약자. 양수로 대체됩니다.
- %c: character의 약자. 문자로 대체됩니다.
- %s: string의 약자. 문자열로 대체됩니다.
- %f: floating point의 약자. single precision.
- %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)

'본 캠프 TIL' 카테고리의 다른 글
| 26.04.27 TIL / C언어 6-1 ~ 포인터, 구조체 간단설명 / UE5 미니 발표회 (0) | 2026.04.27 |
|---|---|
| 26.04.24 TIL / C언어 4-2 ~ 5-2 / UE5 Day5 (0) | 2026.04.24 |
| 26.04.23 TIL / C언어 3-1 ~ 4-1 / UE5 Day4 (0) | 2026.04.23 |
| 26.04.22 TIL / C언어 1-9 ~ 2-3 / UE5 Day3 (0) | 2026.04.22 |
| 26.04.20 TIL / C언어 1-1 ~ 1-4 / UE5 Day 1 (0) | 2026.04.20 |