전체 글(7)
-
[Unreal] 언리얼 엔진에서 구조체를 사용할 때
언리얼엔진에서 USTRUCT를 사용하다 독특한 에러를 만났다. C++ 파일을 사용할 때 컴파일 의존성을 최소화 시키기 위해서 헤더파일에서는 class 또는 struct 키워드를 사용하거나 전방선언을 사용하는데 컴파일 에러를 만났다. UFUNCTION() void SpawnPiece(const TSubclassOf piece, const struct FChessDataRow* Row); 다음과 같은 모양으로 함수를 선언했는데 컴파일러가 뒤쪽의 struct 부분에서 아래와 같은 에러를 날렸다. 원래 구조체가 포인터를 이용한 방식이 안되나 싶어서 직접 테스트를 해보았다. //actor.h #pragma once class actor { private: public: actor(); void do_with_st..
2023.02.22 -
[UEChess] 언리얼, 블렌더를 이용한 3D체스 만들기 3. 데이터 테이블을 이용해 체스피스 스폰 장소 및 정보 특정하기
⊙ 이 글은 튜토리얼이나 완벽한 작업물을 기록하는 글이 아닌 스스로의 작업 진행을 기록하기 위한 글이므로 더 나은 방법 더 효율적인 방법이 있을 수 있습니다. 체스피스를 스폰하기 위해 많은 방법을 고민해봤다.처음에는 만들어 낸 StaticMesh 위에 소켓을 생성한 후에 Chessboard의 BeginPlay() 에서 소켓에 Attach하는 방식으로 각 체스 피스들을 만들었다. 처음에는 각 Piece 들의 위치를 특정하고 소켓을 만들었다Black_Pawn_1Black_Rook_2같은 방식으로 말이다.이렇게 만들고 Spawn을 하고 나니 몇 가지 문제가 생겼다. 위치가 약간 바뀔 때마다 모든 소켓을 조정해주어야 하는데, 일괄적인 조정이 힘들어 아주 귀찮다. 이게 중요했는데 Spawn한 후에 각 Piece들..
2023.02.21 -
[UEChess] 언리얼, 블렌더를 이용한 3D체스 만들기 2. 블렌더를 이용해 체스 보드 만들기
⊙ 이 글은 튜토리얼이나 완벽한 작업물을 기록하는 글이 아닌 스스로의 작업 진행을 기록하기 위한 글이므로 더 나은 방법 더 효율적인 방법이 있을 수 있습니다. 다른 작업을 시작하기 전에 에디터에서 기준을 잡아줄 체스보드를 제작하기로 했다. 각 체스 말들을 스폰하기에 앞서 스폰한 후에 어디에 위치 시킬지, 각 말들은 어느 정도의 크기로 얼마 만큼의 간격을 가질 것인지 알기 위해 만들었다. 블렌더에서 체스보드 만들기 우선 블렌더 중앙을 기준으로 Plane을 하나 만들어주고 크기를 잡아준다. 각 타일의 크기는 위와 같게 맞추었다. 1m로 하면 너무 작아질까 하여 한 칸당 1.5m로 잡아주었다. 일반적인 체스 말들을 사용한다면 1m도 충분하겠지만 나중에 애니메이션이 들어간 캐릭터를 사용한다면 다양한 액션을 취하..
2023.02.16 -
[UEChess] 언리얼, 블렌더를 이용한 3D체스 만들기 1. 시작 - 프로젝트 세팅 및 기본 구조 잡기
다시 언리얼엔진 개발을 시작하면서 개인 프로젝트로 어떤 게임을 만들어 볼까 하다가 체스를 만들어 보기로 결정했다. 다양한 방식으로 개발한 체스 코드 예시가 있기에 참고하기 용이해 정한 것도 있고 로직과 동시에 언리얼 엔진에서 제공하는 다양한 기능들을 활용해 볼 수 있을 듯하여 체스를 만들어보기로 결정했다. 가장 첫 번째로 생각한 부분은 에셋에 대한 부분이었는데 무료로 된 에셋은 없어 이 기회에 3D 아트도 배워볼까 하고 알아봤다. 다행히 블렌더라는 무료 모델링 툴이 있었고 블렌더로 에셋의 기초를 제작하고 애니메이션이나 디테일은 언리얼 엔진에서 챙기기로 결정했다. ⊙ 이 글은 튜토리얼이나 완벽한 작업물을 기록하는 글이 아닌 스스로의 작업 진행을 기록하기 위한 글이므로 더 나은 방법 더 효율적인 방법이 있을..
2023.02.16 -
[Github] 협업 시 Github을 이용하는 방법
Issues를 이용한 할 일 정리 Gihub 레포지토리를 만들어서 들어가면 위와 같이 각종 탭이 나온다. 이 중 Issues에 들어가면 아래와 같은 화면으로 시작한다. New issue를 누르면 새 이슈를 등록할 수 있다. Issue 내용 Title: 이슈의 간단한 내용 Write: 이슈 상세 내용 및 참고사항 등 이슈에 관련된 자세한 사항 Preview: 현재 내가 작성중인 markdown 형식을 미리보기 식으로 확인이 가능 Issue 특성 설정 Assignees : 해당 이슈의 담당자 -> 이슈 등록자가 될 수도 있고, 이슈 해결자가 될 수도 있음 Labels : 해당 이슈의 특징으로 각 라벨별 의미에 따라 부여해주면 됨. 여러개도 가능 Label은 직접 Edit해서 사용할 수도 있어서 팀의 작업 방..
2022.02.24 -
[Unity] 1인칭 캐릭터 Raycast로 오브젝트와 상호작용 하기
1인칭 캐릭터의 눈 앞에 있는 오브젝트와의 상호작용 구현 중 제대로 된 정보가 없어 직접 쓰기로 함. Unity Document에서 Physics.Raycast를 찾아보면 사용할 수 있는 함수형태가 아주 많다. public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal); public static bool Raycast(Vector3 origin, Vector3 directi..
2022.02.14