프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 자바 SDK 다운로드 및 설치 테스트 프로그램 제작 및 실행 밑 사이트에서 JAVA 를 받을 수 있습니다. JAVA SE의 최신버전을 받으면 됩니다. https://www.oracle.com/java/technologies/ Oracle Java Technologies | Oracle Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders. www.oracle.com Java Path 설정 Java SDK에서 제..

  • 자바 언어의 탄생 Green Project = 1991년 Sun사의 James Gosling에 의해 개발이 시작되어 초기에 개발된 언어를 Oak라고 함 JAVA, Hot Java Project - 1994년, World Wide Web 등장 - Oak 에서 Java 로 명칭 변경 - Jaca, Hot Java Project 시작 Java Beta1, Beta2 - Netscape 지원 결정 - Java Beta1, beta2 발표 Java 정식버전 발표 - 1995년 1.0 ... - 2000년 java 1.3 발표, java언어 완성기 - 2004년 java 5 발표 이때부터 버전 번호 체계가 변경 - 2006년 java6 발표 자바 언어의 종류 Java 2 Platform, Standard Editi..

    JAVA

    JAVA 언어 기초 NEW

    2022.08.08
    댓글
  • 순위 기능 1 캐릭터 이동 2 스테이지 3 몬스터 4 보스 몬스터 5 UI 5 스테이지 함정 6 스테이지 상점 7 아이템 데이터베이스 & 조합 8 스테이지 & 몬스터 무작위 스폰 9 멀티플레이 스프린트로 재구성 스프린트 사용자 스토리 작업 캐릭터 이동 플레이어블 캐릭터의 기본 이동과 모션을 제작합니다. 플레이어 캐릭터 블루프린트 설계 애니메이션 추가 스테이지 스테이지를 무작위로 생성하여 다양한 스테이지를 구성합니다. 스테이지 디자인 UI추가 무작위 함수 구성 몬스터 적 NPC의 기본 이동과 모션을 제작합니다. NPC 블루프린트 설계 애니메이션 추가 보스 몬스터 보스 NPC 의 기본 이동과 모션을 제작합니다. NPC 블루프린트 설계 애니메이션 추가 UI 플레이어가 바라보는 UI의 데이터를 참조합니다 UI ..

  • 1. 제작할 게임을 구상 방식 [ 로그라이크 ] 게임의 목적 [ 게임 플레이의 과정을 통한 내용이해로 만족도 충족 ] 뷰 [ 쿼터 뷰 ] 성장방식 [ 아이템 흭득을 통한 스테이터스 재분배 ] 상점등 아이템 재분배를 위한 지형 생성 스테이지 내부의 함정 등 플레이어가 탐험 형식으로 풀어나갈 수 있도록 방법을 제시 아이템 [ 무작위 생성 ] 스테이지 [ 무작위 생성 ] 몬스터 [ 스테이지 종류 별 무작위 생성 ] 게임 클리어 [ 보스 몬스터를 처치하여 최종 목표물에 도달 ] - 설계 과정중 필요 시 재수정하여 기입함 - 2. 구상목록의 필요한 지식. [ 기술적 ] 1. 언리얼 엔진에서 무작위 아이템 생성을 어떻게 구현 해야 하는가? 2. 스테이지의 무작위 생성을 어떻게 구현 해야 하는가? 3. 몬스터와 아이..

  • https://inradestrt.tistory.com/18 언리얼 엔진 5 케릭터 애니메이션 적용하기 https://inradestrt.tistory.com/15?category=1033838 언리얼 엔진 5 캐릭터 이동하게 만들기 블루 프린트 클래스 생성 후 이름 설정합니다. 아무 이름이나 붙여서 블루 프린트를 생성하고 생성된 블루프린트를 inradestrt.tistory.com 위 링크에서 이어서 진행합니다. 우선 공격모션으로 사용할 모션을 선택합니다. 그리고 모션파일에 오른쪽 마우스 버튼을 클릭하고 생성 -> 애님몽타주 생성을 해줍니다. 그럼 위 작은 이미지와 같이 몽타주 파일이 생성됩니다. 몽타주 파일을 열어줍니다. 위와같은 창이 열리는데, 여기서 공격모션의 종료 시점에 OnAnimationAt..

  • https://inradestrt.tistory.com/15?category=1033838 언리얼 엔진 5 캐릭터 이동하게 만들기 블루 프린트 클래스 생성 후 이름 설정합니다. 아무 이름이나 붙여서 블루 프린트를 생성하고 생성된 블루프린트를 더블클릭하면 나오는 그래프창 에서 컴포넌트 추가를 눌러서 원하는 도형이 inradestrt.tistory.com 여기서 이어서 진행 합니다. 만들어놓은 엑터 세팅에 큐브를 지우고 좌측 컴포넌트 창에서 메시를 누르고 받아온 애니메이션 케릭터 파일의 스켈레탈 메시를 적용시킵니다. 그러면 원하는 케릭터 파일이 적용됩니다. 적용 후에 동작사항을 확인하고, 애니메이션 블루프린트를 위 이미지와 같이 만들어줍니다. 저는 콘텐츠 -> Blueprint -> anaimations 파..

카테고리
작성일
2022. 8. 8. 18:40
작성자
WDmil
728x90

자바 SDK 다운로드 및 설치

테스트 프로그램 제작 및 실행

 

밑 사이트에서 JAVA 를 받을 수 있습니다. JAVA SE의 최신버전을 받으면 됩니다.

https://www.oracle.com/java/technologies/

 

Oracle Java Technologies | Oracle

Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.

www.oracle.com

작성일 220808 기준 사이트 최신버전

 

Java Path 설정

Java SDK에서 제공되는 실행 파일들을 경로에 관계없이 사용하기 위해 path설정을 해주어야 합니다.

실행 검색 -> 환경변수 -> 환경변수 -> 시스템 변수 -> Path -> 새로만들기 -> 자바 경로 의 bin 폴더

만약 설정이 잘 되었다면 택스트 파일로 위와 같이 친 다음 바탕화면에 아무 폴더나 만들어서 .java확장자로 저장 해주고,

위와 같이 윈도우 파워셀을 통해 경로 안의 java파일을 컴파일 해주었을 때 동작되면 성공. 안된다면 재시도 해보아야 합니다.

위와 같이 실행되면 성공.

728x90

'JAVA' 카테고리의 다른 글

JAVA Documentation  (0) 2022.08.08
JAVA 프로그램  (0) 2022.08.08
EClipse 개발 환경 구축  (0) 2022.08.08
JAVA 프로그램 실행 구조  (0) 2022.08.08
JAVA 언어 기초  (0) 2022.08.08
카테고리
작성일
2022. 8. 8. 18:00
작성자
WDmil
728x90

자바 언어의 탄생

 

Green Project = 1991년 Sun사의 James Gosling에 의해 개발이 시작되어 초기에 개발된 언어를 Oak라고 함

 

JAVA, Hot Java Project

 

- 1994년, World Wide Web 등장

- Oak 에서 Java 로 명칭 변경

- Jaca, Hot Java Project 시작

 

Java Beta1, Beta2

 

- Netscape 지원 결정

- Java Beta1, beta2 발표

 

Java 정식버전 발표

 

- 1995년 1.0

...

- 2000년 java 1.3 발표, java언어 완성기

 

- 2004년 java 5 발표 이때부터 버전 번호 체계가 변경

 

- 2006년 java6 발표

 

자바 언어의 종류

 

Java 2 Platform, Standard Edition (J2SE)

 

- 자바의 가장 기본이 되는 Edition

- 모든 자바 프로그램은 J2SE 에서 제공되는 컴파일러와 JRE를 사용한다.

 

Java 2 Platform Micro Edition (J2ME)

 

- 모바일 장비를 위한 Edition

- 휴대폰에 가장 적합한 버전

- 개발 시 사용할 J2SE의 버전은 1.3 이나 1.4 버전이 가장 적합함

[ 일반 휴대폰 일 경우 {J2SE 사용 스마트폰} 현재 자바의 최신버전으로 개발을 하게되면 실행되는 제품이 무겁고 메모리를 많이 먹게 되는 문제가 있어서 더 낮은 버전을 이용하여 실행 환경을 구성하게 됨. ]

- LG U+ : J2ME의 라이선스를 구매해 탑제함.

- SKT : J2ME 의 상당 부분을 국내 시장에 맞게 재 프로그래밍 하여 SK-VM이라는 이름으로 사용함.

- WIPI : Java언어를 기반으로 만들어진 국내 이동통신 3사 통합 플랫폼. J2ME와 유사한 부분이 상당히 많지만 다른점도 가지고 있다.

- Android : 스마트폰 전용 운영체제, J2ME 제품 군에는 속하지 않으며, Java 기반으로 만들어진 새로운 운영체제 임.

 

Java @ Platform, Enterprise Edition (J2EE)

 

- 기업용 환경에서 서비스 하기 위한 어플리케이션을 개발할 때 사용되는 버전

- 기본 J2SE가 필요하며 최신 버전의 J2SE를 사용하는 것을 권장한다.

- 주로 Web Application Service 를 만들 때 사용되며 그 밖에 다양한 기술들을 지원한다.

- Servlet : Web Service 를 위해 제공되는 기술.

- JSP ( Java Server Page) Web Sefvice 를 위해 제공되는 기술, 복잡한 Servlet 프로그래밍을 쉽게 할 수 있도록 각종 ㄱ시술이 제공됨, 내부적으로는 Servlet  으로 변환되어 실행됨.

- EJB (Enterprise Java Beans) : Java에서 제공되는 분산 컴포넌트 기술로 비즌니스 로직이나 데이터, 메시지를 처리하는데 사용되어 진다. 전체 프로그램 내에서 작은 부품들로 생각하면 된다.

- RMI (Remote Method Invocation) : 프록시를 써서 원격에 있는 Java 객체의 메서드를 실행시키는 기술. Microsoft 의 RPC와 유사한 기능.

- JNDI (Java Naming Directory Interface) : 자바 기술로 만들어진 객체에 이름을 붙여 찾을 수 있도록 단일 인터페이스를 제공

- JDBC (Java Database Connector) : 여러 종류의 데이터베이스 시스템에 접근하는 단일 인터페이스를 제공

- JCA (Java Connector Architecture) : 서로 다른 종류의 플랫폼을 통합할 수 있도록 독립적인 인터페이스를 제공

- JMS ( Java Message Service) : 여러가지 메시징 시스템에 대한 플랫폼 독립적인 인터페이스를 제공

 

자바언어의 특징

 

단순성

- 자바는 Cm C++ 언어를 기반으로 탄생하여 기존의 개발자들에게 문법을 새로 공부하지 않고 접할 수 있다는 특징을 가지고 있다.

 

- 자바는  C, C++  언어에서 사용하고 복잡한 부분을 제거하여 언어의 복잡성을 제거하였다.

preprocessor, 포인터, 다중상속, 구조체, 전역변수, goto문, 연산자 중복 등.

 

-Garbage Collection 을 제공하여 개발자로 하여금 메모리 고나리에 대한 부분을 개발자가 직접 하지 않아도 된다.

 

객체 지향

- 자바는 객체 지향 프로그래밍 기법 ( OOP : Object Oriented Programming) 을 사용한다. 개발자가 만드는 모든 프로그래밍 코드들은 자동차의 부품처럼 따로 만들어져서 하나로 조림되는 형태로 취한다. 이러한 부품 을 객체 라고 부르며 수 많은 객체들의 조합으로 하나의 프로그램이 만들어진다. 이러한 객체들은 서로 간에 독립적으로 동작하며 서로에게 명령을 주고 받을 수 있는 인터페이스를 두어 유기적으로 동작하게 한다.

 

네트워크를 통한 분산 환경 시스템 개발 지원

- 자바는 각종 네트워크에 관련된 라이브러리를 지원한다. 이러한 라이브러리를 통해 서버- 클라이언트 구조의 서비스 개발이 가능하다. 또한 다른 컴퓨터에 있는 객체들을 원격으로 호출하여 사용할 수 있는 기능도 지원된다.

 

Java Virtual Machine ( JVM )

- 자바 언어로 만들어진 프로그램은 운영체제와 직접적으로 동작하지 않고 중간에 JVM 이라는 것을 통해 실행이 된다.

C, C++로 만들어진 프로그램은 프로그램을 제품으로 만들 때 사용한 컴퓨터에서만 동작이 가능하지만, 자바는 프로그램을 실행하는 프로그램이 운영체제 별로 제공이 되고 개발자가 만든 프로그램은 이러한 JVM과의 연동을 통해 프로그램이 실행이 된다. JVM은 자바 개발 지원 사이트에서 다운로드가 가능하며 설치만 하면 된다. 이렇게 함으로써 개발자가 만든 프로그램은 서로 다른 운영체제에서도 실행이 가능하다.

 

플랫폼이 독립적이다.

- 기존의 프로그래밍 방식에서는 개발자가 만든 프로그램은 각 운영체제에 맞게 각각의 제품을 만들어 줘야한다. 자바는 JVM을 통해 이러한 불편함을 해소 하였다. 프로그램을 실행하기 위한 프로그램인 JVM을 각 운영체제별로 만들어 이미 제공되고 있으며 프로그램은 이러한 JVM위에서 동작을 하게 된다. 그로써 개발자는 한번 만든 프로그램을 여러 운영체제에서 실행 시킬 수 있도록 제공되어 지고 있다.

 

다중 쓰레딩

- 하나의 프로그램에서 여러 개의 프로세서를 사용하여 동시에 여러개의 작업을 수행 할 수 있는 환경을 제공한다.

 

보안성

- Applet과 같은 프로그래밍 방식을 이용하면 실행되는 프로그램의 코드들은 서버 컴퓨터에 있고 프로그램 실행시 실행에 필요한 정보를 클라이언트 프로그램을 보내어 JVM을 통해 프로그램을 실행 시킬 수 있는 환경을 제공 할 수 있다. 즉, 프로그램이 실행에 필요한 정보와 이러한 정보를 바탕으로 싱행을 시키는 JVM을 분리하여 보안성을 향상 시킬 수 있다.

 

 

요약정리

- 자바언어는 James Gosling에 의해 만들어짐

 

자바 버전은 

J2SE

J2ME

J2EE

3가지 버전이 있다.

 

자바언어의 특징 : 단순성, 객체지향, 네트워크 , JVM, 플랫폼의 독립성, 다중 쓰레딩, 보안성

728x90

'JAVA' 카테고리의 다른 글

JAVA Documentation  (0) 2022.08.08
JAVA 프로그램  (0) 2022.08.08
EClipse 개발 환경 구축  (0) 2022.08.08
JAVA 프로그램 실행 구조  (0) 2022.08.08
자바 개발환경 구축하기  (0) 2022.08.08
작성일
2022. 7. 11. 16:44
작성자
WDmil
728x90
순위 기능
1 캐릭터 이동
2 스테이지
3 몬스터
4 보스 몬스터
5 UI
5 스테이지 함정
6 스테이지 상점
7 아이템 데이터베이스 & 조합
8 스테이지 & 몬스터 무작위 스폰
9 멀티플레이 

스프린트로 재구성

스프린트 사용자 스토리 작업
캐릭터 이동 플레이어블 캐릭터의 기본 이동과 모션을 제작합니다. 플레이어 캐릭터 블루프린트 설계
애니메이션 추가
스테이지 스테이지를 무작위로 생성하여 다양한 스테이지를 구성합니다. 스테이지 디자인
UI추가
무작위 함수 구성
몬스터 적 NPC의 기본 이동과 모션을 제작합니다. NPC 블루프린트 설계
애니메이션 추가
보스 몬스터 보스 NPC 의 기본 이동과 모션을 제작합니다. NPC 블루프린트 설계
애니메이션 추가
UI 플레이어가 바라보는 UI의 데이터를 참조합니다 UI 데이터 참조 구성
DB 설계
     

- 필요시 재수정 추가 -

728x90

'언리얼 엔진 5 프로잭트1 > 1 단계 계획과정' 카테고리의 다른 글

게임 설계  (0) 2022.07.11
작성일
2022. 7. 11. 16:16
작성자
WDmil
728x90

1. 제작할 게임을 구상

 

방식 [ 로그라이크 ]

게임의 목적 [ 게임 플레이의 과정을 통한 내용이해로 만족도 충족 ]

뷰 [ 쿼터 뷰 ]

성장방식 [ 아이템 흭득을 통한 스테이터스 재분배 ]

상점등 아이템 재분배를 위한 지형 생성

스테이지 내부의 함정 등 플레이어가 탐험 형식으로 풀어나갈 수 있도록 방법을 제시

아이템 [ 무작위 생성 ]

스테이지 [ 무작위 생성 ]

몬스터 [ 스테이지 종류 별 무작위 생성 ]

게임 클리어 [ 보스 몬스터를 처치하여 최종 목표물에 도달 ]

 

- 설계 과정중 필요 시 재수정하여 기입함 -

 

2. 구상목록의 필요한 지식.

 

[ 기술적 ]

1. 언리얼 엔진에서 무작위 아이템 생성을 어떻게 구현 해야 하는가?

2. 스테이지의 무작위 생성을 어떻게 구현 해야 하는가?

3. 몬스터와 아이템의 무작위 생성을 어떻게 구현 해야 하는가?

4. 스테이지의 무작위 생성 과정에서 스테이지의 함정과 퍼즐을 어떻게 구현 해야 하는가?

5. 몬스터와 케릭터의 모션, 이펙트를 어떻게 넣어야 하는가?

5. 게임 내부의 표현을 위한 UI는 어떻게 표현해야 하는가?

 

[ 논리적 ]

6. 보스 몬스터와 일반 몬스터의 차이점을 어떤걸 넣어야 하는가?

7. 게임의 상업적 수익을 위한 방법은 무엇을 준비해야 하는가?

8. 아이템의 독창성을 어디까지 허용하여 작업해야 하는가?

9. 플레이어에게 제작자는 무엇을 전달하고 싶은가?

 

728x90
작성일
2022. 7. 2. 21:26
작성자
WDmil
728x90

https://inradestrt.tistory.com/18

 

언리얼 엔진 5 케릭터 애니메이션 적용하기

https://inradestrt.tistory.com/15?category=1033838 언리얼 엔진 5 캐릭터 이동하게 만들기 블루 프린트 클래스 생성 후 이름 설정합니다. 아무 이름이나 붙여서 블루 프린트를 생성하고 생성된 블루프린트를

inradestrt.tistory.com

위 링크에서 이어서 진행합니다.

 

우선 공격모션으로 사용할 모션을 선택합니다.

그리고 모션파일에 오른쪽 마우스 버튼을 클릭하고 생성 -> 애님몽타주 생성을 해줍니다.

그럼 위 작은 이미지와 같이 몽타주 파일이 생성됩니다.

몽타주 파일을 열어줍니다.

위와같은 창이 열리는데, 여기서 공격모션의 종료 시점에 OnAnimationAttackEnd 라고 하나의 마커를 표시 해 줍니다.

이로써 해당 에니메이션을 재생하고 나면 공격이 종료되었다는 신호를 받을수 있게 됩니다.

마커를 표시 하였으면, 우선 캐릭터 블루프린트로 이동합니다.

캐릭터 블루프린트에서 커스텀 이벤트를 하나 생성 해 줍니다. 현재 만들어 놓은 것은 OnAnimendAttack이라고 이름 지어 놓았습니다.

 

그 후에 콘텐츠 브라우저에서 만들어 놓았던 캐릭터 애니메이션 블루프린트로 이동 해 줍니다.

 

케릭터 블루프린트를 열어줍니다.

 

캐릭터 에니메이션 BP에서 지정된 에니메이션 재생에 대한, Notify를 생성하여 만들어 놓았던 마커를 호출합니다.

마커를 가져오는 오브젝트, 즉, 위 OnAnimationAttackEnd 가 호출될 폰 이 무엇인지 지정해주는 Try Get Pawn Owner을 호출합니다.

형변환 시켜야 할 블루프린트가 무엇인지 알려주어야 하기에 해당되는 블루프린트를 호출해줍니다.

위에 지정된 조건을 만족 하였을 경우 어떠한 이벤트를 호출하게 될 것인지 지정해줍니다.

다시해석해보면,

Try Get Pawn Owner 의 지정된 타깃에서 Notify [ OnAnimationAttackEnd ] 라는 것이 발생 하였을 때, MoveCheartorBP 라는 블루프린트에 접근을 하여, On Anim End Attack 이라는 이벤트를 동작 시킵니다. 라고 해석 할 수 있습니다.

 

다시 돌아가서 MoveCheartorBP로 이동해줍니다.

 

열어준 블루프린트의 이벤트 그래프에서 컴포넌트 창 -> 변수 명에서 IsAttacking 변수를 선언하고 변수는 BOOL로 해줍니다.

여기서 IsAttacking 이라는 Bool 변수로 공격중인지 아닌지를 판별할 수 있게 만들어야 합니다.

만들어낸 커스텀 이벤트에 IsAttacking 에 대한 SET을 바꾸어 줍니다. 즉, 커스텀 이벤트가 동작 할 시에 [ 위 블럭상 동작사항으로 이야기하면, 애니메이션 끝에 찍어놓았던 마커가 호출 되었을 때 ] IsAttacing을 false로 바꾸어 줍니다.

Branch 는 if문과 동작방법이 같습니다.

 

즉, 마우스 왼쪽 버튼을 눌렀을 때  첫번 째 Branch에서 Is Attacking과 비교를 합니다. 처음에는 Is Attacking이 false이기 떄문에 값이 달라 False가 출력됩니다. 두번째 Bracnch에서는 캐릭터 무브먼트 -> Is Falling을 검사하여 캐릭터가 떨어지고 있는지 검사합니다. 떨어지고 있지 않고, False가 반환되고 있기 때문에 False,true 로 False가 반환됩니다. 그 후 Set에서 Is Attacking이 True로 변환되고, 애니메이션이 출력됩니다.

 

애니메이션이 출력되는 동안 Is Attacking이 참 이기 때문에, 마우스 왼쪽 버튼을 눌러도 Branch에서 True로 가기 때문에, 동작하지 않습니다.

동작사항 확인시에도 마우스 왼쪽버튼을 계속 눌러도 공격이 종료될 때 까지는 공격이 안되는것을 알 수 있습니다.

이와같은 방법으로 점프 모션도 한번만 출력되게 만들 수 있습니다.

728x90
작성일
2022. 7. 2. 14:58
작성자
WDmil
728x90

https://inradestrt.tistory.com/15?category=1033838 

 

언리얼 엔진 5 캐릭터 이동하게 만들기

블루 프린트 클래스 생성 후 이름 설정합니다. 아무 이름이나 붙여서 블루 프린트를 생성하고 생성된 블루프린트를 더블클릭하면 나오는 그래프창 에서 컴포넌트 추가를 눌러서 원하는 도형이

inradestrt.tistory.com

여기서 이어서 진행 합니다.

만들어놓은 엑터 세팅에 큐브를 지우고 좌측 컴포넌트 창에서 메시를 누르고 받아온 애니메이션 케릭터 파일의 스켈레탈 메시를 적용시킵니다.

그러면 원하는 케릭터 파일이 적용됩니다.

 

적용 후에 동작사항을 확인하고, 애니메이션 블루프린트를 위 이미지와 같이 만들어줍니다.

저는 콘텐츠 -> Blueprint -> anaimations 파일을 만들어 해당 파일 안에 만들어 주었습니다.

그 후에 애니메이션 블루프린트 파일을 더블클릭하면 이런 창이 열리게 되는데, 여기에서 원하는 애니메이션을 적용 할 수 있습니다.

에셋 브라우저 창에서 에니메이션을 적용시켜 올려줄 수 있고, 조금더 고등 에니메이션을 적용 하기 위해서는.

빈 공간을 클릭하고 새 스테이트 머신 추가 를 찾아 추가해줍니다.

그 후에 보시는 바와 같이 스테이트 머신과 최종 에니메이션 포즈를 연결 해 줍니다.

그리고 스테이트 머신을 더블 클릭하면, 

이렇게 창이 바뀌게 되는데, 요 창에서 원하는 에니메이션의 동작사항을 만들어 줄 수 있습니다.

간단하게 대기모션, 그리고 달리는 모션을 적용 해 줍니다.

대강 위 이미지와 같이 에셋 브라우저에서 클릭을 유지한 채로 끌고와서 놓아주면 배치가 됩니다.

Entry 의 화살표를 클릭하고 유지한채로 idle에 끌어다 놓으면 위와같이 연결되고 idle의 테두리를 클릭하고 유지한채로 run에 끌고가면 위와같이 연결됩니다. 상단 이미지의 3번째 이미지와 같이 연결 해 줍니다.

배치를 완료한 모습

이렇게 배치가 되었다면, 이제 애니메이션의 구동방식에 대해 생각해보아야 합니다.

 

우리가 해야할 애니메이션의 동작사항은

Entry -> idle 로 이동하여 기본 대기상태로 동작하다가. 캐릭터의 이동이 감지되면, run으로 이동하고 이동이 감지되지 않으면, 다시 idle로 이동해야 합니다.

즉,

캐릭터 대기 -> 이동 -> 대기

 idle -> run -> idle 로 이동합니다.

 

조건식을 추가해봅시다.

저 동그란 모양을 더블클릭하면 조건식을 추가하는 창으로 이동합니다.

위 이미지와 같이 Get Owning Actor 을 받아와 동작하는 엑터를 가져옵니다. 해당 엑터가 어떠한 행동을 하면 해당되는 행동에 대한 데이터를 받아올 수 있습니다. 타깃은 self임으로 자기자신을 의미합니다.

우리는 가져온 엑터에 대한 속도를 가져와야하니 Velocity를 Get하여 타깃의 속도를 가져옵니다.

가져온 타깃의 속도는 Vector값으로 리턴되기 때문에 Vector 을 리턴시키는걸 일정 값으로 바꿔주어야 합니다.

Vector Length를 통해 받아온 Vector값을 길이로 구해주어 속도값을 float로 받아옵니다.

이때 정지해있을 때의 리턴값은 0이고 이동하면 무조건 0.1보다 커짐으로 비교를 0.1로 추가해줍니다.

 

가져온 데이터가 0.1보다 크거나 같으면 결과값에 true를 반환시켜줍니다.

이제 우리는 idle에서 run으로 이동하는 조건을 추가하였습니다.

반대로 run에서 idle로 이동하는 조건을 추가해봅시다.

다시 run에서 idle로 가는 조건문을 더블클릭 해주고,

run과 가져올 데이터값은 같으니 똑같은 블루프린트를 복사 붙여넣기 해줍니다.

즉, 해당 이미지와 같이 만들어지게 됩니다. 위 run으로 이동하는 조건값이 크거나 같음 임 으로 다시 idle로 돌아가는 조건을 0.1보다 작음으로 바꾸어 줍니다.

위 영상과 같이 나온다면 성공입니다.

이렇게 애니메이션이 출력될 수도 있는데, 이것은 애니메이션 데이터에 캐릭터의 무브먼트가 같이 포함되어 있어서 발생하는 일입니다.

 

문제되는 애니메이션은 달리기 임 으로 달리기 파일을 찾아 더블클릭 해줍니다.

에셋 브라우저에서 찾아도 되고 본문 창에서 ctrl + space 를 눌러서 애니메이션 파일을 검색해도 좋습니다.

그러면, 열심히 달려나가는 케릭터를 보실 수 있는데, 여기서 좌측 에셋 디테일 창에서, 루트 강제 잠금을 체크해주시면 됩니다.

그러면 이렇게 공중에 떠서 약간 위를 바라보고 있게 되는데, 

좌측 디테일 창에서 루트모션 강제잠금위의 루트모선 루트 락 의 고정 위치를 에니메이션 첫 시작부분으로 설정해 주시면 됩니다.

그리고 세이브 후 동작을 하면 정상동작이 이루어 집니다.

728x90