본문 바로가기

분류 전체보기

(52)
Player Tools 사용하기 목차 로블록스 게임에서 플레이어가 들고 다는 총이나 아이템들을 관리하는 간단한 방법으로 Tool을 사용하는 방법이 있다. Tool 오브젝트는 총, 칼, 음식같은 것들이 될 수 있다. 이번 튜토리얼에서는 레이저총의 모양을 한 Tool을 만들고 장착하는 방법, 그리고 장착과 사용할 때 사운드 효과를 내는 방법에 대해서 알아본다. Tool 오브젝트 로블록스에서 Tool 오브젝트로 장착이나 사용가능한 아이템으로 만들 수 있다. Tool 오브젝트를 만들고 메쉬파트나 파트를 붙혀서 워크스페이스에나 게임내에서 눈으로 확인할 수 있다. 워크스페이스에서 Tool 오브젝트를 하나 추가하자. 그리고 Blaster라고 이름 변경한다. Blaster 의 자식으로 MeshPart를 추가한다. 메쉬파트의 MeshId 속성을 rbx..
관람차 만들기 목차 저번 경첩문 튜토리얼에서 HingeConstraints 를 사용해서 현실의 경첩을 사용한 문처럼 자연스럽 열리는 문을 문드는 방법에 대해서 살펴보았다. 로블록스의 물리 엔진을 사용하여 다양한 장치를 만들 수 있다. 이번 포스팅에서는 여러가지 constraint를 조합해서 좀더 복잡한 장치를 만들어보자. 관람차를 로블록스에서 구현하기 위해서 우선적으로 스스로 계속해서 돌아가는 모터가 필요할 것이다. 이 모터는 HingeConstraint를 조합하여 만들 수 있다. 관람차 에셋 편집 관람차 모델을 받아보자. 로블록스에서 제공하는 pre-built place 을 편집을 누르면 로블록스 스튜디오에서 맵을 불러올 수 있다. 해당 맵을 불러오면 맵의 가운데 부근에 관람차가 있는데, 플레이를 누르면 꽤 멀리에서..
자연스럽게 열리는 문 만들기(2) Constraint 추가하기 constraint는 두 개의 attachment를 연결해서 특정한 방식으로 움직이게 해주는 역할을 한다. 이 도어에서는 사용할 Constraint는 HingeConstraint 인데, 이름에서도 알 수 있듯이 두 개의 attachment를 연결해서 경첩의 움직임과 같은 기능을 가지고 있다. DoorFrame 파트에 HingeConstraint를 추가한다. HingeConstraint의 속성들 중에서 Attahcment0을 찾고 그 안에 DoorAttachment를 넣는다. 같은 방법으로 Attachment1을 찾아서 FrameAttachment를 넣는다. 속성창을 보면 아래의 이미지와 같을 것이다. 플레이를 하여 테스트해보자. 본인도 테스트를 해보니 아래의 동영상처럼 도어가..
자연스럽게 열리는 문 만들기(1) 목차 대다수의 게임엔진들이 가지고 있듯이, 로블록스 게임에서도 3D 물리엔진이 기본 제공된다. 현실성있는 움직임을 보여주기 위해서 물리엔진을 사용하면 꽤 편리할 수 있다. 예를 들어, 캐릭터가 지나가면 자연스럽게 열리는 문을 생각해보자. 물리 엔진없이 구현하려면 여러가지 생각할 것도 많고 무엇보다 현실의 문과 다르게 움직일 것이다. 이런 경우는 물리 엔진을 사용해서 구현하는 것이 편리하다. 캐릭터의 움직임에 반응하여 열리는 문을 만들어 보겠다. 현실의 문의 경첩은 문이 움직이는 회전 운동에도 영향을 주고 최대한 꺽일 수 있는 제한도 정해 준다. 여기서는 최대한 현실의 경첩 움직임을 흉내 내보자. 도어 3D 모델 아래의 이미지와 같은 도어 모델을 준비하자. 로블록스의 정식 튜토리얼에 나오는 모델이므로 분명..
파트에 붙어 있는 GUI 구현 이번 포스팅에서는 실제 3D 게임내에 융합된 UI에 대한 내용이다. 표시판이나 광고판같이 게임과 분리되지 않은 파트에 직접 GUI를 붙이는 방법에 대해 알아보겠다. 이런 GUI를 위해서도 이미 사용될 객체가 미리 존재한다. SurfaceGui라는 객체를 사용하면 로블록스 게임에 존재하는 3D 모델의 표면에 GUI를 붙힐 수 있다. Surface GUI 만들기 파트를 하나 생성하고 이름을 InfoBoard 로 바꾸자. 이 파트에 SurfaceGui를 붙힐 것이다. 사이즈를 15, 18, 1로 만들어서 표지판처럼 넓게 변경. 생성한 파트의 자식으로 SurfaceGui를 추가하여 InfoSurfaceGui 로 이름 붙힌다. 그 안에는 이전 ScreenGui처럼 프레임을 넣어 사용할 수 있다. InfoSurfa..
가까이 가면 나오는 GUI - Proximity Prompts 3D 게임에서 자주 사용하는 GUI로, 어떤 사물에 가까이 다가갔을때 보여주는 GUI가 있다. 예를 들어 화면에 상자가 있다고 하면 처음엔 그냥 상자만 보이지만, 플레이어가 충분히 가까이 다가가면 "Open"이라는 버튼이 나오거나 설명이 나오는 식의 GUI를 많이 접해 봤을 것이다. 이런 방식을 Proximity Prompt라고 한다. 프로젝트 편집 이번 포스팅은 Dungeon Delve라는 로블록스에서 제공하는 데모게임을 편집하면서 진행하겠다. 프롬프트 만들기 위의 동영상에서 보듯 게임상에서 뭔가를 알려주는 GUI창을 프롬프트라고 한다. 로블록스 게임 내에서 제공하는 기본 프롬프트를 만드는 떄는 ProximityPrompt 객체를 통해 구현할 수 있다. 이 근접프롬프트는 Attachment, BaseP..
버튼 만들기 목차 이전 튜토리얼에서 스코어 바 GUI 만들기를 하였다. 이번 포스팅에서는 스크린에 실제 작동하는 버튼을 만들겠다. 버튼은 메뉴에서도 쓰일 수 있고, 스킬 버튼이라든지 GUI에서 다용도로 쓰인다. 참고로 이 튜토리얼에 사용하는 맵은 Gold Rush라는 로블록스에서 제공하는 리소스이다. 링크를 타고 들어가서 편집을 통해 로블록스 스튜디오로 불러 들여서 사용하자. 버튼 타입 버튼 오브젝트는 두가지 타입의 버튼 객체가 있다. 텍스트 기반 버튼과 이미지 기반의 버튼. TextButton : 텍스트 버튼은 텍스트 라벨와 비슷하다. 다만, 텍스트 버튼은 클릭이 가능해서 버튼의 역할을 한다는 점이 다르다 ImageButton : 이미지 버튼도 이미지 라벨과 비슷하고 많은 속성을 공유한다. 버튼 만들기 이 포스팅에..
스코어 바 만들기(2) 목차 이미지 추가 로블록스 GUI에서 이미지는 ImageLabel이라는 객체를 사용한다. 스코어바 프레임에 ImageLabel 객체를 추가한다. 이 이미지라벨을 왕관 아이콘 이미지로 바꾸자. 이미지 라벨의 속성을 살펴보고 Image속성을 선택하자. 디폴트 값은 GuiImagePlaceholder.png 인 Image속성을 찾아서 rbxassetid://5673786644 으로 바꿔주자. 로블록스에서 제공해주고 있는 이미지이다. 그러면 아래의 이미지의 모습을 보일 것이다. 이미지를 추가했으니 사이즈를 조정해주자. Size의 스케일을 아래와 같이 변경하면, 아래의 이미지의 모습을 보이게 된다. X는 가로의 프레임의 길이에 대응하면서 옆을 길게 늘어지게 된 모습이다. 프레임의 가로 길이의 1.25배이므로 프레..
스코어 바 만들기(1) 목차 게임에서 화면에 보여주는 정보나 버튼등, 무엇이든지 플레이어와 게임이 소통할 수 있게 해주는 인터페이스를 UI라고 하고 그것을 화면에 보여주는 식이면 GUI, 풀어서 쓰면 , 그래픽 유저 인터페이스. 이전 튜토리얼에서 로블록스가 기본적으로 제공하는 리더보드의 사용법에 대해 알아본 적이 있다. 이번 튜토리얼에서는 정해진 GUI말고 개발자가 원하는 모양의 GUI를 만드는 방법을 알려준다. 참고로 이 튜토리얼에 사용하는 맵은 Gold Rush라는 로블록스에서 제공하는 리소스이다. 링크를 타고 들어가서 편집을 통해 로블록스 스튜디오로 불러 들여서 사용하자. 아래의 이미지와 같이 가운데 위의 반투명 배경에 왕관이미지와 점수를 보여주는 GUI를 만들자. 로블록스 게임에서 GUI를 만들기 위해서는 ScreenG..
세이브와 로드 목차 로블록스 게임중에 게임상태를 저장하고 읽어오는 방법에 대한 튜토리얼입니다. 게임중에 레벨, 게임머니, 경험치, 아이템 관리를 할려면 데이터 세이브와 로드는 필수적이겠죠. 로블록스 스튜디오에서 접근 허용하기 기본적으로 로블록스 스튜디오에서 로블록스 서버에 데이터를 저장하고 로드를 허용하지 않는다. 스튜디오에서 테스트를 하기 위해서는 셋팅에서 활성화를 시켜줘야 한다. 우선 해당 게임을 로블록스 서버로 배포를 해 놓은 상태에서 아래의 게임셋팅에서 Security 탭에서 API 서비스에 접근을 허용해주자. Enable Studio Access to API Services 를 허용하고 저장. DataStoreService 사용하기 로블록스에서 게임 데이터를 저장/로드를 하기 위해서는 DataStoreServ..