Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

목차

  1. 로블록스 스튜디오 살펴보기
  2. 로블록스 코딩 소개
  3. 로블록스 코딩 - 용암 만들기
  4. 로블록스 코딩 - 서서히 사라지는 블럭
  5. 로블록스 코딩 - UI로 점수 보여주기

처음으로

이 내용들은 로블록스 정식 문서의 기초를 기반으로 제 방식으로 해석한 것들입니다. 번역본이 아니에요. 해석본이라고 생각해주세요. 내용 그 자체는 정식 문서와 다를 바 없겠지만, 제가 읽어보고 필요한 부분은 추가하고 불필요한 부분은 제거했습니다. 적당히 번역한 직역어가 아니고 제대로 한국어로 된 내용이라고 생각합니다.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

로블록스는 개발언어로 lua 언어를 사용합니다. lua언어는... 스크립트언어이면서 접착식 언어입니다. 그리고 상당히 고차원 언어입니다. 고차원 언어라는 표현은 "쉽다"라는 표현과 대동소이합니다. 이것보다 더 고급으로 가버리면 개념자체가 너무 고차원이라 이해가 더 어려울 수도 있습니다만, 딱 이수준의 언어, 루아나 파이썬 수준의 고차원 언어이면 가장 배우기 쉽고 사용하기 편한 고급언어들이라고, 저는 생각합니다.

스크립트 언어라는 말은 컴파일 없이 바로 반영되고 실행되는 언어라는 뜻입니다. 접착 언어는... 다른 언어로 만들어진 프로그램에 곁들여서 사용이 가능한 언어라는 말입니다. 중요한 특징이기는 하지만, 로블록스의 제작에는 그냥 루아라는 언어를 쓰는구나 하고 넘어가시면 됩니다. 

잘 모르겠다... 그래도 괜찮습니다. 프로그래밍 언어를 접해본 적이 아예 없다. 그러면 좀... 그렇긴 한데. 글쎄요 뭐 한번 도전해보시죠. 전 할만 할거라고 봅니다. 그저 아... 루아에서는 이런 문법을 쓰는구나~ 로블록스에서는 이런 식으로 하는구나 하고 넘어가다보면 어느샌가 익숙해 질 것이라고 봅니다.

그럼, 로블록스 개발 기초과정. 시작합니다~

로블록스 리소스

로블록스 개발 및 스튜디오는 아래의 링크에서 다운로드. 

www.roblox.com/develop

Create - Roblox

Create anything you can imagine with Roblox's free and immersive creation engine. Start creating games today!

www.roblox.com

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

처음 글

2021.04.21 - [로블록스 개발 기초] - 로블록스 스튜디오 살펴보기(1/4)

안녕하세요.

메타버스와 함께 많은 개발자들이 뛰어든 Roblox 관련해서 Lua 스크립트를 작성하는 법에 대해 궁금해하시는 분들이 많을 거라고 생각하는데요.

기초부터 차근차근 다지기 위해 Developer 사이트에서 Coding 관련해서 실습을 하면서 내용들을 정리해보려고 합니다.

로블록스 스튜디오로 개발을 시작하시려는 분들께 도움이 되었으면 좋겠네요 :)

1. 스크립트를 적용할 대상을 만들어 보자!

자 우선, Baseplate를 생성하면 Respawn 지역은 이미 설정이 되어 있을텐데요.

파트를 이용해서 네모난 블록을 하나 배치해보겠습니다.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

이 블록이 나타났다 사라졌다를 3초마다 반복하도록 만들려고 합니다.
우선 블록의 특성에서 Anchored를 체크해주세요. 이걸 체크한다면 게임 상에서 어떤 일이 생기더라도 해당 파트는 제자리를 유지합니다. 즉 고정을 시켜주는 거에요.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

그리고 우측의 탐색기에 만든 파트를 클릭하면 + 버튼이 보이는데요, 이를 클릭해서 script를 추가할 수 있습니다.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

스크립트를 더블 클릭하시면 익숙한 "Hello world!"가 보이실텐데요. 이 라인을 전부 지워줍니다.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu

스크립트를 생성하시고, 파트의 이름은 DiasppearingPlatform으로 설정해주세요.

스크립트 이름은 Disppear로 해주시면 됩니다.

2. 스크립트를 작성해 보자!

스크립트를 작성할 때 빠질 수 없는게 변수(Variable)인데요. 이를 위해 작성 시에 플랫폼의 변수를 만들어 스크립트를 시작하는 것이 좋습니다.

변수는 값과 연관된 이름입니다. 변수가 한 번 생성되면 변수를 계속 사용할 수 있고, 필요에 따라 값을 변경할 수 있습니다.

local platform = script.Parent

platform에 대한 변수 생성을 위해 local platform으로 선언하였습니다.

그리고 이 변수에 스크립트가 위치한 개체를 찾는데 사용되는 script.Parent를 입력하여 줌으로써 현재 작성중인 script에 대해 Parent 속성(script가 위치한 상위 레벨의 오브젝트를 가리킴)을 platform에 입력해줬습니다.

이 때, 변수의 이름은 camel case를 따라 작성합니다.

이제, 파트가 사라지고 나타나는 기능을 해주는 함수(Function)을 작성해보겠습니다.

local platform = script.Parent
 
local function disappear()
	
end

첫 번째 local function disappear()이 함수를 선언하는 부분이고, end와의 사이에 함수의 기능이 들어가게 됩니다.

로블록스 스튜디오 상에서 오브젝트를 클릭하면 해당 오브젝트마다 설정이 가능한 속성들이 있는데, 스크립트의 함수에서 이를 이용해서 오브젝트에 동작을 줄 수 있습니다.

여기서 다루려는 속성은 아래 두 가지입니다 :)

Transparency : 투명도(0 : 불투명 / 1: 투명)
CanCollide : 통과 가능 여부(false : 플레이어 통과 가능 / true : 플레이어 통과 불가능, 충돌)

이를 이용해 파트가 사라지는 함수와 나타나는 함수는 아래와 같이 작성이 가능합니다.

local platform = script.Parent

local function disappear()
	platform.CanCollide = false
	platform.Transparency = 1
end

local function appear()
	platform.CanCollide = true
	platform.Transparency = 0
end

자, 함수를 작성했으면 이제 호출을 해줘야 동작을 하겠죠?

그런데, 게임 중에 계속해서 해당 동작을 수행해야하기 때문에 계속해서 동작이 반복되도록 아래와 같이 스크립트를 작성해줘야 합니다.

local platform = script.Parent

local function disappear()
	platform.CanCollide = false
	platform.Transparency = 1
end

local function appear()
	platform.CanCollide = true
	platform.Transparency = 0
end

while true do
	wait(3)
	disappear()
	wait(3)
	appear()	
end

3. 스크립트 실행해 보자!

자, 스크립트를 작성했으면 플레이를 해서 확인해보면 됩니다.

Lua 스크립트 로블록스 - lua seukeulibteu lobeullogseu
3초마다 파트가 사라졌다 나타나는 모습

이번 포스팅은 여기서 마치도록 하겠습니다.

감사합니다.

방문하신 모든 분들 좋은 하루 보내세요~!