일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- C
- ue5
- 언리얼엔진
- 마야
- 씨플플
- ANIMATION
- reallusion
- UE
- charactercreator
- Programming
- cc4
- iclone
- Costume
- C언어
- 프로그래밍
- character
- unreal
- visualstudio
- autodesk
- blueprint
- 3dmodeling
- maya
- 개발블로그
- 3d
- 애니메이팅
- UnrealEngine
- modeling
- c++
- animating
- coding
- Today
- Total
목록개발일지/UNREAL ENGINE (28)
개발나라 스용공주
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvBp8U/btsDrnqyI6O/HjE4ieW0gy60u8eKm7uKi1/img.png)
이번 글에서 알아볼 지역변수는 아래 사진과 같이 함수에서 내부적으로 사용하는 변수를 의미한다. 지역변수는 해당 변수마다 고유한 영역(자기가 포함되어진 함수 내부)이 있어 그 곳에만 존재한다. 지역변수는 함수가 실행되는 동안에만 유효하고 함수 호출이 완료되면 소멸된다. => 따라서, Stack 메모리 영역에서 저장된다. 더보기 Stack 메모리 영역 : 함수가 임시적으로 자기가 사용하는 결과물을 저장함 (ex. 지역변수, 매개변수 등등 일시적으로 그 상황에서만 사용되고 함수가 완료되면 소멸) Heap 메모리 영역 : 안정적이고 프로그래머가 직접적으로 값을 할당해주고 직접적으로 해지까지 해줘야하는 값을 저장함
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dNdw7m/btsDrIgWFoC/T5bPn2lj2N5Pu0ZinQD500/img.png)
블루프린트에서 함수를 만드는 방법은 여러가지가 있다. 아래 사진과 같이 레벨 블루프린트 같은 블루프린트의 좌측에서 함수를 추가하는 방법도 있다. 하지만 이러한 방법은 C++에서 멤버함수로 취급하는 것과 같은 함수이다. 더보기 함수를 사용하게 되면 기능별로 묶어두어 찾아서 사용하는데 편리할 수 있다. 반복해서 사용될 기능을 함수로 만들면 좋다. 함수로 한번에 묶어서 관리하면 나중에 수정 사항이 생겼을 때 해당 함수만 수정하면 되어서 복붙한 코드에 대해 수정할 일이 생겨도 함수만 수정하면 된다. (함수가 아니라 복붙해서 코드를 여러군데 뿌려두었을 경우 하나하나 수정하다가 오류가 날 수 있음) 일반적인 함수를 만들고싶다면 다음과 같이 블루프린트 => 블루프린트 함수 라이브러리의 순으로 하여 만들어줄 수 있다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d5JMPw/btsDxNnH0HY/92jfjVA0B2ywAVqZ6CNx20/img.png)
블루프린트에는 커스텀 이벤트 (Custom Event)가 있는데 이 커스텀 이벤트는 함수랑 비슷하다고 생각한..다 어떤 느낌에서 비슷하냐면 함수처럼 일정 기능을 하도록 만들어둔 뒤 그 함수를 필요한 곳에 갖다쓰면 그 함수의 기능을 하나하나 작성하지 않아도 그 함수의 기능을 사용할 수 있는 점에서 비슷하다. 아래 사진과 같이 커스텀 이벤트를 검색해준다. 그럼 아래 사진과 같이 생성되는데 사용하고자하는 이름을 작성하고 BeginPlayEvent와 같이 이 이벤트를 실행하였을 때 작동할 기능의 노드를 짜준다. 아래 사진과 같이 이 이벤트를 실행하면 Bye 라는 문구가 출력되도록 만들었다. 그래서 키보드 1을 누르면 Hello가 출력되고 그 이후에 Print Bye 이벤트를 함수 호출의 개념으로 호출하여 출력하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OnR6z/btsDqMDQgMH/JvhoPGe5kXBy5KbtUlL2Qk/img.png)
오늘 알아볼 형태는 열거형이다. 열거형은 숫자로 일일히 우리가 표현하고자 하는 상태의 값을 지정하는 것이 아니라 열거형으로 분리하여 우리가 표현하고자 하는 상태의 이름을 문자로서 표현(지정)해주는 것이다. 열거형의 장점은 형식 자체는 정수와 크게 다른 점은 없지만 우리가 일일히 코딩해주지 않고도 원하는 숫자에 그에 맞는 이름을 붙여서 사용해주는 것이 유용하다. 열거형은 아래 사진과 같이 만들 수 있다. 만든 열거형에 들어가서 Idle, Moving, Attack 등의 상태를 만들어줄 것이다. 그럼 이제 이 3가지 상태는 EState 안의 하나의 타입으로 분류 된다. 열거형을 만들어준 뒤 저장 후 블루프린트로 돌아와서 해당 열거형을 담을 변수를 만들어주고 변수 유형을 방금 생성한 열거형인 EState로 설..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dgRmJ5/btsDrIT5F4Z/bZEJfVlfVjVnpWSKIe6mvK/img.png)
1. Gate 흐름을 제어해주는 역할로 댐이 물을 담아뒀다가 필요에 의해 수문을 여는 것과 비슷하게 볼 수 있다. Start Closed가 체크되어져있으므로 그냥 Enter를 누르면 Exit에 있는 노드가 실행되지 않고 Open으로 한번 열어준 뒤 Enter를 누르면 실행된다. 그리고 Close를 누르고 다시 Enter를 눌러주면 Exit 이후가 실행되지 않고 Toggle의 경우 한번은 Open이고 한번은 Close고 이 두개를 반복하여 실행하기 때문에 Open의 순번일 때 Exit 이후의 노드가 실행되고 Close의 순번일 땐 Exit가 실행되지 않으므로 아무것도 실행되지 않는다. 실행의 흐름을 통과시키다 막아야될 때 사용 가능하다. 2. Multi Gate 위에 한개의 수문으로 이루어진 댐 같은 Ga..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxZKw5/btsDod7yUtj/RhFZCUsQZfFBVLUn2b5TdK/img.png)
C++에서는 for문, while문 등의 반복문이 있다. 마찬가지로 언리얼 블루프린트에서도 반복문의 기능을 하는 것들이 있는데 이번 글에서 설명할 것이다. 1. While loop While loop는 Condition 핀에 만족해야할 조건의 노드를 연결하고 Loop Body에 반복 실행할 식의 노드를 연결해주고 반복문이 끝난 뒤 실행할 노드를 Completed에 연결해준다. 2. For loop For loop는 일반 For문처럼 초기값 중단값을 넣어준다. First Index에 반복문을 시작할 숫자를 넣어주고 Last Index에 반복문이 끝나는 숫자를 넣어준다. 그리고 Loop Body에 While Loop처럼 반복하여 실행할 식을 작성해주고 Index는 나온 인덱스 값을 의미하고 Complete는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IldBe/btsDnaJ87BX/kH0YkKJkRf8WMoccI4CGUK/img.png)
1. Max Max는 핀을 통해 연결되어져있는 값 중 가장 큰 값을 배출해주는 역할을 한다. 이 기능은 주로 아래 사진과 같이 체력(Hp)가 키보드 1을 누르면 10씩 깎이는데 체력이 0 이하로는 깎일 필요가 없을 때 아래와 같이 현재 체력과 0이라는 숫자를 비교했을 때 0이 더 커서 0을 배출해야할 때 활용 가능하다. 2. Min Min는 핀을 통해 연결되어져있는 값 중 가장 작은 값을 배출해주는 역할을 한다. 이 기능은 주로 아래 사진과 같이 체력(Hp)가 키보드 1을 누르면 10씩 더해지는데 체력이 200 이상으로는 추가될 필요가 없을 때 아래와 같이 현재 체력과 200이라는 숫자를 비교했을 때 200이 더 작아서 200을 배출해야할 때 활용 가능하다. 3. Clamp Clamp는 크기가 판단될 값..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8arXV/btsC8P8Uc9h/3x2ipQsbYackfmAaIz9Cr0/img.png)
이번 시간엔 논리연산에 대해 알아볼 것이다. C++에 있는 논리연산자와 동일하게 생각하면 받아들이기 쉽다. 1. AND AND는 A와 B 모두 맞아야 True이고 하나라도 틀리면 False이다. C++의 &&와 같은 의미이고 비교 조건의 상황을 추가할 수 있는 핀 추가가 가능하다. 2. OR OR는 A나 B 둘중에 하나만 맞아도 True이고 둘다 틀려야지만 False인 상황이다. C++의 ||와 같은 의미이고 비교 조건의 상황을 추가할 수 있는 핀 추가가 가능하다. 3. NOT NOT은 입력값이 참이면 거짓을 뱉어내고 입력값이 거짓이면 참을 뱉어낸다.