본문 바로가기

내일배움캠프

내일배움캠프 언리얼트랙 3일차

오늘은 날씨가 더 추워진것 같아요. 늘 감기조심...! 그럼 오늘도 화이팅하고 시작해봅시다!

2025 - 04 - 22


 

오늘의 학습

- C

- UnrealEngine


 [C] 

 

 변수 

변수(Variable) <-> 상수(Constant)

변할 수 있는 수.

 

선언 형식 :  자료형 변수명 = 값; 

 

// Main.c

#include <stdio.h>

int main(void)
{
	// 자료형 변수명 = 값;
	int Num = 21; 
		// 선언과 동시에 초기화
		// "Num은 21" (X)
		// "int 자료형의 Num 변수를 선언하고, Num 변수에 21을 대입해라" (O)
	double PI;            // 선언
		// "double 자료형의 PI 변수를 선언.

	printf("Num = %d\n", Num);

	PI = 3.141592;
	printf("PI = %lf\n", PI);

	return 0;
}

 

unsigned 키워드와 signed 키워드

unsigned를 자료형 앞에 붙이면 음수 표현 불가능 -> 양수부분 2배가 됨

서식지정자 : %u

모든 자료형은 signed키워드가 생략되어있음

 

오버플로우

자료형이 표현가능한 수를 넘어서는 경우

 

2진법 = 한 자리에 2개 셀 수 있음. = 0~1


1bit = 2진법 한 자리 = 0, 1 -> 0, 1
=> 0~1 == 2^1개

2bit = 2진법 두 자리 = 00, 01, 10, 11 -> 0,  1,   2,   3
=> 0~3 == 2^2개

3bit = 2진법 세 자리 = 000, 001, 010, 011, 100, 101, 110, 111 ->  0,    1,    2,    3,    4,    5,    6,    7
=> 0~7 == 2^3개

4bit = 2진법 네 자리
=> 0~2^4-1 == 2^4개

즉, n bit = 0 ~ 2^n - 1, 2^n개

 

1byte == 8bit

 -(2^8/2) ~ (2^8/2)-1 => -128 ~ 127

char -128 ~ 127

unsigned char 0~255

 

 4 bytes == 4*8 bits

-(2^32/2) ~ (2^32/2)-1 => -2147483648 ~ 2147483647

 

ASCII (American Standarded Code for Information Interchange)

문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규약 중 하나

 

 입력 기초 

scanf() : 키보드로부터 데이터를 입력받을 수 있게 해주는 함수

// Main.c

#define _CRT_SECURE_NO_WARNINGS 
	// scanf() 함수를 쓸때는 이걸 정의해줘야 합니다.
	// 다만 scanf() 함수는 stdio.h에 정의되어 있으므로, stdio.h 파일 인클루드 전에 정의해야 합니다.
	
#include <stdio.h>

int main(void)
{
	int Num;

	scanf("%d", &Num); // "Num에다가(&) %d 형식으로 입력받아라."

	printf("%d", Num); // "Num을 %d 형식으로 출력해라."

	return 0;
}

 

 연산자와 피연산자, 산술 연산자, 복합 대입 연산자, 값식문 

 

 5 + 2 

연산자 : +

피연산자 : 5, 2

 

산술 연산자

덧셈(+), 뺄셈(-), 곱셈(*), 몫(/), 나머지(%)

 

복합 대입 연산자

산술 연산과 대입 연산을 함계 계산하는 연산자

mul *= 3;
mul = mul * 3;

결과적으로 둘은 같은 코드이다.

 

값(Value), 식(Expression), 문(Statement)

값은 리터럴과 같음

ex) 2147483647, 3.141592, “Hello, World!”, …

식은 피연산자와 연산자로 이루어져 값으로 귀결되는 것들

ex) 3 + 5, 5.43 - 9.2, …

문은 컴퓨터가 수행할 명령어

 

증감 연산자, 논리 연산자, 비교 연산자 

 

증감 연산자

단항의 피연산자를 가짐

각각 피연산자의 앞 혹은 뒤에 붙음

ex) num++; , ++num;

 

전치/후치

전치 : 지금 당장 1증가 -> ++num

후치 : 다음 줄에 1증가 -> num++

// Main.c

#include <stdio.h>

int main(void)
{
	int Num = 3;

	printf("%d", ++Num);
	printf("%d", Num++);
	printf("%d", Num--);

	return 0;
}
445

++Num 는 전치 증감 연산자이기에 먼저 1을 더한다. => Num = 3+1 = 4. 이후 출력하면 4 출력됨.

Num++ 는 후치 증감 연산자이기에 다음에 1을 더한다. 출력하면 4출력되고 출력 이후에 1을 더함 => Num = 4+1 = 5

Num-- 는 후지 증감 연산자이기에 다음에 1을 뺀다. 출력하면 5출력ㄷ되고 출력 이후에 1을 뺌 => Num = 5-1 = 4

 

즉, 출력 결과는 445가 나오고 마지막 출력 이후 Num은 4이다.

 

논리 연산자

피연산자를 참/거짓으로 평가하고 논리연산 수행

boolean 연산자

ex) 7&&0, !8...

 

논리연산자 종류

논리 곱 연산자(&&) -> 그리고, 논리 합 연산자(||) -> 또는, 논리 반전 연산자(!) -> ~가 아니다

 

관계 연산자

피연산자 간의 관계를 판단하는 연산자

<, <=, >, >=, !=, ==

 

 형변환 연산자, 삼항 연산자, sizeof 

 

형변환 연산자 (Type-cast Operator)

자료형을 변환 시켜주는 연산자

명시적 형변환

5 / 2; //        == 정수 / 정수 
(float)5 / 2; // == 실수 / 정수 == 5.0f / 2 == 2.5f

 

삼항 연산자(Ternary Operator)

피연산자로 3개의 항을 갖는 연산자

if-else 대용 가능

4 < 5 ? 0 : 1;

참이면 : (콜론) 기준 앞에 값/식이 계산 결과가 됨

거짓이면 :(콜론) 기준 뒤에 값/식이 계산 결과가 됨

 

sizeof

단항 피연산자를 가짐. 피연산자의 자료형 크기를 바이트 단위로 반환.

sizeof(char); // == 1;

char ch; 
sizeof(ch);   // == 1;

 [UnrealEngine] 

언리얼의 경우, 저번시간 조준(ADS)와 애니메이션 블루프린트 기초까지 수업을 진행했지만 스스로는 앞부분 내용을 이해하기 위해 복습하느라 조준, 애니메이션 블루프린트 기초 부분을 진행하지 못했다. 따라서 영상자료를 보면서 해당 부분을 복습한다!

 

 

 조준(ADS) 

ADS : Aiming Down Sight

 

마우스우클릭으로 줌/줌해제 IA 추가 IMC 설정 (on/off 기능이므로 Digital(bool))

ADS의 핵심기능은 Timeline, Set Field Of View(Camera)

 

타임라인을 사용해 시야각(Field Of View)이 변하는 구간을 부드럽게 연결하고, Set Field Of View 노드로 시야각을 조절하여 조준 기능을 구현한다.

Video Project 7.mp4
1.17MB

조준 기능 확인 영상

 

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

 

Animation Blueprint

캐릭터의 어떤 애니메이션을 언제 재생할지 결정하는 전용 블루프린트

콘텐츠 브라우저 - Animation → Animation Blueprint - SK_Mannequin_Arms_Skeleton

State Machine 추가, FP_Rifle_Idle과 FP_Rifle_Run 배치 후 연결.

entry → FP_Rifle_Idle <= => FP_Rifle_Run

이후 전환 규칙을 넣어주고 노드를 구성한다. 완성 후 플레이해보면 잘 적용된걸 알 수 있었다.

정지상태 -> FP_Rifle_Idle

움직임 -> FP_Rifle_Run


오늘은 어제 하지 못했던 부분들을 다시 해보며 복습에 전념했다.

수업 시작 전 1시간 동안 코드카타를 진행했다. 프로그래머스 문제를 풀어보는 시간을 가졌는데, 워밍업하기 좋았다.

언리얼엔진 블루프린트강의는 바로바로 이해하기가 조금 어렵다. 따라서 복습하는 시간을 꼭 가져야겠다.

올려주신 녹화 강의를 다시 보면서 복습하고 이해하면 TIL에 작성해야겠다. 물론 수업시간에도 천천히 따라하면서 집중해서 듣는것도 중요하다.

 

오늘의 C, UnrealEngine 복습 완료! 내일도 힘내보자.