플러그인

플러그인은 Studio에 새로운 기능을 추가할 수 있는 확장 기능입니다. 크리에이터 마켓플레이스에서 커뮤니티가 만든 플러그인을 찾아 설치 및 관리할 수도 있고, 플러그인을 직접 만들어 도구 상자게시하여 체험 전체에서 사용할 수도 있습니다. 또한 본인의 플러그인을 다른 크리에이터들이 자신의 개발 프로세스에서 사용할 수 있도록 크리에이터 마켓플레이스에 게시할 수도 있는데, 이때 무료로 제공하거나 Robux를 받고 판매할 수도 있습니다.

새 플러그인 만들기

플러그인을 직접 만들어 Studio의 워크플로를 향상할 수 있습니다. 아래의 예제 코드는 EmptyScriptAdder라는 플러그인으로서, 빈 스크립트를 개체의 자식으로 또는 ServerScriptService에 삽입하는 플러그인입니다. 아래 섹션은 이 플러그인을 만드는 과정의 주요 부분에 대한 설명입니다.

EmptyScriptAdder Plugin

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Create a new toolbar section titled "Custom Script Tools"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Add a toolbar button named "Create Empty Script"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://4458901886")
-- Make button clickable even if 3D viewport is hidden
newScriptButton.ClickableWhenViewportHidden = true
local function onNewScriptButtonClicked()
local selectedObjects = Selection:Get()
local parent = game:GetService("ServerScriptService")
if #selectedObjects > 0 then
parent = selectedObjects[1]
end
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
ChangeHistoryService:SetWaypoint("Added new empty script")
end
newScriptButton.Click:Connect(onNewScriptButtonClicked)

플러그인 스크립트 저장하기

플러그인은 스크립트에서 시작합니다. 플러그인을 만들려면 Script를 만든 다음 탐색기를 사용하여 플러그인으로 저장해야 합니다. 예를 들어, EmptyScriptAdder 플러그인을 만들려면 다음을 수행하세요.

  1. ServerStorage 안에 새로운 Script를 삽입하고 이름을 EmptyScriptAdder로 바꿉니다.

  2. EmptyScriptAdder Plugin 코드를 복사하여 이 새로운 스크립트에 붙여 넣습니다.

  3. 탐색기에서 스크립트를 마우스 오른쪽 버튼으로 클릭하고 로컬 플러그인으로 저장을 선택합니다.

  4. 팝업 창에서 저장을 클릭하여 Studio 설치를 위한 로컬 Plugins 폴더에 이 플러그인 스크립트를 삽입합니다. 출력 창에서 플러그인이 성공적으로 저장되었고 저장 후 플러그인이 처음으로 실행된다는 것을 알려줍니다.

도구 모음 버튼 추가

Studio 도구 모음의 플러그인 탭에 플러그인을 위한 버튼을 추가하려면 Plugin:CreateToolbar()PluginToolbar:CreateButton() 매서드를 사용하세요. EmptyScriptAdder를 위한 코드에서 5행은 사용자 지정 스크립트 도구라는 이름의 도구 모음에 새로운 섹션을 만들고, 8행은 빈 스크립트 만들기 라는 이름의 버튼을 만듭니다.

클릭 시 코드 실행

사용자가 도구 모음 버튼을 클릭할 때 플러그인이 코드를 실행하도록 하려면 이 버튼의 PluginToolbarButton.Click 이벤트에 함수를 연결해야 합니다. EmptyScriptAdder를 위한 코드에서 연결 함수는 onNewScriptButtonClicked입니다.

사용자 선택 확인

사용자가 선택한 사항에 따라 플러그인의 작동 방식을 수정하려면 Selection 서비스를 사용하세요. onNewScriptButtonClicked 함수는 사용자에게 선택된 항목이 있는지 확인하여 ServerScriptService 안이 아니라 자식 개체로 새로운 스크립트를 만듭니다. 사용자에게 선택된 항목이 없으면 ServerScriptService에 새로운 스크립트를 만듭니다.

실행 취소 및 다시 실행 지원

ChangeHistoryService를 사용하여 사용자가 체험 내에서 플러그인이 수행한 변경 사항을 실행 취소하고 다시 실행할 수 있도록 합니다. 스크립트에서 ChangeHistoryService:TryBeginRecording()을 호출하도록 플러그인을 설정하고 변경하기 전에 API 호출에 할당된 식별자를 저장합니다. 그런 다음 변경 후 ChangeHistoryService:FinishRecording()을 호출하도록 플러그인을 설정하여 실행 취소 및 다시 실행을 위해 기록 세션 중에 변경된 사항을 캡처합니다.

다음 코드 샘플은 선택한 부분에 네온 재질을 적용할 수 있는 예제 플러그인을 생성합니다. ChangeHistoryService를 사용하여 플러그인에 의해 변경된 사항을 기록하고 관리합니다.

Example Material Plugin with Recordings for Undo and Redo

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- 예제 플러그인 만들기
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- 클릭 이벤트에 함수 연결
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
-- 특정 식별자로 녹음 시작 시도
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- 녹음이 성공적으로 시작되었는지 확인
if not recording then
-- 여기에서 오류를 처리. 이는 플러그인이 이전 작업을 시작했음을 나타냅니다
-- 녹음하고 완료하지 못했습니다. 하나의 녹음만 가능합니다
-- 플러그인별로 한 번에 활성화됩니다.
return
end
-- 선택한 파트를 반복
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon -- 파트의 재질을 네온으로 설정
end
-- 기록을 끝내고 변경 사항을 기록에 커밋
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

플러그인 게시

모델, 메시, 이미지, 애니메이션과 마찬가지로 Roblox에 플러그인을 게시하여 도구 상자에서 쉽게 재사용할 수 있습니다. 또한 플러그인의 기능에 대한 시각적 정보를 제공하는 보충 섬네일과 함께 플러그인을 크리에이터 마켓플레이스에 게시하여 다른 크리에이터들에게 플러그인을 구매하거나 설치할 권한을 제공할 수 있습니다. 판매하실 수 있는 플러그인 최소 가격은 100 Robux입니다.

플러그인을 게시하려면 다음을 수행하세요.

  1. 탐색기 창에서 Roblox에 게시하려는 플러그인 스크립트를 마우스 오른쪽 버튼으로 클릭합니다. 콘텍스트 메뉴가 표시됩니다.

  2. 플러그인으로 게시를 선택합니다. 애셋 구성 창이 열립니다.

  3. (선택 사항) 창의 왼쪽 상단 모서리에서 이미지를 클릭하여 512×512 픽셀 이미지를 업로드합니다.

  4. 아래와 같은 필드에 정보를 입력합니다.

    • 이름: 플러그인의 제목입니다.
    • 설명: 잠재적 사용자가 기대할 수 있는 플러그인의 기능에 대한 설명입니다.
    • 크리에이터: 이 플러그인의 크리에이터로 지정하려는 크리에이터입니다. 팀 제작을 사용하는 경우 모든 크리에이터가 표시되고, 그렇지 않으면 '나'가 유일한 선택 항목입니다.
  5. (선택 사항) 신분증이나 전화로 인증을 완료한 경우, + 버튼을 클릭하여 플러그인에 대해 최대 5개의 보충 섬네일을 추가할 수 있습니다.

  6. (선택 사항) 마켓플레이스에 배포 토글을 활성화하여 플러그인을 크리에이터 마켓플레이스에 게시합니다. 이전에 계정 인증을 완료한 경우, 가격 필드가 제공됩니다.

  7. (선택 사항) 가격 필드에서 플러그인에 대해 부과하고 싶은 Robux 금액을 입력합니다. 기본값인 0을 유지하면 플러그인이 모든 크리에이터에게 무료로 제공됩니다.

  8. 제출 버튼을 클릭합니다. 플러그인이 이제 도구 상자에 나타납니다.

플러그인 관리

플러그인을 게시하려면 다음과 같이 해보세요.

  1. 플러그인 탭에서 플러그인 관리 버튼을 클릭하여 플러그인 관리 창을 엽니다.

  2. 관리하려는 플러그인에 대해 다음과 같은 작업을 수행할 수 있습니다.

    1. 업데이트 - 플러그인을 최근에 게시된 버전으로 업데이트합니다. 이 버튼이 보이지 않으면 플러그인이 이미 최신 버전인 것입니다.
    2. 활성 - 이 플러그인이 활성 상태인지 아닌지를 토글합니다.
    3. 세부 정보 / 제거 - 메뉴를 열어 플러그인의 세부 정보를 보거나 플러그인을 제거합니다.