[include(틀:Roblox 하위 문서)] [목차] == 개요 == [[https://developer.roblox.com|로블록스 개발자 허브(영문)]] [[https://education.roblox.com/|로블록스 교육 허브(일부 한글화)]] [[https://devforum.roblox.com/|로블록스 개발자 포럼(영문)]] [[Roblox]] 플랫폼의 게임 개발 도구. [[https://www.roblox.com/create|여기]]에서 다운로드받아 설치할 수 있다. 개발 도구 내에서 게임을 개발하며 테스트해 볼 수 있으며, 게임을 발행(Publish)하면 개발한 게임을 다른 친구들과 함께 플레이할 수 있다. [[https://education.roblox.com/|로블록스 교육 허브]] 사이트에서 개발 관련 자료를 찾아볼 수 있으며, 일부 자료는 한글화되어 있는 걸을 볼 수 있다. 유튜브에서도 "로블록스 스튜디오"로 검색하면 로블록스 개발 관련 영상을 찾아볼 수 있다. 하지만 현재 구할 수 있는 대부분의 개발 자료가 영어로 되어 있으므로 진입장벽은 감안해야 한다. 2021년 1월 패치로, 스튜디오 자체 툴 메뉴 대부분이 한글화되었다. 번역 수준은 --우리가 아는 로블록스답지 않게-- 매우 깔끔한 편이다. 2021년 2월에 로고가 바뀌었다. == 템플릿 == 스튜디오를 처음 실행하면 가장 먼저 보일 기본적으로 제공되는 맵 템플릿들이다. Baseplate를 제외한 나머지 맵들은 초보자들을 위한 기초 요소가 들어간 것으로, 사실상 대다수의 Roblox 게임 제작자들은 Baseplate만을 이용한다. === Baseplate === 넓은 회색 블럭 바닥 빼고 아무것도 없는 플레이스다. 초보부터 고수까지 각종 테스트에 이 플레이스를 많이 쓴다. 또한 바닥 블럭을 제외하면 아무것도 없어서 게임 개발에 주로 사용한다. === Flat Terrain === 땅이 Terrain의 잔디 블럭으로 덮여있는, Baseplate의 다른 버전이다. 이 땅은 Terrain 전용 도구로만 편집할 수 있다. 주로 지형을 만들 때 사용한다. === City === Baseplate에 높은 빌딩 2채와 낮은 빌딩 1채, 도로와 차 한대가 추가된 맵이다. === Suburban === 간단한 마을인데, 플레이 해보면 문여는게 디테일해지거나, 각종 행동이 추가되었다. === Racing === 화산, 사막 지대를 거치는 레이스 길과, 출발/도착지, 체크포인트, [[지프]] 4대가 있는 플레이스. 간단한 레이스가 가능하다. === Obby === 기본적인 점프맵이 만들어져 있고 추가적으로 점프맵을 확장할 수 있다. === Western === 서부시대 테마의 플레이스다. 경찰서, 은행, 기차, 마차 등이 있다. === Village === 작은 집이 몇 채 있는 간단한 마을이다. === Pirate Island === 해적 섬. 해적선과 화산, 작은 집들이 있다. === Castle === 성과 강이 있는 플레이스. 성문 위에 올라가서 성문을 끌어 올릴수도 있다. === Line Runner === 횡스크롤 형식으로 장애물을 피하며 달리는것. 중간중간 코인, 점프대가 있으며 부숴지는 나무판도 있다. === Infinite Runner === 3인칭으로 장애물을 피하며 달리는 게임. [[템플런]]과 상당히 유사하게 만들어져 있다. 조작감이 정말 불완전하니 비추 === Starting Place === 집 몇채와 아이템이 들어있는 상자[* 총 7개. 맵 곳곳에 숨겨져있다.], 산이 있는 플레이스. 유저가 새로 가입하면 자동으로 만들어지는 맵이며, 장소가 검열되어 바뀌는 맵이기도 하다. 스튜디오를 처음 하는 사람들을 위한 각종 기초적인 설명이 있다. === Capture The Flag === 간단한 깃발 탈취 게임을 할 수 있다. 깃발을 뺏어 자신의 팀에 갖다놓으면 된다. === Team/FFA Arena === 팀을 나눠 싸우거나 개인전을 즐길수 있도록 스크립팅이 되어있는 플레이스다. === Combat === 맵 중앙에 검, 권총 등이 있다. === Create And Destroy === Godzilla 이벤트로 인해 생긴 맵이다. 미니게임 종류인데 건물을 많이 부수면 이긴다. 마우스 왼쪽 클릭으로 부수기 가능하다. === Galatic Speedway === Roblox Creator Challenge 이벤트 때 생긴 맵이다. 맵에는 각종 우주선이 배치되어 있으며 레이스를 할 수 있다. 우주선을 조종할 때 다른 물체에 닿으면 우주선이 터진다. == Tool Box == 건축에 필요하거나 활동에 필요한 것을 얻을 수 있는 곳. 검색을 하여 필요한 것을 꺼내다 쓸 수 있는데, 다른 유저가 만든거나, ROBLOX가 만든[* 주로 기초적인 물건이다.] 것도 있다. 그리고 인증된 툴들은 인증 뱃지 표시가 있다. 툴박스에서 사용 가능한 툴은 Models, Images, Meshes, Audio로 분류되어 있다. 인증되지 않은 남이 만든 모델과 저작권에 걸리는 모델[* 보통 다른 게임의 오브젝트를 복제해 올린다. 문제를 일으키지 않으려면 마켓플레이스에서 구입하되, 나머지는 자신만의 아이디어로 만든 다른 모델로 만들자. 예를 들어서, Roblox에서 구입할 수 있는 모델의 일부 메쉬를 바꾼다든지, 그냥 가만히 있는 모델을 NPC로 만든다든지, 머리카락을 바꾸는 등 많다. 제일 좋은 건 어렵더라도 처음부터 자신만의 모델을 만드는 것.]은 웬만하면 쓰지말자. 바이러스 위험도 있고 저작권 위반이다. === Model === 여러 오브젝트를 묶어 한 곳에 모은 일종의 폴더이다. 종류 상관없이 작품을 만들 때 사용된 여러 부품을 하나의 Model로 정리할 수 있다. Roblox Studio에서 가장 큰 비중을 차지한다고 볼 수 있으며 이게 없었다면 제작 난이도가 엄청나게 올라갔을 것이다. === Image === Image는 모델에 씌울 수 있는 사진이나 그림이다. 이미지는 자신이 직접 업로드할 수 있다. 글씨가 작게 적힌 파일을 업로드하면 검열에 걸릴 가능성이 높으니 주의.(크게 적혀있으면 잘 통과한다) 이 외에도 다른사람의 얼굴이 나온 사진, 혐오스러운 사진, 피가 나오거나 잔인한 사진을 올리면 수 분 이내에 경고를 먹게 된다. 이러한 경고를 여러 차례 먹게 될 경우 계정 제재의 원인이 되므로 주의하자. 기존엔 Decals라는 분류였다가 Images로 바뀌었다. === Video === '''게임 안에서 영상을 볼 수 있게 해주지만''' 사운드는 출력이 안되기에 음악은 별도로 추출해야 하며, 영상의 질이 떨어지고 무엇보다 최적화가 덜 된 상태라서 여러개의 영상을 게임에 넣으면 프레임이 떨어진다. === Mesh === Mesh는 [[Blender]] 등의 3D모델링 프로그램으로 만들어진 파일의 정보를 담은 것으로, 만든 3D 파일을 Mesh를 이용해 Roblox에 불러올 수 있다. MeshPart를 이용해 불러온다. 당연히 단독으로는 작동하지 않는다. 좀 복잡하다 싶은 구조물(주로 총. 특히 현실의 것을 모티브로 한 경우)은 십중팔구 Mesh를 이용한 것이라고 보면 된다. === Audio === Audio는 적용 가능한 소리 파일이다. 본인이 업로드를 하려면 파일의 길이에 따라 아래에 해당하는 만큼 로벅스를 지불해야 하고, MP3,ogg 의 파일만 가능하다. 0 ~ 10초 : 20 로벅스 10초 ~ 1분 30초 : 35 로벅스 1분 30초 ~ 2분 : 75 로벅스 2분 ~ 7분 : 350 로벅스 == 문제점 == === 버그 === 자체 엔진을 사용하는 만큼 버그도 많다. * 유니온이 안보이거나 유니온 해제가 안될때가 있다. 스튜디오를 재시작하면 다시 보이기도 하는데 재시작 후에도 안보이고 유니온 관련 시스템이 안먹힐 경우에는 복구가 불가능하다. 복구 할 수 있는방법은 참조바람.[* [[https://devforum.roblox.com/t/how-to-recover-invisible-corrupt-unions/398711|#]]] 복구 원리는 간단하다. 로블록스 스튜디오에서 유니온으로 바꿀 때 유니온 데이터가 자산id로 이동하여 그 데이터가 문서에 그대로 남겨있어서 복구를 할 수 있다. === Lua 바이러스 === 일부 유저는 스튜디오로 악성 스크립트를 개발[* 개발이라 하기도 뭐하고, 구글에 검색하면 그런 코드는 널린데다 아예 다른 악성 모델에서 스크립트 자체를 뜯어오든 하는게 극히 대부분.]해서 그 스크립트(이하 바이러스)가 심어진 모델을 배포한다. 일반적으로 바이러스는 다음과 같은 경로로 감염된다. * '''툴박스에서 바이러스가 심어진 악성 모델을 불러온다.''' * 정상 플러그인을 사칭한 악성 플러그인을 설치한다. * 팀 크리에이트나 다른 개발자가 있는 그룹 게임에서 다른 사람이 이를 감염시킬 수 있다. 바이러스는 다음과 같은 모델에 자주 들어가있다. * 툴박스에서 노란색 인증 뱃지가 달리지 않은 상단의 모델. * 예전에는 없었는데 갑자기 툴박스 상단으로 나온 모델들. 봇을 이용한 조작으로 순식간에 인기모델로 상단에 노출되게 한다. * 이름이 한 단어 도배로(예시: GIFT GIFT GIFT GIFT GIFT) 이루어진 대부분의 모델. * 검색 키워드랑 전혀 관련 없어보이는 뜬금없는 모델. 자전거를 검색했더니 대관람차가 나온다거나. * Anti-Exploit, Anty Lag Script 등 핵 방지나 최적화를 해준다는 스크립트라 주장하는 '''모든''' 모델. 애초에 그런건 모델로 구현이 불가능하고 플러그인으로 구현해야 한다. * 툴박스에서 같은 이름을 가진 동일 모델이 여러개 있는 모델들. * 모자 없애는 발판이나 속도 발판, 자판기, 총 지급 장치, '''아이템 지급기'''[* Item Giver라고 흔히 알려져있다.] 등 많은 사람이 사용하는 모델의 '''복제품들.''' 비슷한게 널려서 구별도 쉽지 않다. * 표지판이나 의자같은 단순한 물건에 스크립트가 덕지덕지 붙어있는 경우. 다음과 같이 행동하면 게임에 바이러스가 창궐하는 걸 예방할수 있다. * 툴박스에서 '''노란색 인증 뱃지가 붙은 모델'''만을 불러온다. * 툴박스를 건드리지 않고 혼자서 모델과 스크립트를 전부 직접 만든다. * 툴박스에선 이미지나 오디오, 메쉬만을 불러와 사용한다. * 툴박스에서 불러온 모델에 수상한 스크립트 파일은 없는지 꼼꼼히 검사 후 게임에 넣는다. 이 바이러스는 컴퓨터 자체에는 영향을 끼치지 않는, 보통 '''Lua 바이러스'''라고 불리는 바이러스다. 백도어의 경우에도 컴퓨터 자체에는 영향을 끼치지 않지만, 게임을 발행하고 사람이 좀 많아지면 백도어를 유포한 사람한테 기록이 가고[* 디스코드 등] 그 사람이 특정 조건을 만족한 (부)계정[* 누구랑 친구를 추가했거나, 일정 명령어를 입력했거나, 그룹에 가입했거나 등]으로 게임에 접속하면 게임안에 특정 GUI가 나오고 그 사람은 그걸로 각종 나쁜 짓을 할수 있게 된다. '바이러스' 종류에서 주로 발생하는 일은 * 게임이 시작하자마자 FREE ROBUX같은 다른 게임으로 옮겨버린다. * [[뇌전증|화면이나 GUI를 계속 깜빡거리게 하여 눈을 아프게 만든다.]] * 의미 없는 모델[* 주로 의자, 나무 등 의미 없는게 많다.]을 구매하라고 계속 구매창이 나와 게임을 불편하게 한다. * '''무한 루프를 이용한 서버/클라이언트의 엄청난 렉을 유발한다.''' * 더 나아가, 로블록스가 게임을 잘못 판단하면 게임 또는 계정이 제재를 당할 수 있다. '백도어' 종류에서 주로 발생하는 일은 * 루아 바이러스나 백도어를 만든 사람에게 각종 도구와 기능, 좋은 예시로 '''어드민'''을 제공한다. * GUI를 이용한 각종 팝업 메세지를 띄운다. * 불이나 파트등 물체를 소환한다. * 데이터스토어[* 게임 내의 플레이어 정보를 저장하는 곳. 인게임 돈이 대표적이다. 단 대부분의 게임이 서버에 정보를 저장하기 때문에 눈에 보이는 값만 바꾸는 것은 나갔다만 와도 소용이 없어진다.]를 변형한다. * 스크립트나 물체의 이름을 바꾸거나 지워 '''게임을 망가뜨린다.''' * 게임내에서 일반적으로 불가능한 '''Star glitcher같은 스크립트'''를 사용한다. 바이러스를 찾는 방법은 대표적으로 다음과 같다. * 파트 내부를 작은 블럭 하나하나까지 뒤져보거나 "RotateP","RotateV","Fire","Weld"로 익스플로러에 검색한다. 그리고 그 안에 괴상한 이름을 가진 스크립트가 있다면, 절대다수가 바이러스다. Fire의 경우에는 횃불같은 의도한 불이면 바이러스가 아니지만, 전혀 불이 안들어갈만한 장소에 전혀 드러나지 않는 불이 있다면 무조건 바이러스성 불이니 바로 지우자. * Ctrl+Shift+F로 전체 스크립트를 검색해 getfenv, require, loadsting를 검색하자. require의 경우에는 A-chassis tune이나 Kohl's Admin 같은 많은 정상 스크립트가 이용해서 무턱대고 지우지 말고 좀 이상한 것을 찾자. 만약 의도하지 않은 스크립트라면 대부분이 '''백도어'''다. getfenv나 loadsting은 대다수가 백도어다. 과감히 지우자. * 너무 많거나 귀찮다면 플러그인에 Ro-Defender를 설치하여 렉 유발 바이러스를 없애주면 된다. 스크립트 내용이나 방식, 이름[*주의 virus같은 이름이 붙어있으면 지워버리기 때문에, 멀쩡한 모델같은것에 그런 이름을 붙여두면 같이 날아가버리는 참사가 발생한다.]같은걸 찾아서 대부분은 확실하게 없애주지만 간혹 놓치는것도 있으니 꼼꼼히 찾자. * 구매 유도 바이러스의 경우에는 PromptPurchase , Marketplaceservice 를 전체검색으로 찾아보자. 첫 줄에 '''local wat='''이 있으면 이게 구매 유도 바이러스다! == 스크립팅 == [[http://wiki.roblox.com/?title=Scripting|로블록스 Scripting 페이지(영문)]] 스크립트를 이용하여 각종 시스템이나 효과를 만들수 있다 Roblox Studio의 스크립트 기능은 Lua 5.1을 사용하고 있다. '프로그래밍 루아'라는 이름의 서적이 한국어로 번역되어 있으니 Lua 스크립팅에 공부하고 싶다면 관련 서적을 읽어보는것도 좋다. === 기본적인 명령 === 많이 쓰이는 명령 목록은 이렇다. * wait(숫자) = (숫자)초만큼 기다린다. * print(문자열) = 문자열을 Console에 출력한다[* 사실 디버깅할때 말고는 별로 쓸모가 없다.] * end = 조건문이나 반복문, 함수를 끝낸다. * while 조건 do = 조건이 계속 충족되는 한 계속 실행한다. [* 하지만 이것만 사용하면 대부분 과부하가 되니 제일 끝에 wait(0)을 넣어주자.] - 이때 while true do를 하면 게임이 시작되는 순간부터 끝날 때까지 계속 실행한다. - while 조건 do를 치고 엔터를 누르면 아래에 Tab키를 눌렀을 때만큼의 띄어쓰기가 되어 있고 끝에 End가 자동으로 붙는다. * for i = val1, val2, val3 do = 조금 복잡하다. 간단히 요약하면, i가 처음 시작하는 수가 val1이고, 한번 반복하면 i가 val3씩 늘어난다. for 반복문은 i가 val2보다 큰지 계속 검사하여, 만약 i가 val2보다 크면 반복문을 빠져나간다. [* 이것 역시도 제일 끝에 wait()를 넣어주자. 아니면 과부하가 걸린다.] * if 조건 then = 만약 조건이 충족되면 안에 있는걸 실행한다. - (숫자) = (숫자) 로 조건을 쓰면 오류 난다.[* 등호 하나는 앞의 값에 뒤의 값을 덮어쓰겠다는 뜻이다.] 같은지 비교할 땐 (숫자) == (숫자) 를 쓰도록 하자. * repeat wait(숫자) until 조건 = 조건일 때 까지 계속 반복한다. - 이것도 조건에서 (숫자) == (숫자)와 같이 써야된다. === 기본적인 상수 === 많이 쓰이는 상수 목록은 이렇다. * true = 참 * false = 거짓 * nil = 아무것도 없는 값 [* 이걸 이용해 if Part ~= nil then 같이 예외처리를 할수 있다.] --숫자도 상수이긴 한데 모르는사람은 없을것이니 숫자나 문자열은 여기에 없다-- === 기본적인 모듈 === 이것은 함수를 담고있는 기본적인 모듈들이다. * Vector3 = 좌표에 대한 모듈이다. * Color3 = 색에 대한 모듈이다. * BrickColor = 이것 역시 색에 대한 모듈이지만 로블록스에서 기본적으로 지원하는 색만 쓸수 있다. * Enum = 거의 대부분의 상수를 저장한 모듈이다.[* true, false, nil 제외] * CFrame = 이것 역시도 Vector3처럼 좌표에 대한 모듈이지만, 이건 돌아간 정도도 포함한다. Vector3는 블럭이 겹쳐지면 위로 올라가지만, CFrame은 겹쳐진다. * IntValue = 정수에 대한 모듈이다. * BoolValue = 참 혹은 거짓의 값이 있는 모듈이다. * NumberValue = 수 전체에 대한 모듈이다. * UDim2 = 좌표에 대한 모듈인데 이건 라벨과 비슷한 것에 쓰인다. == 플러그인 == 로블록스 스튜디오를 개발해주는 데 도움을 주는 각종 플러그인이 있다. Brick Cutter나 Animation Editor Classic등 편리한 제작 도구부터 바이러스를 막는데 특화된 Ro-Defender 등 각종 도구가 있다. 이 역시 악성 유저들이 각종 '''Lua 백도어'''를 설치하는 악성 플러그인을 봇팅을 통해 상단으로 올려놓고 설치를 유도하는 경우가 있다! 플러그인을 설치할 때도 조심해야 한다. == 개발 팁 == 이하는 로블록스 스튜디오로 게임을 개발할 때 도움이 되는 정보들이다. * 여러 파트를 하나의 오브젝트로 합치거나 Negate 파트와 Union 하여 블렌더와 같은 어려운 모델링 프로그램을 쓰지 않고 간단하게 블록을 자르거나 붙여서 모양을 낼수가 있다. * 블렌더와 같은 3D 모델링 프로그램을 사용해 CSG로 구현이 어려운 모델을 만들수 있다. [* 단, 메쉬의 트라이가 5,000 트라이 미만이여야 로블록스로 불러올 수 있다. 또한, 계정에 등록된 생년월일 기준으로 13세 미만일 시, 메쉬가 정상적으로 불러와지지 않을 수 있다.] * 총을 사용하고 싶다면 서버 단위로 작동하는, 즉 타 플레이어의 시점에서 자신이 쓰는 여러 기능이 반영되는 총 킷을 쓰자. 대표적으로 FE gun kit, Warbound[* 약칭 WB, 아르마 시리즈를 참고해 만들어진 시스템이며 R6 캐릭터를 사용할 때에만 작동한다. 대다수의 모델은 스크립트의 노후화로 각종 버그(예를 들어서 마우스 포인터가 없어진다거나)가 있으며 후술할 여러 모델들의 모태가 되었다.], ACS[* Advanced Combat System 의 약자, 아르마 시리즈와 이스케이프 프롬 타르코브를 참고해 만들어진 시스템이다. 최신형인 1.8을 제외하면 R6 형태의 캐릭터를 사용할 때에만 작동한다.], Murnau, VE[* Vanguard Engine의 약자, Warbound의 공식 후계이다. 사실상 ACS의 하위호환이라 볼 수 있다.], BCWS[* ACS를 참고해 모 유저가 직접 R15 캐릭터가 호환되도록 만든 시스템. 오리지널 ACS에는 없는 여러 기능이 있다.], VIETHIN[* 현대전 총들도 있지만 많은 총들이 머스킷 등 옛날 총들이 있으며 주로 중세 시대 전쟁이나 조선시대 같은 전쟁 게임을 만들때 많이 사용된다.] 등이 있다. 정 맘에 안들거나 불안하면 직접 키트를 만드는 것도 좋다. 대부분의 메이저 FPS 게임들은 직접 제작한 키트를 사용한다. * Loadlibrary 스크립트는 더 이상 사용되지 않으며 삭제되었다. 이를 쓰는 개발자는 [[https://devforum.roblox.com/t/loadlibrary-is-going-to-be-removed-on-february-3rd/382516|Loadlibrary 대체방법(영문)]]을 참고해서 대체하면 된다. [[분류:Roblox]][[분류:소프트웨어]][[분류:게임 개발 도구]][[분류:나무위키 Roblox 프로젝트]]