21. [UE5] 블루프린트를 위한 프로그래밍 기초

2024. 10. 18. 00:53·4. 언리얼 엔진(Unreal Engine) 공부/Unreal Engine 5
목차
  1. 1. 프로그래밍이란 무엇인가?
  2. 1) 알고리즘 / 로직
  3. 2) 프로그래밍 이론
  4. 3) 데이터 타입
  5. 2. 연산의 종류
  6. 1) 대입 연산
  7. 2) 산술 연산
  8. 3) 증감 연산
  9. 4) 비교 연산
  10. 5) 논리 연산
  11. 3. 제어문
  12. 1) 분기문
  13. 2) 반복문
  14. 4. 함수
  15. 5. 클래스(Class)
  16. 6. 컴파일과 인터프리트

1. 프로그래밍이란 무엇인가?

  • 데이터(값) 처리 : 변수, 연산
  • 실행 흐름 제어(어떻게 실행되게 할 것인지)
  • 실행이 진행되는 과정에서 적절한 기능 실행
    • 적절한 API 사용
    • 필요한 함수를 제작

1) 알고리즘 / 로직

알고리즘 로직
  • 문제를 해결하기 위한 절차나 방법
  • 여러 가지 단위 기능을 조합하고 조립해서 하나의 완전한 기능을 할 수 있도록 만들어 주는 것
  • 프로그램의 논리적인 흐름(차례대로 무언가를 해야 하는 것으로 연결된 것)
  • Flow Chart
  • 알고리즘의 연결

 

2) 프로그래밍 이론

이벤트 변수
  • 인터페이스 입력에 대한 반응
  • 상황 변화에 대한 반응을 감지하고 이에 대한 반응을 만들기
  • 캐릭터가 충돌 영역을 지나치는 순간 상황 변화가 생기고, 어떻게 반응할 것인가
  • 변수(Variable) : 변하는 수 (값 → Value / Data)
    • 데이터를 저장하기 위해 할당받은 메모리 공간
    • 변수에 저장된 값은 변경될 수 있음
  • 상수(Constant)
    • 변수에 저장된 데이터가 변경되지 않음
    • 리터럴 상수(Literal Constant) : 값 자체를 상수로 얘기할 때
수식 / 연산 제어문
  • 대입 연산 : 변수에 값을 넣어주는 것
  • 산술 연산 : 숫자 계산 / 나머지를 구하는 % 연산
  • 증감 연산 : 증가 + 감소 연산
    Count 연산 : 갯수를 세다
  • 비교 연산
  • 논리 연산
  • 분기문
    • 조건식/수식의 결과에 따라 실행 흐름이 분기됨
    • branch
  • 반복문
    • 일정 횟수동안 반복 실행
    • For Loop
    • While Loop
함수 API
  • 캡슐화 : 패키징
  • 코드의 효율적인 사용 / 재사용
  • 함수 단위 모듈화 프로그래밍 : 레고 블럭처럼 끼워 맞춰 쓰는 것

    함수 매개 변수 
    • 함수 실행에 필요한 전달값
    • 함수에 넣어주는 재료(값)

    함수 리턴값
    • 함수 실행 결과 값을 호출자에게 반환
    • 함수를 실항하겠다 (호출, call)
  • Application Programming Interface
  • 두 애플리케이션 간의 서비스
  • 함수의 형태로 제공
  • 잘 조립해서 사용하면 원하는 형태로 사용 가능

 

3) 데이터 타입

  • 범용으로 쓰지 않고 데이터 종류의 전용으로 사용할 수 있게 변수의 데이터 타입을 정해서 씀
  • 속도가 빨라지고 효율이 좋아짐
  • 같은 종류끼리 연산되는 것이 기본
    • 정수 타입
    • 실수 타입
    • 문자 타입
    • Boolean 타입
    • Vector 타입
데이터 타입을 결정해주는 예약어
  • 정수 타입 :Int(Integer)
  • 실수 타입 : float
  • 문자 타입 : string
  • Boolean 타입 : bool
  • Vector 타입 : Vector (특징 : 크기, 방향을 가짐 / 집합 데이터)
Blueprint 데이터 타입 활용
  • Blueprint Actor를 새로 생성
  • 좌측 하단 Variables에 다음과 같은 컴포넌트들을 생성
  • 컴포넌트를 Graph에 가져올 땐 Set으로 추가

 


2. 연산의 종류

1) 대입 연산

 

2) 산술 연산

Add

8

 

Subtract (위부터 아래로 뺀다)

2

Multiply

15

 

Divide (5/3)
  • 몫을 구함

1

 

% (5/3)
  • 나머지를 구함

2

 

3) 증감 연산

  • 3을 변수초기화로 지정해 처음 시작부터 3으로 시작

(좌) 위는 변수초기화가 맞지만, 아래는 아님

 

증가 연산

3씩 계속 증가

감소 연산

2씩 계속 감소

 

Count 연산
  • 갯수를 세는 연산으로, 반복 실행이 기본
  • ++ → Increment int
  • - - → Decrement int
  • === → 데이터 타입까지 같은지 비교

 

 

4) 비교 연산

  • 연산자 : ==, !=. >(크다), >=, <(작다), <=
  • 왼쪽에 변수를 두는 방식을 기준으로 크다/작다
  • 연산에서 !는 부정의 의미를 가짐(Not)
  • 결과는 Bool 데이터로 나옴

 

 

숫자 크기 비교

true

 

문자 크기 비교
  • ==(같은지), !=(다른지)

true

 

5) 논리 연산

  • 비교 연산과 같이 쓰는 것이 일반적
  • Boolean 연산 : True(1) / False(0)
  • 연산자 AND(&&, Ampersand), OR(||, Pipe), NOT(!)

AND : 모두 True일 때, True / OR : 하나만 True여도 True
Ture

 


3. 제어문

  • 프로그램의 실행 흐름 제어

1) 분기문

  • 조건식 / 수식의 결과에 따라 실행 흐름이 분기됨(실행 흐름이 갈라짐)
  • 실행 흐름이 갈라지는 것에 포커스로 분기문이라는 표현을 쓰자
  • 조건문(비교 연산) → If
  • 언리얼 엔진에서는 branch로 사용
  • If나 branch에 사용되는 연산식이 비교문 뿐만이 아닌 일반 산술연산식(+,- 수식)도 사용 가능함

 

 

2) 반복문

  • 일정 횟수동안 반복 실행(시간 개념이 아닌 횟수 반복) → 동시 실행
  • 1초에 30FPS 반복과는 다른 개념 ( ← 이건 일정한 시간 개념이 포함된 개념)
  • For Loop은 언리얼 엔진에서 많이 쓰이지 않음 → 데이터 처리할 때, 주로 많이 씀)
  • 구문이란 제대로 된 문장으로 포함되는 것
    • 구문1 : 시작값(int n = 1;) First Index
    • 구문2 : 실행 조건 (n < 10;) Last Index
    • 구문3 : 변수증감식

 

 

Sequence
  • 가로 방향 실행 흐름을 세로 방향으로 분기


4. 함수

  • FUNCTIONS에서 함수를 만들고 해당 함수 공간(Flow Control)에서 함수를 만들고 Event Graph에 호출해서 연결

False

 

매개변수(Paramter)와 리턴값(Return) 연결
  • 새로운 함수 만들기
  • Parameter를 만들기 위해 Inputs에서 +하기

 

 

  • Outputs도 추가
  • Output에서 True는 옆 체크박스 표시
  • Event Graph에서 FlowValue 함수 꺼내기
  • 원리 


5. 클래스(Class)

클래스(Class)
  • 객체의 분류 : 정의
  • 설계도
  • OOP(Objected Oriented Programming : 객체 지향 프로그래밍) 프로그래밍에서 사용되는 것
인스턴스(Instance)
  • 클래스를 기반으로 마들어진 실제 객체
  • 복제의 개념도 함께
상속(Inherited)
  • 부모 클래스의 특성을 자식 클래스에 전달하는 것
  • 아래는 예시
Parent Class Child Class
Car Class
  • 바퀴 4개, 문 4개, 백미러 2개, 헤드라이트 2개
 SUV Class
  • Car Class 상속
  • 뒷문 바퀴 1개, 루프 박스

Bike Class

  • Car Class 상속
  • 바퀴 2개, 문 0개, 헤드라이트 1개 (상속 받은 것을 사용하지 않고 새로 지정해서 사용. 핸재 것을 우선순위로 함)

 


6. 컴파일과 인터프리트

  • 컴퓨터가 사용할 수 있는 데이터 : 2진수(0,1)
  • 명령어는 영어로 이루어져 있고, 컴퓨터가 알아들을 수 있도록 영어를 2진수로 변환해야 함
  • 이에 대한 두 가지의 방법 → 컴파일 / 인터프리트
  • 컴파일은 통번역 / 인터프리트는 동시통역이라고 생각하면 쉬움
항목 컴파일(Compile) 인터프리트(Interpret)
번역 방식 전체 프로그램을 미리 기계어로 번역 한 줄씩 기계어로 번역하며 실행
실행 속도 실행 전에 번역이 완료되어 속도가 빠름 한 줄씩 실행하므로 속도가 느림
유연성 코드 수정시 전체를 다시 컴파일 해야 함 수정된 부분만 다시 실행 가능
오류 확인 컴파일 과정에서 오류를 사전에 잡을 수 있음 실행해봐야 오류를 알 수 있음
최적화 다양한 최적화가 가능 한 줄씩 실행하므로 최적화가 어려움
디버깅 디버그 정보가 포함될 수 있지만 실행 파일이 커짐 한 줄씩 실행하며 결과를 추적 가능
사용 사례 언리얼 엔진 유니티(가볍기 때문에 이 방식이 가능)

 

'4. 언리얼 엔진(Unreal Engine) 공부 > Unreal Engine 5' 카테고리의 다른 글

23. [UE5] UI Interaction(Widget)  (0) 2024.10.30
22. [UE5] 다른 액터와 캐릭터가 상호작용 하기(Overlap, CutScene, LevelBlueprint)  (1) 2024.10.23
20. [UE5] 블루프린트를 활용한 캐릭터 움직임 제어  (0) 2024.10.14
19. [UE5] 인터랙션 / 충돌체 / 블루프린트 개념  (1) 2024.10.10
18. [UE5] 동영상 Material 만들기  (0) 2024.10.02
  1. 1. 프로그래밍이란 무엇인가?
  2. 1) 알고리즘 / 로직
  3. 2) 프로그래밍 이론
  4. 3) 데이터 타입
  5. 2. 연산의 종류
  6. 1) 대입 연산
  7. 2) 산술 연산
  8. 3) 증감 연산
  9. 4) 비교 연산
  10. 5) 논리 연산
  11. 3. 제어문
  12. 1) 분기문
  13. 2) 반복문
  14. 4. 함수
  15. 5. 클래스(Class)
  16. 6. 컴파일과 인터프리트
'4. 언리얼 엔진(Unreal Engine) 공부/Unreal Engine 5' 카테고리의 다른 글
  • 23. [UE5] UI Interaction(Widget)
  • 22. [UE5] 다른 액터와 캐릭터가 상호작용 하기(Overlap, CutScene, LevelBlueprint)
  • 20. [UE5] 블루프린트를 활용한 캐릭터 움직임 제어
  • 19. [UE5] 인터랙션 / 충돌체 / 블루프린트 개념
스농이
스농이
2024.07.22부터의 기록
  • 스농이
    3D 비주얼 아티스트 성장일지
    스농이
  • 전체
    오늘
    어제
    • 3D 비주얼 아티스트 공부 기록 (78)
      • 1. 콘텐츠 기획 공부 (7)
        • 콘텐츠 기획 [이론] (3)
        • 콘텐츠 기획 [실습] (4)
      • 2. 3D 렌더링 및 생성형 AI 공부 (7)
        • VRED (2)
        • Stable Diffusion & Blender (2)
        • Midjourney & GPT4o (3)
      • 3. 후디니(Houdini) 공부 (16)
        • Houdini [이론] (8)
        • Houdini [실습] (8)
      • 4. 언리얼 엔진(Unreal Engine) 공부 (33)
        • Unreal Engine 5 (26)
        • Automotive Animation 스터디 [기.. (5)
        • Automotive Cinematic 스터디 [심.. (2)
      • 2. 블렌더(Blender) 공부 (15)
        • 지오메트리 노드 [이론] (3)
        • 지오메트리 노드 [실습] (2)
        • Blender [이론 및 실습] (10)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
스농이
21. [UE5] 블루프린트를 위한 프로그래밍 기초

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.