본문 바로가기

전체 글

(150)         글쓰기    
충돌(Collision) 처리하기 콜리전 생성하기 BP_Bullet를 열어 Components +Add후 BoxCollision을 추가하고 이름을 BoxCollision으로 해줍니다. BoxCollision은 리전 처리를 위해서는 콜리전이 Root위치어야 합니다. DefaultSceneRoot위치로 드래그 해줍니다. Cube를 드래그해서 BoxCollision의 자식으로 넣어줍니다. 뷰포트에서 보면 Cube와 BoxCollision의 사이즈가 맞지 않습니다. Bullet Scale을 변경했기 때문입니다. Collision의 Shape>BoxExtent를 다음과 같이 변경해서 맞춰줍니다. 프로젝트 세팅스를 열어 Engine>Collision탭에서 Object Channels> New Object Channel을 클릭해 새채널을 추가합니다...
적 Enemy 만들기 이제 적을 만들어 보겠다 블루프린트 폴더에 +Add후 블루프린트클래스/액터/ 이름 BP_Enemy로 블루프린트폴더에 저장한다. BP_Enemy열고 컴포넌트 +Add Cube를 추가해준다. BP_Enemy 열고 My Blueprint탭에서 변수+ 클릭히 moveSpeed(Float)를 추가한뒤 컴파일후 디폴트값을 800으로 한다. BP_Bullet에서 이벤트그래프를 카피해서 복붙해준다. 잘보면 모든 노드의 Target이 self이기때문에 가능하다. 방향은 Enemy를 생성할때 변경할것이므로 여기서는 이대로 마친다. Enemy공장액터 제작하기 Enemy도 총알과 마찬가지로 레벨에서 생성한다. BP_EnemyFactory이름은 블루프린트클래스를 부모는 액터로 생성해준다. 이 블루프린트는 에너미만 생성하기 때문..
총알 만들기 총알은 마우스 좌클릭을 하면 자동으로 생성되어 발사될것이다. 이후 자동으로 움직이게 된다. 유저의 키입력으로 움직이지 않으므로 부모클래스는 Pawn이 아니라 Actor면 충분하다. ContentDrawer를 열고 +Add를 눌러 Blueprint Class를 선택후 부모로 Actor를 선택한후 이름을 BP_Bullet로 Blueprints폴더에 저장한다. BP_Bullet를 열어 Add Component 버튼을 클릭하고 기본 외형(Base Shape)중에서 Cube를 선택하여 뷰포트에 끌어다 놓고 Scale을 다음과 같이 한다. EventGraph를 열어 다음과 같이 만들어 주고 컴파일 해준다. BP_Player와 비슷하다. 테스트를 위해 LevelEditor 뷰포트에 BP_Bullet를 배치하고 플레이..
Player만들기 컨텐트드러워의 +Add를 클릭하고 우클릭후 블루프린트클래스를->Pawn->이름을 BP_Player로 한후 Blueprints폴더에 저장합니다. Pawn은 Actor부모에 키입력을 받아 움직이게 해주는 메서드가 추가되어 있는 블루프린트 클래스 입니다. Character는 애니메이션도 추가된거구요. BP_Player를 클릭후 컴포넌트탭의 +Add를 눌러 Cube를 끌어다 놓습니다. 사용자 입력 바인딩하기 키보드액션을 액터와 연결하기 위해서 바인딩을 해야합니다. 프로젝트세팅의 왼쪽 Input탭을 선택합니다. Axis Mappings +를 클릭하고 이름을 Horizontal로 하고 A와 D를 등록하고 A의 Scale은 -1.0으로 해줍니다. 다시 Axis Mappings +를 클릭하고 이름을 Vertical로 ..
프로젝트 만들기 언리얼 Games Category에서 Blank를 선택하고 Starter Content를 선택하고 프로젝트 이름은 Shooting 만듭니다. 컨텐츠드로워 Contents폴더 아래 Maps와 Blueprints폴더를 만듭니다. File-New Level을 선택하고 템플릿은 Empty Level 템플릿을 선택합니다. MaiMap으로 이름을 바꾸고 Maps폴더에 저장합니다. 에디터가 실행될때나 앱으로 만들었을때 최초 실행할 레벨을 MainMap으로 설정하겠습니다. Project Settings에서 Maps&Modes항목을 선택후 Editor Startup과 GameDefault Map둘다 MainMap으로 설정합니다. Game Mode Base 제작하기 콘텐트드로워를 열어 Add+를 클릭후 블루프린트 클래스를..
협업시 관리해야할 언리얼 엔진 4 디렉토리에 대하여 이번에는 언리얼 엔진 폴더 구조에 대해서 한번 알아보려고 합니다. 프로젝트 파일을 백업하거나, Git이나 SVN을 사용하여 협업을 할때 어떤 파일을 지우거나 한정하여 관리해야할지 막막했던 상황이 한번쯤은 다들 있으실것 같습니다. 이런 상황을 대처하기 위해서 언리얼 프로젝트 파일이 어떤 구조로 되어있는지 한번 살펴보도록 하겠습니다. ※ 언리얼 엔진 도큐먼트를 보면 여러가지 디렉토리가 있지만, 특별한 세팅없이 생기는 게임 프로젝트 디렉터리만 설명하겠습니다. 언리얼 엔진 디렉터리 구조 도큐먼트 : http://api.unrealengine.com/KOR/Engine/Basics/DirectoryStructure/index.html 깃이나 SVN, 퍼포스 같은 버전관리 툴로 디렉터리를 관리할때는 필수적인 파일만..
UE_LOG 유니티 로그 : Debug.Log 언리얼 로그 : UE_LOG 둘의 가장 큰 차이는 매개 변수라고 볼 수 있다. 언리얼 로그의 매개변수는 UE_LOG(카테고리, 로깅수준, 형식, 인자)로 유니티 로그만 출력해본 사람으로서 조금 어렵게 느껴진다. // Called when the game starts or when spawned void AMyActor::BeginPlay() { Super::BeginPlay(); //카테고리, 로깅수준, 형식, 인자 UE_LOG(LogTemp, Warning, TEXT("BeginPlay %d"), 3); UE_LOG(LogTemp, Warning, TEXT("BeginPlay")); } 게임을 실행시키면 한번 로그가 출력되는 코드이다. 카테고리(ELog Category..
언리얼 깃허브 연동 3 올리고 받기 1. Push하기 GitHub 리포지터리에 자료를 올리는 것을 Push라고 한다. 이는 Commit(커밋)과는 약간 다른 개념으로, 변경 사항을 (로컬) 리포지터리에 저장하는 것이 Commit (로컬 리포지터리의) 변경 사항을 GitHub(공유) 리포지터리에 업로드하는 것이 Push다. 커밋할 땐 요약(Summary)과 설명(Description)을 잘 작성해, 다른 팀원들이 "어떤 사항이 변경됐는가?"를 쉽게 파악할 수 있게끔 해야 한다. 요약을 안 적으면 커밋이 활성화되지 않아 처음에 횟깔리지만. 요약이름이 분기점 이름이 되기 때문이다. 날자시간등으로 자동생성되지 않는다 언리얼 작업에서, 지금껏 작업한 내용을 커밋하는 방법엔 두 가지가 있다. 1-1. 언리얼 엔진에서 커밋하기 먼저, 언리얼 엔진 내부..
언리얼 깃허브 연동 2 - 팀원편 1. 컴퓨터에 리포지토리 클론 초대 링크를 받고 들어온 팀원도 리포지토리와 언리얼을 연동시켜야 한다. 컴퓨터 내에 로컬 저장소를 생성해보자. 우선 GitHub Desktop을 켜면 위와 같은 창이 나타난다. File - Clone repository를 눌러 초대받은 리포지토리를 불러온다. 초대받은 리포지토리를 선택하고, Local path에서 경로를 지정해준다. 이때 경로엔 한글이 입력되지 않게 주의한다. 이 폴더 내에 언리얼 프로젝트를 생성할 건데, 언리얼 프로젝트는 경로 상 한글이 있을 때 에러가 나며 열리지 않는다. 다행히 팀원에겐 영향을 끼치지 않지만, 꼭 영어로만 경로를 설정해주자. 클론한 리포지토리가 Git LFS를 사용 중이기에, 위와 같은 화면이 뜬다. Initialize Git LFS 버..
언리얼 깃허브 연동하기 팀장편 결론부터 말하면 공짜 깃허브는 용량이 1GB라 언리얼 프로젝트 관리가 불가능하다. 처음에는 몇백MB정도인데 조금만 하다보면 간단하게 1GB가 넘어 버린다. 선생님 예제 파일을 연결해서 볼수 있지. 자신의 프로젝트는 안된다. 한달에 4$내고 pro를 쓰던지 학생인증해서 pro를 무료로 사용해아 50GB로 업그레이드 된다. 학생인증은 유효기간이 보이는 학생증이나 학교 홈페이지에 현재날짜와 자신의 정보, 학생ID정도가 보이는 화면을 캡쳐하면 된다. 굳이 서류를 돈내고 떼지 않아도 된다. 깃허브 쓰는 법을 간단히 배워지만 잘 안된다. 언리얼의 파일들이 커서 항상 LFS에러에서 걸린다 . LFS란 큰 파일을 쪼개서 보내는 옵션인다. 한번 에러가 나기 시작하면 풀기어려워 결국 다른 계정을 만들어 해결중이다. ㅠㅠㅠ..
제페토 워크플로우
로블록스, 탈 메타버스·탈 키즈 시동…"차세대 마케팅 플랫폼 구축" http://www.g-enews.com/ko-kr/news/article/news_all/202309111431022354c5fa75ef86_1/article.html 로블록스, 탈 메타버스·탈 키즈 시동…"차세대 마케팅 플랫폼 구축" 세계 청소년들의 사랑을 받는 게임이자 '메타버스 유망주'로 꼽히던 로블록스(Roblox)가 탈 키즈·탈 메타버스 사업에 나선다. 포트나이트·마인크래프트·제페토 등 라이벌들과 차별화에 더해 뉴 www.g-enews.com 세계 청소년들의 사랑을 받는 게임이자 '메타버스 유망주'로 꼽히던 로블록스(Roblox)가 탈 키즈·탈 메타버스 사업에 나선다. 포트나이트·마인크래프트·제페토 등 라이벌들과 차별화에 더해 뉴욕 증권거래소 상장 이후 끊이지 않는 적자를 개선하기 위한 조치로..