🍯 캐릭터간 충돌 사용의 기본값이 false로 변경되었어요.
(이제 따로 설정하지 않는 한 캐릭터끼리 충돌이 무시돼요.)
만약 캐릭터끼리 💥충돌이 되게 설정하려면 SetEnableCollisionBetweenCharacter 함수를 사용해야 해요.
-- 서버 스크립트에서
player:SetEnableCollisionBetweenCharacters(true) --특정 플레이어가 다른 캐릭터와 충돌되게 설정해요.
🍯 ProgressBar 위젯에서 📊게이지의 변화를 서서히 연출할 수 있는 Burst 기능이 추가되었어요.
(Burst 게이지를 이용하려면 ProgressBar의 BackGround 게이지 영역이 투명해야 해요.)
-- 클라 스크립트에서
local InPrevValue = 0
local InTargetValue = 0.8
local InDuration = 2
local InTweenType = Enum.UIEasingType.Linear
ProgressBar:BurstStart(InPrevValue, InTargetValue, InDuration, InTweenType) -- 버스트 게이지를 표현해요 (BurstEnable이 켜져있어야 해요)
ProgressBar:BurstStop() -- 버스트 게이지를 멈춰요 (마지막 값으로 즉시 변화해요)
🍯 Text 위젯에서 🔢숫자의 변화를 서서히 연출할 수 있는 Rolling 기능이 추가되었어요.
-- 클라 스크립트에서
local InPrevValue = 1
local InTargetValue = 100
local InDuration = 2
local InTweenType = Enum.UIEasingType.Linear
text:StartRolling(InPrevValue, InTargetValue, InDuration, InTweenType) -- 텍스트 롤링을 표현해요
text:StopRolling() -- 텍스트 롤링을 멈춰요 (마지막 값으로 즉시 변화해요)
캐릭터의 🏃♀️물리 속도를 가져오는 기능과 초기화하는 기능이 추가되었어요.
-- 서버 스크립트에서
local velocity = character.Velocity -- 물리 속도를 가져와요 (Vector3)
if velocity .Y >= 1000 then
character:ZeroVelocity() -- 캐릭터의 물리 속도를 0으로 만들어요.
end
🍯 일부 토이에서 힘을 가할 때 사용하고 있던 AddForce 함수를,
AddImpulse 혹은 LaunchCharacter 로 변경했어요.
툴박스 혹은 ObstacleRun / VS_ObstacleRun 템플릿에서, 다음 토이들의 Server 스크립트를 참고해주세요.
ClockWeight
HitRoad
LaunchBall
RotClock
RotHammer / RotHammer_Type2
RotWindmil
AddImpulse, LaunchCharacter 의 사용 방법은, 1.5.0 패치노트를 참고해주세요.
🕊️🐟🐿️스켈레탈 메쉬를 제어하는 기능이 추가되었어요! 현재는 🔒 유관 기업만 사용할 수 있어요. 🙏 (🚩 이번 패치에서 트랙 기능까지는 제공되지만 콜리전 기능은 제공하지 않아요.)
-- 클라 스크립트에서
local SkeletalMesh = Script.Parent
-- 스켈레탈 메쉬의 모든 애니메이션 이름들을 가져와요
local aniNameList = SkeletalMesh:GetAnimAssetNameList()
for i = 1, #aniNameList do
print(SkeletalMesh, "GetAnimAssetNameList", i, aniNameList[i])
end
print("GetAnimAssetNameCount", SkeletalMesh:GetAnimAssetNameCount()) -- 스켈레탈 메쉬의 애니메이션 갯수를 가져와요
print("GetCurrentAnimName", SkeletalMesh:GetCurrentAnimName()) -- 재생중인 현재 애니메이션의 이름을 가져와요
print("GetCurrentAnimIndex", SkeletalMesh:GetCurrentAnimIndex()) -- 재생중인 현재 애니메이션의 인덱스를 가져와요
local isSuccess = SkeletalMesh:SetAnimName("Attack") -- 이름에 해당하는 애니메이션을 변경해요 (재생 실패시 false가 반환돼요)
local isLoop = true
SkeletalMesh:PlayAnim(isLoop) -- 애니메이션을 재생해요
local isSuccess = SkeletalMesh:SetAnimIndex(2) -- 인덱스에 해당하는 애니메이션을 변경해요 (재생 실패시 false가 반환돼요)
local isLoop = true
SkeletalMesh:PlayAnim(isLoop) -- 애니메이션을 재생해요
print(SkeletalMesh:IsPlayingAnim()) -- 애니메이션의 재생 여부를 반환해요
SkeletalMesh:PauseAnim() -- 애니메이션의 일시정지해요 (PlayAnim 함수를 호출해서 다시 재생할 수 있어요)
SkeletalMesh:StopAnim() -- 애니메이션을 정지해요
---------------------------------------------------------------------------
-- 서버 / 클라 스크립트에서
local SkeletalMesh = Script.Parent
-- 객체가 스켈레탈 메쉬인지 확인하는 기능이 추가되었어요.
print(SkeletalMesh:IsSkeletalMesh())
-- 기본 속성, 함수들을 사용할 수 있어요.
print(SkeletalMesh.Name)
print(SkeletalMesh.Parent)
print(SkeletalMesh:GetKey())
print(SkeletalMesh:IsValid())
print(SkeletalMesh:IsValidValue("SomeValue"))
-- 스켈레탈 메쉬도 위치나 회전, 크기를 변경할 수 있어요.
SkeletalMesh.Location = SkeletalMesh.Location + Vector.new(200, 0, 0)
SkeletalMesh.Rotation = SkeletalMesh.Rotation + Vector.new(0, 0, 60)
SkeletalMesh.Scale = SkeletalMesh.Scale + Vector.new(0.8, 0.8, 0.8)
-- 스켈레탈 메쉬에도 트랙을 사용할 수 있어요
SkeletalMesh.Track:AddLocalMove("Move", Vector.new(300, 0, 0), 2, false)
SkeletalMesh.Track:AddEmpty("Move", 1)
SkeletalMesh.Track:PlayTransformTrack("Move", Enum.TransformPlayType.Repeat, InfinityPlay)
-- OnCollisionEvent, OnBeginOverlapEvent 등 콜리전 기능은 아직 사용할 수 없어요!
📱디바이스의 언어🔤를 가져오는 기능이 추가되었어요.
-- 클라 스크립트에서
local currentLanguage = LocalPlayer:GetDefaultLanguage() -- 현재 기기의 언어를 가져올 수 있어요.
print("currentLanguage", currentLanguage)
if currentLanguage == Enum.Language.Korean then print("Korean") -- 한국어
elseif currentLanguage == Enum.Language.English then print("English") -- 영어
elseif currentLanguage == Enum.Language.Japanese then print("Japanese") -- 일본어
elseif currentLanguage == Enum.Language.SimplifiedChinese then print("Chinese") -- 중국어 간체
elseif currentLanguage == Enum.Language.TraditionalChinese then print("TraditionalChinese") -- 중국어 번체
elseif currentLanguage == Enum.Language.French then print("French") -- 프랑스어
elseif currentLanguage == Enum.Language.Spanish then print("Spanish") -- 스페인어
elseif currentLanguage == Enum.Language.German then print("German") -- 독일어
end
클라이언트 스크립트에 NPC의 특정 본에 이펙트💫를 생성하는 함수가 추가되었어요.
NPC:CreateFX(Workspace.Effect, Enum.Bone.Body)
🍯 캐릭터나 NPC가 특정 위치를 🕶️바라보게 하는 LookAt 함수가 추가되었어요.
local lookPos = Workspace.DungeonGate
NPC:LookAt(lookPos)
Character:LookAt(lookPos)
🍯 ClientScript 에서 사용할 수 있는, 🏃애니메이션 속도 및 시간 길이 관련 함수가 추가되었어요.
-- GetAnimLength
-- 현재 캐릭터 애니메이션 상태 머신에 추가한 애니메이션의 길이를 얻어올 수 있어요. (얻어올 애니메이션 이름)
-- AddBlendAnimState 함수로 추가한 블렌드 애니메이션에는 해당 함수를 사용할 수 없어요.
local aniName = "Sit"
local curAniLength = character:GetAnimLength(aniName)
print("curAniLength = ".. curAniLength)
-- SetAnimSpeedRate
-- 현재 캐릭터 애니메이션 상태 머신에 추가한 애니메이션의 속도 비율을 설정할 수 있어요.
-- 애니메이션 속도 비율 변경 시, 다른 애니메이션 상태 머신에는 반영되지 않아요.
-- 속도 비율을 변경했던 애니메이션 상태 머신이 다시 캐릭터에 적용된 경우, 이전에 설정한 속도 비율이 그대로 반영돼요.
local aniName = "Sit"
local speedRate = 0.3
character:SetAnimSpeedRate(aniName, speedRate)
-- GetAnimSpeedRate
-- 현재 캐릭터 애니메이션 상태 머신에 추가한 애니메이션의 속도 비율을 얻어올 수 있어요.
local aniName = "Sit"
local curSpeed = character:GetAnimSpeedRate(aniName)
print("curSpeed = "..curSpeed)
애니메이션의 StateSetting⚙️에 연결되는 OnEnter / OnUpdate / OnExit 이벤트의 동작이
❗모든 플레이어를 대상으로 호출되도록 변경되었어요.
아래 샘플 코드를 참고해주세요.
--[ OnEnter ]
--JumpLoop
AnimState = AnimStateMachineSetting:AddAnimState("JumpLoop", Object.Fall, InfinityPlay)
--직전에 AnimState에 정의한 애니(JumpLoop)에 이벤트 할당
local function EnterJumpLoop(animStateMachine)
local character = animStateMachine:GetOwnerCharacter()
if not character:IsMyCharacter() then
return
end
end
AnimState.OnEnter:Connect(EnterJumpLoop)
------------------------------------------------------------------------------------------------------
--[ OnUpdate ]
--JumpLoop
AnimState = AnimStateMachineSetting:AddAnimState("JumpLoop", Object.Fall, InfinityPlay)
--직전에 AnimState에 정의한 애니(JumpLoop)에 이벤트 할당
local function UpdateJumpLoop(animStateMachine, updateTime)
local character = animStateMachine:GetOwnerCharacter()
if not character:IsMyCharacter() then
return
end
end
AnimState.OnUpdate:Connect(UpdateJumpLoop)
------------------------------------------------------------------------------------------------------
--[ OnExit ]
--JumpLoop
AnimState = AnimStateMachineSetting:AddAnimState("JumpLoop", Object.Fall, InfinityPlay)
--직전에 AnimState에 정의한 애니(JumpLoop)에 이벤트 할당
local function ExitJumpLoop(animStateMachine)
local character = animStateMachine:GetOwnerCharacter()
if not character:IsMyCharacter() then
return
end
end
AnimState.OnExit:Connect(ExitJumpLoop)
월드 관리 페이지에 📫월드 이벤트가 추가되었어요!
월드 이벤트를 이용해서 원하는 시간에 설정한 숫자, 문자열, 불리언 같은 ⚙️데이터나
공지사항 같은 📢메시지를 월드로 보낼 수 있어요.
👉 해당 메뉴얼을 참고해주세요.
월드 이벤트에 추가한 데이터에 일정을 등록하면, 해당 일정의 날짜, 시간, 요일이 됐을 때 값이 전송돼요.
월드 이벤트는 스크립트에서 아래와 같이 처리할 수 있어요.
-- 월드 이벤트 정보를 요청하는 함수예요.
-- 이 함수를 호출해서 OnGetWorldEventListEvent를 받아야 월드 이벤트를 사용할 수 있어요.
Game:RequestWorldEventList()
------------------------------------------------------------------------
-- 월드 이벤트 정보가 갱신될 때 호출되는 이벤트예요.
-- 이 이벤트를 사용하려면 RequestWorldEventList를 호출해야 하며, 월드 이벤트에 대한 내부 설정이 모두 끝나면 이벤트가 호출돼요.
-- (월드 이벤트의 데이터를 추가하거나, 수정하면 다시 호출될 수 있어요.)
local function GetWorldEventListEvent()
print("OnGetWorldEventListEvent - 월드이벤트 세팅 완료됨!!")
end
Game.OnGetWorldEventListEvent:Connect(GetWorldEventListEvent)
------------------------------------------------------------------------
-- 현재 시간이 월드 이벤트에 등록한 문자열 데이터의 일정이 되면 호출되는 이벤트에요.
-- keyName으로 어떤 월드 이벤트인지 구분할 수 있어요.
local function OnWorldEventString(keyName, keyValue)
print(keyName, ":", keyValue)
end
Game.OnGetWorldEventString:Connect(OnWorldEventString)
-- 현재 시간이 월드 이벤트에 등록한 숫자 데이터의 일정이 되면 호출되는 이벤트에요.
-- keyName으로 어떤 월드 이벤트인지 구분할 수 있어요.
local function OnWorldEventNumber(keyName, keyValue)
print(keyName, ":", keyValue)
end
Game.OnGetWorldEventNumber:Connect(OnWorldEventNumber)
-- 현재 시간이 월드 이벤트에 등록한 불리언 데이터의 일정이 되면 호출되는 이벤트에요.
-- keyName으로 어떤 월드 이벤트인지 구분할 수 있어요.
local function OnWorldEventBool(keyName, keyValue)
print(keyName, ":", keyValue)
end
Game.OnGetWorldEventBool:Connect(OnWorldEventBool)
------------------------------------------------------------------------
local function RequestGetValue(player)
-- 공지사항 타입이 아닌 데이터 타입은 일정이 되지 않았더라도 현재 값을 가져올 수 있어요.
local expRate = Game:RequestWorldEventNumber("ExpRate")
local findNPCName = Game:RequestWorldEventString("FindNPCName")
local isOpenRaidDungeon = Game:RequestWorldEventBool("IsOpenRaidDungeon")
-- 월드 이벤트에 대한 내부 설정이 끝나지 않았으면 nil이 반환될 수 있어요.
if expRate ~= nil and expRate ~= "nil" then
print("ExpRate : ", expRate)
end
if findNPCName ~= nil and findNPCName ~= "nil" then
print("FindNPCName : ", findNPCName)
end
if isOpenRaidDungeon ~= nil and isOpenRaidDungeon ~= "nil" then
print("IsOpenRaidDungeon : ", isOpenRaidDungeon)
end
end
같은 월드 안에서 다른 데디서버에 있는 유저들을 모아 연결랜드로 이동시킬 수 있는
🧑🤝🧑매치메이킹 기능이 추가되었어요.
레이팅 점수 같은 특정 데이터를 기준으로 범위🔍에 해당 유저들을 따로 처리하는것도 가능해요!
👉 해당 메뉴얼을 참고해주세요.
-- 매칭 대기열에 유저를 등록하는 함수예요.
-- 유저는 FilterType, RangeMin, RangeMax, MaxPlayer, WaitTime가 같은 매칭 대기열에 등록돼요. (데디서버가 다르더라도 같은 대기열에 등록돼요.)
-- 유저의 필터 값(FilterValue)이 필터 범위(RangeMin~RangeMax) 이내여야 대기열에 등록돼요.
-- 매칭 대기열에 등록된 유저 수가 MaxPlayer가 되거나, WaitTime가 경과하면 매칭 이동을 시작해요.
-- MaxPlayer는 이동할 랜드의 인원 수보다 크지 않아야 해요.
local function RequestAddMatch(player)
local landOrder = 1 -- 이동할 랜드
local filterType = "Raiting" -- 필터타입 (ex : 레이팅, 점수, 클래스 종류 등)
local filterValue = player.MMR -- 필터범위에서 사용할 플레이어별 값 (ex : 레이팅, 점수, 클래스 종류 등)
local minMMR = 5 -- 필터범위 (최소값)
local maxMMR = 20 -- 필터범위 (최대값)
local maxPlayer = 2 -- 이동에 필요한 인원
local waitTime = 20 -- 기다릴 시간
-- 매칭으로 이동할 랜드의 연결 순서를 할당해요.
player.MatchLandOrder = landOrder
Game:AddMatchQueue(player, landOrder, filterType, filterValue, minMMR, maxMMR, maxPlayer, waitTime)
end
------------------------------------------------------------------------------------------------------
-- 매칭 대기열에 유저 등록이 완료되면 호출되는 이벤트에요.
-- 대기열 등록에 실패하면 matchID가 반환되지 않습니다.
local function MatchCallback(player, matchID, playerCount)
-- playerCount는 등록한 시점 기준으로 반환돼요.
print(player.Name, "MatchCallback", matchID, "에 등록된 유저 수 : ", playerCount)
if matchID == nil or matchID == "" then
return
end
-- 등록된 매칭 대기열 서버의 ID를 할당해요.
player.MatchID = matchID
end
Game.OnAddMatchQueueEvent:Connect(MatchCallback)
------------------------------------------------------------------------------------------------------
-- 대기열 인원/시간 충족하여 이동 가능 상황이 되면 이동 처리해요.
local function MatchTeleportCallback(player)
local playerID = player:GetPlayerID()
-- 매칭 서버로 이동 처리
Game:TeleportToMatchServer(playerID, player.MatchLandOrder, player.MatchID)
end
Game.OnMatchTeleportEvent:Connect(MatchTeleportCallback)
------------------------------------------------------------------------------------------------------
-- 매칭 대기열에 등록된 유저를 제거하는 함수예요.
function RequestRemoveMatch(player)
if not player:IsValidValue("MatchID") or player.MatchID == nil then
print(player, "에게 MatchID가 없습니다.")
else
-- 매칭 대기열에서 유저 제거
Game:RemoveMatchQueue(player.MatchID, player)
end
player.MatchID = nil
player.MatchLandOrder = nil
print("------------------------------------")
end
외부 아바타 사용 방법 메뉴얼이 추가되었어요.
메치메이킹 메뉴얼이 추가되었어요.
월드 이벤트 메뉴얼이 추가되었어요.
웹에서유저데이터 & 리더보드를 관리하는 방법 메뉴얼이 추가되었어요.
채널 기능 메뉴얼이 추가되었어요.
로그 기능 메뉴얼이 추가되었어요.
대시보드 상점에 신규 아바타 의상이 추가되었어요!
👩신규 헤어 8종, 👕신규 상의 23종, 👖신규 하의 18종, 🧤신규 장갑 7종, 👟신규 신발 11종, 🕶️신규 악세서리 16종, 👗신규 코스튬 7종이 추가 되었어요.
월드 내 ✳️환경 설정에서 화면을 💻[FullScreen]으로 변경 시 🖱️마우스 포인터가
정확한 위치 🎯에 위치하도록 수정되었어요.
📲아이폰으로 월드 진입시 디토랜드 로고 및 로딩화면이 정상적으로 노출되도록 변경 되었어요.
아이템 샵 🏬무료 아이템 하단에 “FREE” 표시가 잘 보이도록 수정되었어요.
컨텐츠 리워드 팝업이 출력된 상태에서 채팅을 입력하고 종료하면 키보드🔠가 등장하지 않는 이슈가
수정되었어요.
디토그룹 소통하기 답글 등록 시간(년/월/일) 📆이 반복 출력되지 않도록 수정 되었어요.
클라이언트 스크립트에서 character:IsDie() 호출시 반환값이 사망 여부에 맞게 반환되도록 수정되었어요.
네이버 & 카카오톡 ID를 통한 로그인 방식이 추가되었어요!
이제 일반 계정으로도 채널을 만들 수 있어요!
채널 기능을 사용해서 친구들과 함께 월드를 즐겨보세요. 👨🏼🤝👨🏻
이제 디토룸의 체형 커스텀에서 슬라이더를 아래⬇️로 내리면 🥰귀여운 SD 체형으로 설정할 수 있어요.
내 얼굴이나 AI가 생성한 이미지로 생성할 수 있는 외부 아바타🧑💼 기능이 추가되었어요.
친구들과 함께 자신의 얼굴로 생성한 외부아바타를 등록해서 월드를 더 재미있게 플레이해보세요!
아직 초기 단계이지만 차차 개선할 예정이니 기대해주세요! 👏
외부 아바타 등록 방법은 아래 메뉴얼을 참고해주세요.
local Text = Workspace.ScreenUI.Text
Text.IsEnableOutline = true -- 윤곽선 사용 여부를 설정해요.
Text.OutlineColor = Color.new(255, 255, 255, 255) -- 윤곽선 색상을 변경해요.
Text.OutlineThickness = 10 -- 윤곽선 두께를 설정해요.
Text.OutlineFillAlpha = false -- 윤곽선 안쪽을 색상으로 채울지 여부를 설정해요.
---------------------------------------------------------
Text.IsEnableShadow = true -- 그림자 사용 여부를 설정해요.
Text.ShadowOffset = Vector.new(30, 30, 0) -- 그림자 Offset 을 설정해요.
Text.ShadowColor = Color.new(255, 255, 255, 255) -- 그림자 색상을 변경해요.
🍯 오브젝트를 스튜디오 카메라 앞으로 이동 시키는 기능이 추가되었어요. (단축키 : P)
🍯 메쉬의 모양대로 콜리전을 생성하는 기능이 추가되었어요.
🍯 테마 애니메이션 번들도 개별 애니메이션으로 사용할 수 있게 추가되었어요.
새로운 액션 애니메이션이 추가되었어요!
CharacterSetting에 Cull Distance 설정 기능이 추가되었어요. (기본값은 false 입니다.)
🍯 Environment에 하늘, 구름, 별의 텍스쳐를 바꿀 수 있는 기능이 추가되었어요!
일정 거리 밖에서 생성된 이펙트가 가까이 접근했을 때 보이지 않던 현상이 수정되었어요
🍯 이펙트 타입 5종 추가되었어요. (폭발(카툰), 버블, 라이트닝, 구체, 홀로그램)
🍯 신규 재질(반투명 물, 커스텀, 반투명 커스텀)이 추가되었어요.
부하가 많이 걸리는 재질의 경우 (고부하) 표시가 생겼어요.
선택한 오브젝트의 이름이 프로퍼티 창에 출력되도록 사용성이 개선되었어요.
상품 구매 시 보유 재화가 부족하면, 바로 충전될 수 있도록 개선되었어요.
부족한 재화가 골드와 마이크일 때는 크레딧으로 바로 충전할 수 있어요.
부족한 재화가 크레딧일 때는 현금 결제 팝업이 표시됩니다.
🍯 캐릭터의 점프, 이동 관련 프로퍼티가 변경 및 추가되었어요
이와 관련된 기본값들이 CharacgerSetting > BaseSetting에 파라미터로 추가되었어요.
점프의 횟수와 관련된 세부 수치를 조절할 수 있어요
-- Server Script
local function InitJumpCount(character)
local player = character:GetPlayer()
-- 총 점프 단계 설정
character.JumpMaxCount = 3 --3단 점프 설정
-- 점프 단계별 속도 설정
local jumpSpeed = character:GetMaxJumpByStep(2) -- 2단계 속도 가져오기
character:SetMaxJumpByStep(2, 1000) -- 2단계 속도 설정
-- 점프 단계별 공중 제어 정도 설정
local flyControl = character:GetFlyControlByStep(2) -- 2단계 공중 제어값 가져오기
character:SetFlyControlByStep(2, 0.5) -- 2단계 공중 제어값 설정
end
Game.OnSpawnCharacter:Connect(InitJumpCount)
------------------------------------------------------------------------------------
-- Client Script
local function InitJumpCondition(character)
local jumpStep = 2
character:AddJumpStepCondition(jumpStep, function()
local isCanJump = true
-- 2단계(jumpStep) 점프 사용 가능 조건 (ex : 점프 후 0.5초 이후라면)
-- if someCondition then
-- isCanJump = true
-- end
return isCanJump
end)
end
Game.OnSpawnCharacter:Connect(InitJumpCondition)
이동 관련해서 세부적인 수치를 설정할 수 있어요.
-- Server Script
local function InitMove(character)
local player = character:GetPlayer()
-- 출발 가속도
character.Acceleration = 400 -- 출발 가속도 값 설정
local acceleration = character.Acceleration -- 출발 가속도 값 반환
print("Acceleration", acceleration)
-- 정지 가속도
character.BrakingDecelerationWalking = 200 -- 정지 가속도값 설정
local brakingDecelerationWalking = character.BrakingDecelerationWalking -- 정지 가속도값 반환
print("BrakingDecelerationWalking", brakingDecelerationWalking)
-- 마찰력
character.GroundFriction = 4 -- 마찰력 설정값 설정
local groundFriction = character.GroundFriction -- 마찰력 설정값 반환
print("GroundFriction", groundFriction)
-- 회전 속도
character.RotationSpeed = Vector.new(0, 0, 180) -- 회전 속도값 설정
local rotationSpeed = character.RotationSpeed -- 회전 속도값 반환
print("RotationSpeed", rotationSpeed)
-- 중력 크기
character.GravityScale = 0.3 -- 캐릭터 중력 크기 설정
local gravityScale = character.GravityScale -- 캐릭터 중력 크기 반환
print("gravityScale", gravityScale)
end
Game.OnSpawnCharacter:Connect(InitMove)
캐릭터가 받을 중력 크기를 설정할 수 있어요.
-- Server Script
local function Change_GravityScale(self, character)
if character == nil or not character:IsCharacter() then
return
end
character.GravityScale = 0.3 -- 캐릭터 중력 크기 설정
local gravityScale = character.GravityScale -- 캐릭터 중력 크기 반환
print("gravityScale", gravityScale)
end
Trigger.Collision.OnBeginOverlapEvent:Connect(Change_GravityScale)
이동, 점프 관련된 함수들 중 변경되거나 추가된 함수들이 있어요.
-- Server Script
local function InitJump(character)
local player = character:GetPlayer()
local isEnableJump = true -- 점프 활성화 여부
local jumpStep = 3 -- 점프 단계
local jumpSpeed = 600 -- 점프력
local jumpFlyControl = 0.5 -- 공중 제어력
--점프 여부 제어
--character:JumpEnable(isEnableJump) -- 변경 전 : 점프 기능 정지
character:JumpEnable(isEnableJump) -- 변경 후 : 모든 단계 점프 기능 정지
--점프력 설정
--character:SetMaxJump(jumpSpeed) -- 변경 전 : 점프력 설정
character:SetMaxJump(jumpSpeed) -- 변경 후 : 모든 단계 점프력 설정
character:SetMaxJumpByStep(jumpStep, jumpSpeed) -- 추가 : 특정 단계 점프력 설정
--점프력 가져오기
--local maxJump = character:GetMaxJump() -- 변경 전 : 점프력 반환
local maxJump = character:GetMaxJump() -- 변경 후 : 1단계 점프력 반환
print("maxJump", maxJump)
local maxJump = character:GetMaxJump(jumpStep) -- 추가 : 특정 단계 점프력 반환
print(jumpStep, "maxJump", maxJump)
--공중 제어력 설정
--character:SetFlyControl(jumpFlyControl) -- 변경 전 : 공중 제어력 설정
character:SetFlyControl(jumpFlyControl) -- 변경 후 : 모든 단계 공중 제어력 설정
character:SetFlyControlByStep(jumpStep, jumpFlyControl) -- 추가 : 특정 단계 공중 제어력 설정
--공중 제어력 가져오기
--local flyControl = character:GetFlyControl() -- 변경 전 : 공중 제어력 반환
local flyControl = character:GetFlyControl() -- 변경 후 : 1단계 공중 제어력 반환
print("flyControl", flyControl)
local flyControl = character:GetFlyControl(jumpStep) -- 추가 : 특정 단계 공중 제어력 반환
print(jumpStep, "flyControl", flyControl)
end
Game.OnSpawnCharacter:Connect(InitJump)
🍯 Swim ControlMode 가 추가되었어요. 🏊♀️
카메라가 바라보는 방향으로 캐릭터가 이동하는 모드에요.
--Server Script
local function SpawnCharacter(character)
-- 캐릭터의 ControlMode 를 Swim 으로 변경해요.
character:SetControlMode(Enum.ControlMode.Swim)
end
Game.OnSpawnCharacter:Connect(SpawnCharacter)
BaseSetting 에 추가된 수영 관련 프로퍼티를 참고해주세요.
바다 혹은 우주 월드 제작에 이용해보세요.
NPC의 ControlMode를 수정할 수 있게 기능이 추가되었어요.
--서버 스크립트
NPC:SetControlMode(Enum.ControlMode.Climb)
print(NPC, "Current Control Mode : ", NPC:GetControlMode())
NPC의 캐릭터세팅, Base 세팅, 외형 세팅, 애니메이션 세팅을 변경하는 함수가 추가되었어요.
--모두 서버 스크립트에서 사용해야 합니다.
-- NPC 캐릭터 세팅 변경
local settingObj = Workspace.CharacterSetting
npc:ChangeCharacterSetting(settingObj) --해당 NPC의 캐릭터가 바로 변경돼요
local settingObj = Workspace.CharacterSetting
local useMyBody = true
local isResetWhenRespawn = true
npc:ChangeCharacterSetting(settingObj, useMyBody, isResetWhenRespawn) --해당 NPC의 캐릭터가 바로 변경돼요
------------------------------------------------------------------------------------------------------------------------
-- NPC 캐릭터 Base 세팅 변경
local settingObj = Workspace.CharacterSetting.BaseSetting
npc:ChangeCharacterBaseSetting(settingObj) --해당 NPC의 캐릭터가 바로 변경돼요
local settingObj = Workspace.CharacterSetting.BaseSetting
local isResetWhenRespawn = true
npc:ChangeCharacterBaseSetting(settingObj, isResetWhenRespawn) --해당 NPC의 캐릭터가 바로 변경돼요
------------------------------------------------------------------------------------------------------------------------
-- NPC 캐릭터 외형 세팅 변경
local settingObj = Workspace.CharacterSetting.AppearanceSetting
npc:ChangeCharacterAppearanceSetting(settingObj) --해당 NPC의 캐릭터가 바로 변경돼요
local settingObj = Workspace.CharacterSetting.AppearanceSetting
local useMyBody = true
local overwriteParts = true
local isResetWhenRespawn = true
npc:ChangeCharacterAppearanceSetting(settingObj, useMyBody, overwriteParts, isResetWhenRespawn) --해당 NPC의 캐릭터가 바로 변경돼요
------------------------------------------------------------------------------------------------------------------------
-- NPC 캐릭터 애니메이션 세팅 변경
local settingObj = Workspace.CharacterSetting.AnimationSetting
npc:ChangeCharacterAnimationSetting(settingObj) --해당 NPC의 캐릭터가 바로 변경돼요
local settingObj = Workspace.CharacterSetting.AnimationSetting
local isResetWhenRespawn = true
npc:ChangeCharacterAnimationSetting(settingObj, isResetWhenRespawn) --해당 NPC의 캐릭터가 바로 변경돼요
NPC를 제어하는 함수가 추가되었어요.
--모두 서버 스크립트에서 사용해야 해
------------------------------------------------------------------------------------------------------------------------
-- 킬 & 리스폰
npc:KillCharacter() -- NPC 킬
npc:RespawnCharacter() -- NPC 리스폰
------------------------------------------------------------------------------------------------------------------------
-- 체크포인트
npc:SetCheckPoint(checkPoint) -- NPC 체크포인트 설정
local checkPoint = npc:GetCheckPoint() -- 설정된 NPC 체크포인트 가져오기
npc:RemoveCheckPoint() -- NPC 체크포인트 삭제
------------------------------------------------------------------------------------------------------------------------
-- 특정 방향으로 value만큼 이동
local dir = Vector.new(1, 1, 0)
local value = 100
npc:MoveDir(dir, value)
------------------------------------------------------------------------------------------------------------------------
-- 이동 제어
npc:SetEnableMovementControl(false) -- NPC 이동 가능 여부 제어
local state = npc:GetEnableMovementControl() -- NPC 이동 가능 여부 가져오기
print(state)
------------------------------------------------------------------------------------------------------------------------
-- NPC 기준으로 LineTrace
local npc = Workspace.NPC
local startPos = npc.Location
local dir = npc.Transform:GetForward()
local distance = 10000
local hitList = npc:LineTraceList(startPos, dir, distance)
for i = 1, #hitList do
print("name", hitList[i].HitObject.Name, "hit location", hitList[i].HitLocation)
end
------------------------------------------------------------------------------------------------------------------------
-- NPC 기준으로 LineTrace (특정 충돌타입 대상)
local ColTag = "CollisionTag1"
Game:AddUserCollisionType(ColTag)
Workspace.Cube.Collision:SetCollisionType(ColTag)
local startPos = npc.Location
local dir = npc.Transform:GetForward()
local distance = 10000
local hitList = npc:LineTraceList(startPos, dir, distance, ColTag)
for i = 1, #hitList do
print("name", hitList[i].HitObject.Name, "hit location", hitList[i].HitLocation)
end
캐릭터 신체 부위 별로 물리 적용 여부를 설정할 수 있는, 랙돌 함수가 추가되었어요
--Server Script
local function SpawnCharacter(character)
if character == nil then
return
end
-- 캐릭터 특정 Bone 의 Ragdoll 을 On 할 수 있어요.
-- Bone 중 Pelvis, Root 부위를 설정하면, 캐릭터 이동 조작을 할 수 없어요.
character:SetCharacterRagdoll(Enum.Bone.Body)
wait(3)
-- Bone 인자 없이 사용하는 경우, 캐릭터 전체의 Ragdoll 을 On 할 수 있어요.
character:SetCharacterRagdoll()
wait(3)
-- Ragdoll 이 된 캐릭터를 원래대로 되돌릴 수 있어요.
character:ResetCharacterRagdoll()
end
Game.OnSpawnCharacter:Connect(SpawnCharacter)
🍯 오브젝트에 순간적인 물리 충격을 가하는 AddImpulse 함수가 추가되었어요. (기존 함수 AddForce는 지속적인 물리 충격을 가할때 사용하세요.)
local force = Vector.new(50000, 0, 0)
toy.Physics:AddImpulse(force)
캐릭터 진행 방향에 상관없이 힘을 가할 수 있는, LaunchCharacter 함수가 추가되었어요.
아래 내용을 참고해서, 상황에 맞게 사용해주세요.
Character 객체에 사용된 AddForce 함수는, 캐릭터의 진행 방향에 따라 계산된 힘이 적용돼요.
local force = Vector.new(0, 0, 10000)
Character:AddForce(force)
LaunchCharacter 함수는, 캐릭터 진행 방향에 상관 없이 정해진 힘만큼 캐릭터에 적용돼요.
local force = Vector.new(0, 0, 10000)
Character:LaunchCharacter(force)
캐릭터의 표정을 바꾸는 함수가 추가되었어요.
local player = LocalPlayer:GetRemotePlayer()
local character = player:GetCharacter()
local faceDuration = 5 --표정 출력 시간
character:PlayFaceExpression("Wink", faceDuration) --표정을 실행해요.
wait(2)
character:StopFaceExpression() --실행한 표정을 취소해요.
wait(2)
local faceDuration = 20 --표정 출력 시간
local inFaceLoop = false --표정 무한 실행 여부
character:ChangeAnimStateWithFace("Sit", "Wink", faceDuration, inFaceLoop) --캐릭터 애니메이션(Sit)과 표정을 동시에 변경해요.
-- 사용할 수 있는 표정 목록
--[[
SimplyCloseBothEyes 눈 감기
Wink 윙크
StickOutTongue 메롱
Curious 의심
Fearless 겁없는
Kiss 키스
Interested 관심있는
BigSmile 큰 웃음
Laugh 눈물 나게 웃긴
Excited 신이 난
JoyfulSmile 즐거운
SimpleSmile 옅은 미소
Confident 당당한
Relief 안도
Melancholy 우울한
Cry 울음
Angry 화난
Discomfort 불편한
Rage 분노
Scared 두려운
Panic 패닉
SimplySurprised 약간 놀란
Amazed 놀라운
Frightened 겁먹은
Pain 고통
Ache 아픈
Distress 슬픈
]]--
🍯 로그를 기록할 수 있는 함수가 추가되었어요.
월드에 접속한 플레이어들의 행동 데이터를 수집해서, 지표 및 밸런싱에 활용할 수 있어요.
ex) 플레이어가 재화를 어디에 얼만큼 소비했는지 기록
ServerScript 에서는 SaveLog 함수를, ClientScript 에서는 SaveMyLog 함수를 사용해요.
-- ServerScript
local function SaveLogData(player, value)
local playerID = player:GetPlayerID()
local dataKey = "Gold" -- 기록할 로그의 데이터 키에요.
local index_1 = 1 -- 기록할 로그의 1번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
local index_2 = 1000 -- 기록할 로그의 2번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
Game:SaveLog(dataKey, playerID, value)
Game:SaveLog(dataKey, index_1, playerID, value)
Game:SaveLog(dataKey, index_1, index_2, playerID, value)
end
Game:ConnectEventFunction("SaveLogData", SaveLogData)
-- ClientScript
local function SaveLogData(value)
local dataKey = "Gold" -- 기록할 로그의 데이터 키에요.
local index_1 = 1 -- 기록할 로그의 1번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
local index_2 = 1000 -- 기록할 로그의 2번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
Game:SaveMyLog(dataKey, value)
Game:SaveMyLog(dataKey, index_1, value)
Game:SaveMyLog(dataKey, index_1, index_2, value)
end
기록된 로그 데이터는, 월드 관리 > 월드 설정 > 로그 데이터 관리 페이지에서 CSV 로 다운로드 📥 할 수 있어요.
👩신규 헤어 9종, 👕신규 상의 21종, 👖신규 하의 18종, 🧤신규 장갑 8종, 👟신규 신발 10종, 🕶️신규 악세서리 2종, 👗신규 코스튬 2종이 추가 되었어요.
👩 헤어
● 바람 머리, 레이디가가 단발(보라, 연두), 아이돌 펌(아이보리), 아이돌 펌(살구색), 샤기컷(브라운), 샤기컷(금발), 양갈래 헤어, 앞 가르마 헤어(파랑), 앞 가르마 헤어(검정)
👕 상의
● 강시 상의, 좀비 상의(그레이), 줌비 상의(퍼플), 드라큘라 롱 자켓, 여사제 상의(블랙), 여사제 상의(블루), 강시 상의(퍼플), 롱 패딩(녹색), 롱 패팅(핑크), 여자 정방(검정), 여자 정장(화이트), 롱 코트(갈색), 롱 코트(검정),
FPS 점퍼(남색), FPS 점퍼(얼룩), FPS 강화복, 츄리닝(핑크), 소방관 상의(오렌지), 소방관 상의(빨강), 경찰 정복(남), 경찰 정복(여), 프랑켄슈타인 상의(블랙)
Auto Distance를 체크 해제 후, Manual Disatance에서 거리를 조절할 수 있어요.
🍯 위젯 드래그 & 드랍 이벤트가 추가되었어요.
local ScreenUI = Workspace.ScreenUI
local DragWidget = ScreenUI.Slot
local DropArea = ScreenUI.ScrollBox
-- 드래그 시작시
local function BeginDrag(self, position)
print(self.Name, " BeginDragEvent!")
print(self.Name, " BeginPosition : ", position)
end
DragWidget.OnBeginDragEvent:Connect(BeginDrag) -- 드래그 시작시 호출 이벤트 연결
-- 드래그 취소시
local function CancelDrag(self, position)
print(self.Name, " CancelDragEvent!")
print(self.Name, " CancelPosition : ", position)
end
DragWidget.OnCancelDragEvent:Connect(CancelDrag) -- 드래그 취소시 호출 이벤트 연결
-- 드래그 상태에서 표시할 위젯 설정
DragWidget:SetDragWidget(DragWidget) -- 드래그 이벤트 발생시 복제해서 표시할 위젯을 설정 (미사용시 생략 가능)
DragWidget:SetDragOffset(Enum.WidgetAnchorType.LeftTop) -- 복제 위젯에 앵커 적용 (미사용시 생략 가능)
-- 드랍시
local function EndDrag(self, position, dragWidget)
print(self.Name, " DropEvent : ", dragWidget.Name)
print(self.Name, " DropPosition : ", position)
dragWidget:SetParentUIWidget(self) -- 부모 위젯 변경
end
DropArea.OnEndDragEvent:Connect(EndDrag) -- 드랍 이벤트 연결
-- (이벤트가 연결된 객체의 자식은 모두 Interaction이 꺼져있어야 합니다.)
남은 쿠폰에 대한 기능이 추가되었어요.
local function DoGetRemainCouponCount(player, count)
print("Remain Coupon Count : ", count)
end
player:GetRemainCouponCount(couponName, DoGetRemainCouponCount) -- 남은 쿠폰의 수량 반환 요청
local function DoUseRemainCoupon(player, couponReturnData)
print("Use Callback")
local state = couponReturnData.State --쿠폰의 상태
local couponType = couponReturnData.CouponType --쿠폰의 보상 종류
local result = couponReturnData.Result --쿠폰 사용 결과
--쿠폰 상태 및 보상
if state == Enum.CouponState.Wait then
print("쿠폰 상태 : 대기")
elseif state == Enum.CouponState.Doing then
print("쿠폰 상태 : 진행")
elseif state == Enum.CouponState.Stop then
print("쿠폰 상태 : 중지")
elseif state == Enum.CouponState.End then
print("쿠폰 상태 : 종료")
end
print("쿠폰 보상 타입 : ", couponType)
--쿠폰 사용 결과가 Success이면
if result == Enum.CouponResult.Success then
print("쿠폰을 사용했습니다!")
if couponType == "Gold" then
print("Get Gold!!!!")
end
--쿠폰 사용 결과가 Exist이면
elseif result == Enum.CouponResult.Exist then
print("이미 사용한 쿠폰입니다!")
--이외에는
else
print("유효하지 않은 쿠폰입니다!")
end
end
player:UseRemainCoupon(couponName, DoUseRemainCoupon) -- 남은 쿠폰 사용 요청
🍯 특정 타입의 위젯을 모두 반환하는 FindWidgets 클라이언트 함수가 추가되었어요.
local widgetList = Game:FindWidgets(Workspace, Enum.UIWidgetType.Text)
for i = 1, #widgetList do --리스트앞에 #을 붙여 리스트의 길이를 가져올 수 있어요.
print("Text : ", widgetList[i].Name)
end
print("----------------------------")
local widgetList = Workspace.ScreenUI:FindWidgets(Enum.UIWidgetType.Button)
for i = 1, #widgetList do --리스트앞에 #을 붙여 리스트의 길이를 가져올 수 있어요.
print("Button ", widgetList[i].Name)
end
local function VisibleEvent(self)
print(self .. " Visible!")
end
Frame.OnVisibleEvent:Connect(VisibleEvent)
local function InVisibleEvent(self)
print(self .. " InVisible!")
end
Frame.OnInVisibleEvent:Connect(InVisibleEvent)
ScrollBox:SetScrollBarValue(1) -- 0이면 가장 위, 1이면 가장 아래로 이동해요.
print(ScrollBox_v:GetScrollBarValue())
텍스트 채팅 채널도 구분할 수 있게 되면서 함수가 추가되고, 음성 채팅 채널을 구분하는 함수가 변경되었어요.
-- 텍스트 채팅 채널
-- 추가 함수
LocalPlayer:JoinTextChannel("ChannelName") -- 텍스트 채팅 채널 입장
LocalPlayer:LeaveTextChannel("ChannelName") -- 텍스트 채팅 채널 퇴장
-- 음성 채팅 채널
-- 삭제되는 기존 함수
LocalPlayer:JoinChattingChannel("ChannelName") -- 음성 채팅 채널 입장
LocalPlayer:JoinChattingChannel2D("ChannelName") -- 음성 채팅 채널 입장
LocalPlayer:LeaveChattingChannel("ChannelName") -- 음성 채팅 채널 퇴장
-- 변경 함수
LocalPlayer:LeaveTextChannel("ChannelName") -- 음성 채팅 채널 퇴장
-- Mute 관련 함수
-- 삭제되는 기존 함수
LocalPlayer:MuteVoiceChat("ChannelName") -- 음성 채팅 Mic 활성화
LocalPlayer:UnmuteVoiceChat("ChannelName") -- 음성 채팅 Mic 비활성화
-- 변경 함수
LocalPlayer:ActiveVoiceMic(true) -- 음성 채팅 Mic 활성화
LocalPlayer:ActiveVoiceMic(false) -- 음성 채팅 Mic 비활성화
방향 벡터를 반환하는 함수가 추가되었어요.
local Zero = Vector.zero()
local One = Vector.one()
local Forward = Vector.forward()
local Right = Vector.right()
local Up = Vector.up()
print("Vector Zero : ", Zero)
print("Vector One : ", One)
print("Vector Forward : ", Forward)
print("Vector Right : ", Right)
print("Vector Up : ", Up)
벡터를 복제해서 반환하는 Clone 함수가 추가되었어요.
local Vector1 = Vector.new(100, 100, 100)
local NewVector = Vector1:Clone(Vector1)
print("Clone Vector : ", NewVector)
벡터와 숫자간의 더하기, 빼기, 나누기 연산자가 추가되었어요.
local Vector1 = Vector.new(100, 100, 100)
local Number = 10
local Result1 = Vector1 + Number
print("Vector + Number : ", Result1)
local Result2 = Vector1 - Number
print("Vector - Number : ", Result2)
local Result3 = Vector1 / Number
print("Vector / Number : ", Result3)
local Result4 = Vector1 / 0
print("Vector / 0 : ", Result3) --0으로는 나눌 수 없어요.
벡터 크기를 제한하거나, 사이각을 구하거나, 회전하는 함수가 추가되었어요.
local Vector1 = Vector.new(100, 100, 100)
Vector1:SizeLimit(50) --벡터의 크기를 제한해요.
print("Size Limit : ", Vector1)
local Vector2 = Vector.new(100, 0, 100)
local Vector3 = Vector.new(0, 100, 100)
local SignedAngle = Vector2:SignedAngle2D(Vector3) --두 벡터간의 사이각을 반환해요. (음수 포함)
print("SignedAngle2D : ", SignedAngle)
local RotateX = Vector1:RotateAxisX(10) --X축을 고정으로 회전한 벡터를 반환해요.
print("RotateAxisX : ", RotateX)
local RotateY = Vector1:RotateAxisY(10) --Y축을 고정으로 회전한 벡터를 반환해요.
print("RotateAxisY : ", RotateY)
local RotateZ = Vector1:RotateAxisZ(10) --Z축을 고정으로 회전한 벡터를 반환해요.
print("RotateAxisZ : ", RotateZ)
🍯 스튜디오에서 테스트 플레이를 할 때 스크립트 에디터✏️가 꺼지지 않게 수정되었어요.
(읽기 전용으로 표시돼요.)
스튜디오에서 트랜스폼(위치/회전/크기) 값을 공간 타입별로 🕶️확인할 수 있도록 기능이
추가되었어요.
객체📦를 선택 후, 프로퍼티 창의 각 트랜스폼 프로퍼티에서 오른쪽 마우스🖱️ 클릭하면,
관련 팝업을 확인할 수 있어요.
파일의 ⚒️’공간타입 초기화’ 메뉴를 이용해, 월드 내 모든 객체에 설정된 공간 타입을
초기화⚙️할 수 있어요.
🍯 스크립트 에디터에서 오브젝트 타입에 따른 📚자동 완성 기능이 추가되었어요.
🍯 스크립트 에디터에서 함수가 정의된 부분은 다른 색상🎀으로 표시돼요.
스크립트 에디터에서 선택한 🚩탭 구분이 명확하도록 표시 색상이 개선되었어요.
🍯 위젯을 추가할 때, UI위치 및 UIAlignment 의 🏗️초기 값이 변경되었어요.
🍯 네온 재질에서 알파 텍스쳐🖼️를 사용할 수 있게 개선되었어요.
💡SpotLight와 🔦PointLight의 AttenuationRadius 단위가 cm 단위로 통일✨되었어요.
🍯 월드 트리 🔍검색 필터에서 논리 연산자를 간편하게 사용할 수 있도록
🧩논리 연산자 항목이 추가되었어요.
테마 템플릿에 🌃Town이 추가되었어요.
SpreadSheet 에서 Shift + Enter 를 이용해 줄바꿈🧾이 가능하도록 개선되었어요.
🍯 ScreenUI의 프로퍼티에 📐UI 해상도 대응 기능이 추가되었어요.
기준 해상도(ReferenceResolution)와 게임의 화면 방향(가로/세로)에 맞춰
ScreenMatchType을 설정하면, 📱실행 기기의 해상도에 맞춰 UI가 보정돼요.
(💻기준 해상도는 1920x1080을 권장해요.)
UI 에디터에 UI 개별 적용 옵션🔩이 추가되었어요.
UI 개별 적용을 해제하면 UI 에디터에서 📺선택한 해상도가 모든 UI에 적용이 돼요.
(UI 개별 적용을 ✔️활성화하면 각 UI 별로 해상도를 따로 사용해요.)
🍯 최근 파일 열기 기능이 추가되었어요.
이제 최근 열었던 파일을 확인하고 바로 열 수 있어요.
로컬 파일과 내 랜드 하위 탭으로 구분돼요.
최근 열었던 파일의 정보 표시를 누를 경우, 파일의 정보(마지막 열었던 날짜, 파일 경로 등)을
알 수 있어요.
🍯 벡터 값을 부정으로 만드는 단항 - 연산자🎲가 추가되었어요.
local vector = Vector.new(200, 0, 150)
print(-vector)
🍯 Color🎨를 문자열로 변환하는 ToString 함수가 추가되었어요.
local color = Color.new(255, 0, 0, 255)
print("Color : " .. color:ToString())
Client 에서 디바이스의 해상도 💻📱 를 가져오는 GetScreenResolution 함수가 추가되었어요.
local deviceResolution = Game:GetScreenResolution()
print("width : " .. deviceResolution.X) --화면 가로 크기
print("height : " .. deviceResolution.Y) --화면 세로 크기
Client 에서 💬 채팅창의 표시 여부를 제어하는 TextChatVisible 함수가 추가되었어요.
Game.TextChatVisible = false
Media / PDF에 에러 발생 시 에러 index를 출력해주는 함수가 추가되었어요.
local Media = Workspace.Media
local PDF = Workspace.ScreenUI.PDF
--OnErrorMessage로 이벤트를 반환 받아요.
--0. 알 수 없는 에러
--1. 잘못된 파일 업로드
--2. 업로드 불가 파일 이름 (특수문자)
---------------------------------Media 에러메시지 출력---------------------------------------------
local function OnErrorMessage_Media(errorIndex) --errorIndex를 반환 받아요
print(errorIndex)
end
Media.OnErrorMessage:Connect(OnErrorMessage_Media)
---------------------------------PDF 에러메시지 출력---------------------------------------------
local function OnErrorMessage_PDF(errorIndex) --errorIndex를 반환 받아요
print(errorIndex)
end
PDF.OnErrorMessage:Connect(OnErrorMessage_PDF)
월드 트리 검색 필터 메뉴얼이 추가되었어요.
디토랜드 이벤트 호출 순서 메뉴얼이 추가되었어요.
Media 오브젝트의 스크린 프로퍼티에 대한 메뉴얼이 추가되었어요. 해당 링크에서 확인해주세요.
(기업계정) 비주얼 스크립트 기능이 추가되었어요!
시범적 도입 단계로 앞으로 더 많은 기능이 추가될 예정이니 기대해주세요 🤭
비주얼 스크립트는 Enterprise 계정에서만 이용할 수 있어요.
(기업계정) 비주얼 스크립트 🎁 템플릿 3종이 추가되었어요.
Enterprise 계정으로만 확인할 수 있는 '기업계정 탭'에서 확인할 수 있어요! 👀
Updates - Script
변수에 할당된 객체의 종류에 맞게 자동 완성이 되도록 개선되었어요!
조작 처리 구조가 변경되었어요. (Tip. 기존 방식도 아직은 사용할 수 있지만 곧 없어질 예정이에요!)
자세한 내용은 해당 링크를 참고하세요!
리더보드 처리 구조가 변경되었어요. (Tip. 기존 방식도 아직은 사용할 수 있지만 곧 없어질 예정이에요!)
자세한 내용은 해당 링크를 참고하세요!
프로퍼티 이름 중 b로 시작하는 프로퍼티의 이름이 변경되었어요.
bCullDistance => CullDistance
bCollisionWithCam => CollisionWithCam
bEnableCameraLag => EnableCameraLag
bInheritPitch => InheritPitch
bInheritYaw => InheritYaw
bInheritRoll => InheritRoll
bUsePreviousRotWhenNotUsingInheritRot => UsePreviousRotWhenNotUsingInheritRot
--Tip. 기존 방식도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
🍯 서버/클라에서 퍼블리시 여부를 확인할 수 있는 함수가 추가되었어요.
반환값이 true면 퍼블리시 환경, false면 스튜디오 환경이에요.
if Game:IsPublished() then --퍼블리시 했을 경우
print("Is Published")
else --퍼블리시 하지 않았을 경우
print("Is not Published (In Studio)")
end
클라에서 실행 디바이스를 확인할 수 있는 함수가 추가되었어요.
local PlayerDevice = Game:GetPlayerDevice() --현재 플레이중인 디바이스 할당
if PlayerDevice == Enum.PlayerDevice.PC then --PC일 때
print("Is PC")
elseif PlayerDevice == Enum.PlayerDevice.Android then --Android일 때
print("Is Android")
elseif PlayerDevice == Enum.PlayerDevice.iOS then --iOS일 때
print("Is iOS")
end
서버의 DeleteItem 함수에서 삭제 개수를 지정할 수 있는 기능이 추가되었어요.
--기존 함수
player:DeleteItem(TargetItem) --전부 삭제
player:DeleteItem(InventoryIndex) --전부 삭제
--DeleteCount 인자가 추가된 함수
player:DeleteItem(InventoryIndex, 5) --인자 기입시 해당 수(5) 만큼 삭제
player:DeleteItem(TargetItem, 5) --인자 기입시 해당 수(5) 만큼 삭제
텔레포트 함수에서 사용하지 않는 인자가 제거되었어요.
--기존
Game:TeleportToPublicServer(LandOrder, movePlayerIDList, "")
Game:TeleportToPrivateServer(LandOrder, movePlayerIDList, "")
--변경
Game:TeleportToPublicServer(LandOrder, movePlayerIDList)
Game:TeleportToPrivateServer(LandOrder, movePlayerIDList)
--Tip. 기존 방식도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
--기존
WebBrowser:SetWebURL("<https://ditoland.net/main>")
--권장
WebBrowser.WebURL = "<https://ditoland.net/main>"
--Tip. 기존 방식도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
TextBox 위젯의 내용이 변경될 때 호출되는 EndTextBoxEditEvent 이벤트가 추가되었어요.
--입력 변경 시점에서 호출되는 이벤트에요.
--내용 입력 후 Enter키를 누르거나, 입력 포커스가 TextBox 밖으로 바뀔 때 호출돼요.
local function ChangedText(editText)
print("텍스트 박스의 내용이 " .. editText .. "로 변경되었어요.")
end
TextBox.EndTextBoxEditEvent:Connect(ChangedText)
TextBox 위젯에서 HintText의 내용을 얻거나, 변경할 수 있는 함수가 추가되었어요.
local someText = Workspace.ScreenUI.someText
--HintText를 얻어오는 함수
someText:GetHintText()
--HintText를 변경하는 함수
someText:SetHintText("Hello World!")
Bug Fixes
일부 PC 환경에서 스크립트 에디터의 레이아웃을 변경한 뒤, 테스트 플레이 또는 종료시 변경한 레이아웃이 적용되지 않고 초기화되는 현상이 수정되었어요. (#2961)
모바일 스튜디오에서 임의로 설정한 👗커스텀을 저장하지 않고 메인화면 이동 시 저장하지 않은 커스텀이 적용되는 현상이 수정되었어요. (#2524)
Main Camera의 회전 상속 무시가 켜져있으면 셀프카메라에서 카메라 조작이 동작하지 않는 현상이 수정되었어요.
기본 템플릿 맵에 MainCamera의 회전 상속 무시 여부를 설정하는 프로퍼티가 추가되었어요.
회전 상속 무시가 true이면, 캐릭터가 회전하는 객체 위에 올라타더라도 카메라는 회전하지 않아요. 🎥
회전 상속 무시 체크 시 아래와 같이 동작해요.✔
회전 상속 무시 체크 해제 시 아래와 같이 동작해요.❌
🍯 모바일 테스트 플레이가 가능해졌어요!!
확인하고 싶은 모바일 기종을 선택하고 테스트 해보세요. 📱
UI 에디터에서도 모바일 기준 해상도 조정이 가능하답니다~ 😁
채팅창 UI가 변경되었어요 ~
사이즈를 줄이고 UI 디자인도 변경되었어요. 기능들은 하단으로 통합되었어요!
더 예뻐진 채팅창으로 친구들과 대화해보세요 😀
메타버스 계정 전용 기능인 자동 번역 기능이 추가되었어요.
외국에서 접속한 친구와 자동 번역 기능을 통해 편하게 대화를 할 수 있어졌어요~ 🌍
🍯 CSV 형식의 데이터를 편리하게 이용할 수 있는 SpreadSheet 객체가 추가되었어요. 👍
사용법은 아래 메뉴얼을 참고하세요.
Ditoland - Script
🍯 Attach된 오브젝트의 동작이 개선되었어요. 🧲 이제 캐릭터의 Visible이 변경될 때 Attach된 오브젝트의 Visible도 함께 갱신되며,
캐릭터가 리스폰되거나 사망시에는 자동으로 Detach되지 않아요.
🍯 Client Script에서 캐릭터의 위치, 회전, 트랜스폼을 변경하려 할 때
경고 문구가 출력되도록 변경되었어요.⚠ (캐릭터의 위치 변경은 Server Script에서 사용해야 해요!)
🍯 UI 위젯에 사용할 수 있는 AddUIScale 함수가 추가되었어요.↔
AddUIScale는 AddUISize와 달리 자식 위젯의 크기도 영향을 받아요.
🍯 카메라가 변경될때 호출되는 이벤트가 추가되었어요. 📷
local function ChangeCurrentCamera(currentCamera)
print(LocalPlayer:GetRemotePlayer(), " Change Camera : ", currentCamera)
end
LocalPlayer.OnChangeCurrentCamera:Connect(ChangeCurrentCamera)
🍯 부모 객체의 Enable이 변경될 때, 자식 객체의 Visible 프로퍼티에 변화는 주지 않으면서
표시 여부만 바뀌도록 변경되었어요. 👨👨👧
🍯 부모 객체가 변경될 때, 자식 객체도 부모 객체의 Enable에 영향을 받게 끔 변경되었어요.🚻
(만약 부모 객체의 Enable이 false라면, 부모가 변경된 자식 객체도 영향을 받게 돼요.)
Bug Fixes
Workspace에 있는 객체의 부모를 변경할 수 없는 현상이 수정되었어요. 👩👩👧
CrossJump 템플릿의 SystemClientScript에서 SetEnableMovementControl 함수가 SetEnableMovementeControl로 잘못 입력된 부분이 수정되었어요. 🏃♀️🏃♂️
📱아이폰 기기로 플레이스 입장 중 기기화면 자동꺼짐 이후 다시 활성 시 플레이스 입장 불가 현상이 수정되었어요.
신규그룹👩👨 생성 시 일정시간 지난 후 새로고침 해야 자신이 가입한 그룹 정보가 보여지는 현상이 수정되었어요.
스크립트 에디터 특정 줄 탐색 (⌨ 컨트롤+G) 사용 시,🖲 커서만 이동하고 라인 포커스는 되지 않는
현상이 수정되었어요.
스크립트 에디터 ⌨Ctrl + R 키로 함수를 만들 때, 한줄 코드에는 들여쓰기가 적용되지 않는 현상이
수정되었어요.
스크립트 에디터 ⌨Ctrl + R 키로 함수를 만든 후 ⏩Ctrl + Z 하면 들여쓰기가 유지되는 현상이
수정되었어요.
채팅 입력 시 “채팅 서버와 연결이 필요합니다”가 표시되며 💻채팅이 불가능한 문제가 수정되었어요.
마이디토 상태에서 디토룸🩱아바타 변경 후 마이디토의 🙋♀️🙋♂️프로필 이미지가 변경되지 않는 현상이 수정되었어요.
플레이스 생성 및 입장 후, 리소스 다운로드 ⏩ 완료 시점에 앱을 강제 종료하면
플레이스 목록에 이미 생성했던 플레이스 정보가 보이는 🔍 문제가 수정되었어요.
탈퇴 중인 계정으로 🖥PC 스튜디오에서 로그인하면 회원 탈퇴 취소창이 생성되는 현상이
수정되었어요.
📱모바일 마이크 음소거 상태에서 다른 어플리케이션을 실행 등으로 📺화면 전환을 해도
📣 음성 채팅이 OFF 되지 않고 계속 ON🔊 상태로 유지되는 현상이 수정되었어요.
AddSpawnObject로 스포너에 NPC🧝♀️🧝♂️ 객체를 등록하면 스폰할 때 스포너의 위치가 아닌
NPC 기존 위치에 스폰되는 문제가 수정되었어요.
월드 관리 페이지에서 랜드 연결 시,🎠 랜드 연결 설정이 누락되거나 비정상적으로 연결되는 현상이 수정되었어요.
함수 안에서 print 사용시, Output창에서 print 위치를 잘못 가리키는 현상이 수정되었어요.➡⬅
ScriptEditor의 ScriptLog탭에서 The number of arguments does not match! 로그를 클릭해도
해당 라인을 찾아가지 않는 현상이 수정되었어요.⚠
터렛 토이가 정상 작동하지 않는 현상이 수정되었어요.⚒
스크립트를 이용한 앵커 위치 변화 시 UIPosition 및 앵커 출력 위치 변화가 없는 현상이
수정되었어요. 🧿
Manual
NPC나 오브젝트에 AI 상태를 설정하는 AI FSM 메뉴얼이 추가되었어요.
복잡한 데이터를 쉽게 관리할 수 있는 SpreadSheet 메뉴얼이 추가되었어요.
ChangeCharacterAni 샘플맵에서
"리스폰시 : 초기화"로 잘못 표시된 내용이 → "리스폰시 : 유지"로 변경되었어요.
모드킷 메뉴얼이 추가되었어요.
DitoLand Platform
Updates
내 프로필 화면 디자인이 새롭게 리뉴얼 되었어요.
내 친구 화면도 함께 변경되었으니 확인해보세요.😉
📱플랫폼 별 최소 사양 내용이 추가되었어요. 💻
로그인 시 스크롤 상태가 유지되도록 개선 되었어요. 🖱
PC에서만 확인 가능했던 그룹을 App에서도 확인할 수 있게 되었어요. 🎉
플레이스 목록에서도 버전 정보를 미리 확인할 수 있도록 개선되었어요.
📱App 캐시 삭제 기능이 개선되어 내 폰의 저장소를 보다 효율적으로 관리할 수 있게 개선되었어요.
🖼리소스 관리 기능이 추가되어 내가 등록한 리소스 상태를 확인할 수 있게 되었어요.🛠
엔터프라이즈 회원들을 위한 기능으로 에티터를 활용하여 월드 소개를 작성할 수 있게 되었어요. ⌨
Release Note 0.7.2 - Notice
Release Date : 2022.09.23
안녕하세요. 디토랜드 개발팀입니다.
다음 사항들이 개선되었으니 확인해보세요. 🤗
Updates
공유 받은 링크를 App으로 접속 시📱, 월드에 한번에 접속할 수 없던 현상이 개선되었어요. 🙌
App으로 접속하기 브릿지 페이지의 문구가, 보다 직관적으로 알기 쉽게 변경되었어요. 👁🗨
iOS에서 디토랜드 활동에 대한 추적 여부👣를 선택할 수 있도록 개선되었어요.
멀티플레이 테스트🙍♂️🙍♀️를 구동 중에 다른 일을 하고 나면, 스튜디오가 강제 종료되던 현상이
수정되었어요. 😊
Release Note 0.7.1 - Notice
Release Date : 2022.09.08
일부 토이의 이름✒이 변경되었어요!!
🔫 [Gun] SR (저격총) 토이의 이름이 [Gun] SniperRifle 로 변경되었어요!
Bug Fixes
스튜디오의 테스트 플레이 상태에서 내부🔎 디버그 처리에 의해 프레임이 낮게 나오는 현상이
수정되었어요.
캐릭터가 움직이거나 👣 애니메이션이 전환될 때 아이템이 장착/해제되면, 아이템의 위치가
이상하게 보이던 현상이 수정되었어요. 🤗
아이템 장착시 가끔 비정상적으로 출력되는 현상이 수정되었어요.😊
아이템 장착시 💻월드에 남아있는 현상이 수정되었어요. 😁
📱아이폰 기기로 패치 후 업데이트 하지 않은 상태로 접속 시 ⏩" 버전이 맞지 않습니다" 팝업과 함께 접속할 수 없는 이슈가 수정되었어요. 😃
📱안드로이드 기기로 패치 후 업데이트 하지 않은 상태로 접속 시 ⏩"버전이 맞지 않습니다" 팝업과
함께 접속할 수 없는 이슈가 수정되었어요. 😊
스튜디오에서 Easy_TPS와 Easy_FPS 템플릿이 이전 버전으로 열리는 현상이 수정되었어요. 🤩
캐릭터가 죽어 👻 캐릭터의 Visible이 false로 되었다가 리스폰으로 Visible이 다시 true가 된
다음부터 오브젝트 🎲를 Attach해도 보이지 않는 현상이 수정 되었어요.
PC환경에서 멀티 플레이👩🚀🧙♀️🧙♂️ 실행 시 추가되는 플레이어의 윈도우 화면에서,
바닥 없이 낙하 애니메이션이 출력 되던 이슈가 수정되었어요. 😄
PC 스튜디오에서 📺레이아웃 초기화 선택 시 스크립트 에디터 창📑의 크기, 위치만 초기화 되는
이슈가 수정되었어요.
디토랜드 PC 🖥 WEB 홈페이지 로그인 후 디토버스 메뉴 클릭 시 로그아웃 되는 이슈가 수정되었어요.
DitoLand Platform
금칙어가 포함된 단어 등록이 안돼서 불편했던 현상이 개선되었어요.
Release Note 0.7.0 - Notice
Release Date : 2022.08.24
업데이트 되는 💥새로운 기능들을 확인해 보세요.
놓치면 아쉬운 내용들에 달콤한 꿀 표시(🍯)가 되어 있습니다. 🤗
자세한 내용은 아래 Updates 내용을 확인해주세요!!
변경점으로 인해 기존 맵이 동작하려면 일부 내용이 수정되어야 합니다. 🙏
수정 방법은 아래를 참고해주세요.
Updates
대시보드에 다양한 상품이 추가되었습니다!! ✨
PC 대시보드 & 앱의 디토룸 상점에 들어가서 👔✨신상✨👠을 착용해보세요!
새로운 토이🎈가 추가되고, 일부 토이의 이름✒이 변경되었어요!!
🔫 [Gun] SniperRifle 토이의 이름이 [Gun] SR (저격총) 로 변경되었어요!
🎁 TrueFalseBlock, RollingTerrain, BrainsBlock, RotHammer_Type2 토이가 추가되었어요!
이 토이들은 토이룸에서도 만나볼 수 있어요~
캐릭터에 아이템을 장착할 때 활용할 수 있는 ⛏EquipItem 토이가 추가되었어요.
새로 스튜디오에 업데이트 된 다양한 기능을 알려 드립니다!!
🍯 상단 탭에 있던 UI 탭 기능이 UI Editor🔧로 이동 되었어요.
테스크바에 있는 UI Editor 버튼을 클릭해서 UI Editor🔧를 오픈 후 사용할 수 있어요.
🍯 로그창(Player Output)에 각 로그의 표시 여부에 대한 토글 버튼이 추가되었어요.
로그 / 경고(Warning) / 에러(Error) 로그 표시 여부를 체크할 수 있어요.🚥
🍯 툴박스🛠 > 내 작품에 [공개만 보기] 체크 버튼✅이 추가되었어요.
디토랜드 웹 > 만들기 > 컨텐츠 관리에서 비공개한 컨텐츠를 툴박스에서 확인할 수 있어요.
🍯 ScreenUI의 프로퍼티창에 Visible, Opacity 프로퍼티가 추가되고, SurfaceUI의 프로퍼티창에 Opacity 프로퍼티가 추가되었어요! 스크립트에서도 같은 이름의 속성으로 제어가 가능해요.
local value = ScreenUI.Opacity
wait(1)
ScreenUI.Opacity = 0.1
wait(1)
SurfaceUI.Opacity = 0.5
🍯 자식 Widget을 선택 시 외곽선을 표시해줘요.
부모 Widget 크기에서 벗어난 경우 확인하기 편해졌어요.👀
Widget 중 🧮[ScrollBox], [VerticalBox], [HorizontalBox], [GridBox], [ProgressBar], [InventoryBox], [ListView]의 자식으로 UI객체가 들어갈 경우,
Enum.AttachPoint.Center --대상의 중심점에 Attach
Enum.AttachPoint.Top --대상의 상단 중앙에 Attach
Enum.AttachPoint.Right --대상의 오른쪽 중앙에 Attach
Enum.AttachPoint.Left --대상의 왼쪽 중앙에 Attach
🏏Item의 Attach 처리가 프로퍼티에서 설정하는 방식으로 변경되었어요.
(이제 스크립트에서 Attach/Detach 처리를 하지 않아도 된답니다 🤗)
AddUIScale의 이름이 AddUISize 함수 이름 변경되었어요. (Scale이 아니라 Size로 동작해요🧐)
local ScreenUI = Script.Parent
ScreenUI:AddUISize("Frame", "ScaleTrack", Vector.new(20, 20, 0) 3) --X, Y 값만 적용됨
AddUIRot↪️의 인자가 변경되었어요
local ScreenUI = Script.Parent
ScreenUI:AddUIRot("Frame", "RotTrack", 45, 3) --한 축으로만 회전
--기존 : AddUIRot(string WidgetName, string TrackName, Vector Rot, number Time)
--변경 : AddUIRot(string WidgetName, string TrackName, float Rot, number Time)
🍯 오브젝트 Enable 상태 변경에 따라 호출되는 이벤트 함수가 추가되었어요.
---------------------------------------------------
local function InitObj(self) --self 인자엔 이벤트가 연결된 객체가 전달됨
print("Enable")
end
Workspace.Cube.OnEnableEvent:Connect(InitObj)
---------------------------------------------------
local function BackupToPoolList(self) --self 인자엔 이벤트가 연결된 객체가 전달됨
print("Disable")
end
Workspace.Cube.OnDisableEvent:Connect(BackupToPoolList)
---------------------------------------------------
wait(1)
Workspace.Cube.Enable = false --false로 바뀔때 OnDisableEvent에 연결된 함수 호출됨
wait(1)
Workspace.Cube.Enable = true --true로 바뀔때 OnEnableEvent에 연결된 함수 호출됨
🍯 캐릭터의 Visible을 Client에서도 변경할 수 있어요.✏️
Character.Visible = false
Environment의 시간 속성🕒이 아래와 같이 정리되었어요.
local Environment = Workspace.Environment
print("DefaultTime ", Environment.DefaultTime) --초기 시간의 분 단위에요.
print("DefaultHour ", Environment.DefaultHour) --초기 시간의 시간 단위에요.
print("CurrentTime ", Environment.CurrentTime) --현재 시간의 분 단위에요.
print("CurrentHour ", Environment.CurrentHour) --현재 시간의 시간 단위에요.
🍯 날짜 및 시간 처리 관련 함수와 TimeUtil 모듈이 추가되었어요.
날짜📅 및 시간 처리⏰는 ServerScript에서 사용하면 서버 시간으로 가져올 수 있어요.
----------------------------------------------------------------------------------------------
--DateTime를 생성해요.
local NewTime1 = DateTime.new()
local NewTime2 = DateTime.new(2022,1,3)
local NewTime3 = DateTime.new(2022,4,11,13,1,5)
print("NewTime1 : ", NewTime1)
print("NewTime2 : ", NewTime2)
print("NewTime3 : ", NewTime3)
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--현재 시간을 얻을 수 있어요.
local getTime = nowtime()
print("nowtime : ", getTime)
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--DateTime을 변경하는 것도 가능해요.
NewTime3.Year = 2023
NewTime3.Month = 5
NewTime3.Day = 12
NewTime3.Hour = 14
NewTime3.Minute = 2
NewTime3.Second = 6
print("NewTime3 : ", NewTime3)
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--시간을 원하는 포맷 타입 으로 출력할 수 있어요.
local NewTime3 = DateTime.new()
NewTime3.Hour = 14
print("NewTime3 : ", NewTime3)
local DateString1 = NewTime3:ToString("%Y %m %d %h %M %S %A")
print("ToString : ", DateString1)
local DateString2 = NewTime3:ToString("%Y %m %d %H %M %S %A")
print("ToString : ", DateString2)
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--두 날짜를 비교해서 경과되었는지 확인할 수 있어요.
local NewTime4 = DateTime.new()
NewTime4.Year = NewTime4.Year + 1
local IsChangedYear = IsChangedYear(NewTime1, NewTime4)
print("IsChangedYear : ", IsChangedYear, " ( ", NewTime1, " / ", NewTime4, " )")
local IsChangedMonth = IsChangedMonth(NewTime1, NewTime4)
print("IsChangedMonth : ", IsChangedMonth, " ( ", NewTime1, " / ", NewTime4, " )")
local IsChangedDay = IsChangedDay(NewTime1, NewTime4)
print("IsChangedDay : ", IsChangedDay, " ( ", NewTime1, " / ", NewTime4, " )")
local IsChangedWeek = IsChangedWeek(NewTime1, NewTime4)
print("IsChangedWeek : ", IsChangedWeek, " ( ", NewTime1, " / ", NewTime4, " )")
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--두 날짜를 비교해 차이 값을 구해요.
local NewTime5 = DateTime.new()
NewTime5.Year = NewTime5.Year + 1
local CompareYear = GetCompareYear(NewTime1, NewTime5)
print("CompareYear : ", CompareYear, " ( ", NewTime1, " / ", NewTime5, " )")
local CompareMonth = GetCompareMonth(NewTime1, NewTime5)
print("CompareMonth : ", CompareMonth, " ( ", NewTime1, " / ", NewTime5, " )")
local CompareDay = GetCompareDay(NewTime1, NewTime5)
print("CompareDay : ", CompareDay, " ( ", NewTime1, " / ", NewTime5, " )")
local NewTime6 = DateTime.new()
NewTime6.Hour = NewTime6.Hour + 1
local CompareHour = GetCompareHour(NewTime1, NewTime6)
print("CompareHour : ", CompareHour, " ( ", NewTime1, " / ", NewTime6, " )")
local CompareMinute = GetCompareMinute(NewTime1, NewTime6)
print("CompareMinute : ", CompareMinute, " ( ", NewTime1, " / ", NewTime6, " )")
local CompareSec = GetCompareSec(NewTime1, NewTime6)
print("CompareSec : ", CompareSec, " ( ", NewTime1, " / ", NewTime6, " )")
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--DateTime이나 OsTime으로 변환할 수 있어요.
local DateTime = ToDateTime(ostime())
print("ToDateTime : ", DateTime)
local OsTime = ToOsTime(DateTime)
print("ToOsTime : ", OsTime)
print("-----------------------------------------------------")
----------------------------------------------------------------------------------------------
--올해 기준 또는 주 기준으로 경과일을 구할 수 있어요.
local NewTime7 = DateTime.new()
local dayOfYear = GetDayOfYear(NewTime7)
print("dayOfYear : ", dayOfYear)
local weekOfYear = GetWeekOfYear(NewTime7)
print("weekOfYear : ", weekOfYear)
local numberOfWeek = GetNumberOfWeek(NewTime7)
print("numberOfWeek : ", numberOfWeek)
Bug Fixes
⌨채팅창을 끄거나 켜면 캐릭터 이동이 안되는 현상이 수정 되었어요.
간편 로그인으로 계정 전환 시 🙋♂️🙋♀️성별을 선택할 수 없던 문제가 수정되었어요!
특정 랜드 이동 시🏃🏻♂️ 간헐적으로 오브젝트가 사라지는 현상이 수정 되었어요.
플레이어, 스튜디오의 물리 오브젝트 반응이 서로 다른 문제가 수정되었어요😄
태그 메뉴 비 활성화 이슈가 해결💡되었어요
플레이어에서 간헐적으로 플레이어 💷닉네임이 보이지 않던 현상이 수정💡 되었어요
캐릭터 타입이 🧸'토이 캐릭터'가 죽은 후, 리스폰 시 외형이 보이지 않던 현상이 수정 되었어요
툴박스의 토이/매쉬를 배치하면, 해당 🎣🧸토이/매쉬가 월드에서 드래그되거나 선택되지 않고 월드 트리에서만 선택 가능한 현상이 수정되었어요
상단 메뉴의🖍 컬러픽커에서 색상 변경을 하지 않은 상태에서 '확인'을 선택하면 변경되는 것이 아니라 '취소' 선택 시에 변경되는 현상이 수정되었어요.
Gizmo를 이용한 이동 중 화면 전환 하면 원하지 않는 축으로 오브젝트가 이동하는 현상이
수정되었어요. 😄
TweenObject 모듈에서 Rotation 관련 함수를 사용했을 때 Y값에 따라 지정 회전 값이 아닌
다른 회전 값을 가지는 이슈가 수정되었어요.
🖥스튜디오에서 UI Widget 트랙 객체가 동작하지 않는 현상이 수정되었어요.
🖥스튜디오에서 클라이언트 스크립트 ✏ OnChatNPCMessage 함수 사용 시 비정상 종료 되던 이슈가 수정💡되었어요
📱모바일에서 특정 행동 시 😉눈썹 상세 커스텀 선택 / 선택 해제가 되지 않던 문제가 수정되었어요.
📱모바일에서 웹 메인 화면 내 추천 월드 롤링 시 동일 월드가 등장하는 현상이 수정되었어요.
📱모바일에서 웹 내 월드 더보기 페이지에서 ◀ 버튼이 동작하지 않는 현상이 수정되었어요.
📱모바일에서 대시보드에서 🧙♂️아바타 의상 교체 직후 월드로 입장하면
💷캐릭터 닉네임이 보이지 않는 문제가 수정되었어요.
특수문자 닉네임으로 월드 입장 시 🔁 무한로딩 되는 문제가 수정되었어요.
안드로이드 모바일에서 ◀ 버튼 터치 시 페이지 로딩과 동시에 스크립트 에러 메시지 팝업이 보이던
현상이 수정되었어요.
안드로이드 모바일에서 특정 🔊사운드 리소스가 안드로이드에서만 보이지 않던 현상이
수정되었어요. 😄
PC에서 월드 설정 내 선택된 👨👩👧👧그룹을 모두 제거하면 선택했던 그룹이 해제 되지 않는 문제가
수정💡되었어요.
메인 페이지 하단 🙋♂️고객센터 이메일 주소 링크가 동작하지 않는 현상이 수정되었어요.
스크립트로 하위 위젯을 움직일 때, 설정한 앵커 기준으로 움직이지 않는 현상이 수정되었어요.
DefaultInput 스크립트의 파라미터에서 설정한 조작 모드가, 카메라 📷 모드로 플레이 테스트 시에도 적용되는 현상이 수정되었어요.
기업 계정 신청📝 시 띄어쓰기로 인해 가입 오류 현상이 수정되었어요.
회원 가입 시 부모 동의 🙆♂️🙆♀️ 버튼 중복 클릭 되던 현상이 수정되었어요.
공간 타입이 World인 SurfaceUI의 Button은 클릭🖱️해도 버튼 이벤트가 발생하지 않는 현상이
수정되었어요.
Manual
샘플 맵🗺️ 중 일부 맵의 이름이 변경되었어요.
Scripting 에서 GetName&SetName -> Name
Scripting 에서 Visibility -> Visible
Trasnform 에서 SetTransform -> Trasnform
UI 에서 SetOpacity -> Opacity
UI 에서 Visible -> WidgetVisible
총 토이 속성 가이드 메뉴얼이 추가되었어요.
오브젝트 선택 지정 방법 메뉴얼이 추가되었어요.
쿠폰/이벤트키 사용법 메뉴얼이 추가되었어요.
DitoLand Platform
Updates
디토랜드 정책센터가 😄새롭게 오픈했습니다.
이젠 약관 및 개인정보처리방침 등 관련 정책을 한 곳에서 확인하실 수 있어요.
디토랜드에 금칙어 🤬 필터링이 적용되었어요.
만들기 하위 메뉴 구조가 좀 더 보기 편하게 개편되었어요.
마이디토, 유저 프로필 화면에 아바타 🧍전신 이미지를 확인할 수 있도록 개선되었어요.
탈퇴 기능이 추가되었어요. 😢
설정 화면에서도 마케팅 수신 동의를 👌설정할 수 있어요.
콘텐츠 샵🛒에서 리스트 로딩 속도가 빠르게 개선되었어요.
🔍 검색 결과가 없을 때 알려주는 화면이 개선되었어요.
📱 모바일 저장 공간 관리 기능이 추가되었어요.
📱 모바일 현재 버전을 확인하고 스토어로 바로 가서 업데이트 ⏫ 할 수 있도록 개선되었어요.
📱 모바일 화면 스크롤 할 때 키패드 부분에 화면이 숨는 현상이 개선되었어요. 😅
Release Note 0.6.2 - Notice
Release Date : 2022. 6. 17
안녕하세요. 디토랜드 개발팀입니다.
모바일 출시
📱 아이폰용 App이 새롭게 출시되었습니다. 이제 AOS / IOS 모두에서 디토랜드를 만나실 수 있습니다.
Bug Fixes
스튜디오, 플레이어 안정성 개선
그룹 공개 월드에서 그룹원으로 들어갔을때 비공개 월드라고 노출되는 문제가 해결 되었어요.
PC에서 월드 종료시 간헐적으로 튕기는 문제가 수정되었어요.
월드 최초 진입 시 한번 간헐적으로 '서버가 응답하지 않습니다. 잠시 후 다시 시도해주세요.'라는
팝업이 출력 되면서 ⚠️종료되는 현상이 수정되었어요
특정기기에서 앱 실행 시 에러메세지가 출력되는 문제가 해결 되었어요.
특정 월드 및 플레이스에서 아바타가 Fall 애니로 무한반복되는 현상이 해결 되었어요.
비공개 되어있는 그룹 공개 월드 그룹원이 입장 시 ‘제작자에 의한 입장 불가’ 팝업이 등장하는 현상이
해결 되었어요.
특정맵에서 캐릭터가 죽을때 SetVisible(false)처리가 동작하지 않는 현상이 해결 되었어요.
월드나 플레이스 친구 초대 터치 시 초대 링크가 무한 로딩 되는 현상이 수정 되었어요.
모바일로 WEB 이동 및 로그인 후 월드 입장 시 노출되는 설치 팝업 내 버튼이 깨지는 현상이
수정 되었어요.
스튜디오_Script Editor의 Blank 맵에서 임의의 기본 스크립트에 중단점 추가 후
테스트 플레이 진행 시 ⚠️ 팅김 현상이 수정되었어요.
애니메이션을 변경하는 🛴 아이템 (킥보드 등)을 장착 해제 후 일반 🎣 아이템(낚시대 등) 장착 시,
장착한 아이템이 원래 형태와 다르게 적용되는 현상이 수정되었어요.
🛴 이동 수단을 탑승한 다른 캐릭터의 거리가 멀어질 때, '캐릭터 애니메이션' 및
'캐릭터/킥보드 위치'가 일치하지 않는 현상이 수정되었어요.
스튜디오_UI Editor에서 UI위치가 배율에 맞춰 표시되지 않는 현상이 수정되었어요.
스튜디오에서 빔(레이저) 타입 이펙트에 설정된 'TargetLocation'이 제대로 반영되지 않는 현상이
수정되었어요.
홈페이지에서 로그인 후 스튜디오 내부에서 로그아웃을 하면 스튜디오에서 로그인 화면이 😱
나타나지 않는 현상이 수정되었어요.
월드에서 영상 시청 중 다른 위치의 영상 재생 시 먼저 재생 중이던 영상의 화면 이 멈추지 않고
🔇오디오만 멈추는 현상이 수정되었어요.
PC에서 회원가입 도중 새로운 브라우저로 디토랜드 접속 시 로그인 오류 문제가 수정되었어요.
월드에서 채팅 창을 끄거나 켜면 종종 캐릭터의 이동이 🚷안되던 현상이 수정되었어요.
Release Note 0.6.1 - Notice
Release Date : 2022. 5. 26
안녕하세요. 디토랜드 개발팀입니다.
5/26 부터 인디크래프트 2022 행사에 맞추어 몇가지 주요 오류 수정을 포함한 업데이트를 하게
되었습니다.
즐거운 행사 되시기를 바라며 최선을 다하는 디토랜드 개발팀이 되겠습니다.
감사합니다.
Bug Fixes
월드 입장 시 "접속 중 입장할 월드를 찾지 못했습니다." 라는 팝업이 간헐적으로 출력되던 현상이
수정되었어요.
캐릭터가 떨어지고 있는 것처럼 애니메이션 재생되는 현상이 수정되었어요.
(완벽하진 않아요. 조금만 더 기다려주세요. 😥)
여러 명이가 동시에 다른 랜드로 텔레포트를 시도하면 응답이 없던 현상이 수정되었어요.
플레이스의 공유 링크를 눌러 플레이스로 이동하지 않던 현상이 수정되었어요.
버전이 잘못 표시되고 있던 현상이 수정되었어요.
🎥Youtube 객체에서 라이브 방송이 재생되지 않고, 간헐적으로 종료되는 이슈가 수정되었어요.
스튜디오 UI 일부 오류가 수정되었어요.
WebForum 에서 연결된 서버 오류가 수정되었어요.
스튜디오 실행, 월드트리의 [Navigation] 클릭 -> 프로퍼티 값을 변경하게 되면 종료되는 현상이
수정되었어요. 😄
갤럭시 노트 10에서 특정 월드 입장 시 앱이 종료되는 현상이 수정되었어요.
Release Note 0.6.0 - Notice
Release Date : 2022.5.18
안녕하세요. 디토랜드 개발팀입니다.
모바일 출시
📱모바일 AOS 출시를 앞두고 있습니다. iOS도 빠른 시일 내에 선보일 예정이니 조금만 기다려주세요.
간편 로그인 적용
😙간편 로그인이 적용되었어요.🎉
이제 구글, 페이스북, 애플 계정으로 쉽고 빠르게 회원 가입 및 로그인이 가능하며,
기존 회원 가입하신 분들은 [마이디토→설정→계정관리 하단 ‘간편 로그인 전환’] 페이지에서
원하는 간편 계정으로 전환할 수 있습니다.
📌 간편 로그인 주의 사항
→ 간편 로그인을 등록하지 않은 계정은 추후💥삭제될 예정이니 꼭 전환해주세요!
→ 간편 로그인으로 전환된 계정은 기존 아이디로 접속할 수 없으니 참고 해주세요.🔒
아이템 샵 초기화 및 럭키박스 추가
아쉽지만, 그동안 무료로 착용 가능했던 👕아이템들을 사용할 수 없습니다. 😢
대신!! 매일 럭키박스로 지급되는 💰디토 골드로 👕아이템을 구매하고 내 부캐 아바타를 멋지게 꾸며보세요.
앞으로 더욱 다양한 👚아이템들로 여러분을 찾아갈 예정 입니다~~ 아이템 폭격💣
개발 편의를 위한 다양한 기능들
기본 템플릿 구조가 변경 되어, 기존 맵이 정상적으로 동작하려면 일부 내용이 수정되어야 합니다.
수정 방법은 ⏬ 아래 링크를 참고해주세요. 🙏
→ 메뉴얼 바로가기 👉
API Reference 가 갱신 되었습니다. ⏬ 아래 링크에서 최신 버전을 확인해보세요.
→ API Reference 바로가기 👉
업데이트 되는 💥새로운 기능들을 확인해 보세요.
놓치면 아쉬운 내용들에 달콤한 꿀 표시(🍯)가 되어 있습니다. 🤗
자세한 내용은 아래 Updates 내용을 확인해주세요!!
Updates
새로 스튜디오에 업데이트 된 다양한 기능을 알려 드립니다!!
1. 🍯 프로퍼티를 일괄 복사 붙여 넣기 하는 기능이 추가되었어요 😍
스크립트 파라미터도 일괄 복사 붙여넣기를 할 수 있어요 👏
2. 🍯 스크립트 파라미터의 다중 편집 기능이 추가되었어요 🙌
아쉽지만 Enum은 지원하지 않아요 😢
3. 🍸 유리 재질의 굴절률을 조절할 수 있게 되었어요.
4. 🍯 타겟 지정 기능 변경!
타겟 박스를 🖱️클릭하고 월드 트리 혹은 필드 상의에 객체를 🖱️클릭해서 🔗타겟을 지정할 수 있어요.
5. 스튜디오 툴 바의 [Material Color]에서 변경되는 🎨컬러를 실시간으로 확인할 수 있어요.
local SpotLight = Script.Parent
print(SpotLight:GetColor())
5. 🍯 캐릭터의 📷카메라 방향을 구하는 함수의 이름이 변경되었어요.
LocalPlayer:GetForwardVector() -> LocalPlayer:GetCameraForward()
LocalPlayer:GetRightVector() -> LocalPlayer:GetCameraRight()
--Tip. 기존의 GetForwardVector와 GetRightVector도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
6. 🍯 LocalPlayer의 이동 및 📷카메라의 활성화 여부를 반환하는 함수가 추가되었어요.
print(LocalPlayer:GetEnableMovementeControl())
print(LocalPlayer:GetEnableCameraControl())
--Tip. 기존의 LocalPlayer.bEnableCameraControl도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
7. 🍯 LineTrace 함수가 LineTraceList로 변경되었어요.
-- 서버에서
local hitResult = **player**:LineTraceList(character:GetLocation(), character:GetTransform():GetForward(), 1000)
for i = 1, #hitList do
print(hitList[i].HitObject)
end
-- 클라에서
local hitResult = **remotePlayer**:LineTraceList(character:GetLocation(), character:GetTransform():GetForward(), 1000)
for i = 1, #hitList do
print(hitList[i].HitObject)
end
--Tip. 기존의 player:LineTrace도 아직은 사용할 수 있지만 곧 없어질 예정이에요!
8. 🍯 SetFriction 함수가 삭제되고, Friction, Restitution, Density 프로퍼티가 추가되었어요.
10. 📱 App 마케팅 수신 동의 기능이 개선되었습니다.
이젠 야간에 알림을 받지 않게 설정하실 수 있어요.📴
Bug Fixes
📱모바일에서 컨트롤이 먹통💣이 되던 현상이 수정되었어요. 🙏
📱모바일에서 OnPressEvent 동작 시 카메라가 의도치 않게 회전하는 현상이 수정되었어요.
스튜디오에서 📁파일을 오픈 할 때 “잘못된 경로의 맵 파일 입니다 “팝업이 출력 되는 현상이
수정되었어요.
환경 객체의 ⏰CurrentTime 속성으로 현재 시간 출력 시, 값이 드문드문 변경되는 현상이
수정되었어요.
📱 모바일 기기에서 마이디토 아바타 프로필 이미지가 🙃뒤집혀 보이는 문제가 수정되었어요.
📱 모바일 기기에서 마이디토 아바타 프로필 이미지가 낮은 화질로 보여지는 문제가 해결되었어요.
간헐적으로 🎙️음성 채팅의 [마이크 볼륨 / 음성 채팅 볼륨 값]이 0으로 출력 되는 문제가
수정되었어요.
기업 계정으로 스튜디오에 접속했을 때, 🎥유튜브 객체를 추가하고 플레이 테스트 하면 스튜디오가 간헐적으로 종료💣되는 문제가 수정되었어요.
SendEvent로 🎨Color 인자를 전달할 수 없는 버그가 수정되었어요.
QuickSlot에 등록된 🗡️Item이 사라지는 경우 OnChangedQuickSlot 이벤트가 호출되지 않는
현상이 수정되었어요.
🗡️Item장착 처리 시 ClearItem을 하지 않고 UnequipItem하는 경우, 재 장착 시 비정상적인 에러가 출력 되는 현상이 수정되었어요.
🌟이펙트 재생 시 Play when created를 false로 설정할 경우, OnBeginOverlapEvent함수로
🌟이펙트 Play가 안되던 현상이 수정되었어요.
🥣스튜디오에서 팔레트를 2개 이상 생성한 뒤에 팔레트 1개를 삭제하면, 나머지 팔레트가
🖱️우 클릭 되지 않던 현상이 수정되었어요.
객체에 Vector나 🎨Color변수를 할당한 뒤 값을 바꾸면, Get할 때 초기 값이 얻어지는 현상이
수정되었어요.
AddWorldRot함수가 기대한 값과 다르게 조금씩 ✨오차가 나던 현상이 수정되었어요.
🌟 빔 FX가 생성 즉시 가시성이 올바르게 동작하도록 수정되었어요.
SetText로 소수를 찍을 때 math.floor를 쓰지 않아도 ✨소수가 제대로 출력 되지 않는 문제가
수정되었어요.
🧍Character의 부모를 변경하려고 하면 💥Crash가 발생하는 현상이 수정되었어요.
이제 콘솔에 Error를 출력해요.
스크립트 파라미터로 받는 String이 이제 🔠대소문자 구별을 하도록 수정되었어요.
🌟 이펙트 일부가 📱모바일 환경에서 제대로 보이지 않던 문제가 수정되었어요.
🎥Youtube객체에서 Pause, IsPause, Close등 함수가 특정 상태에서 제대로 동작하지 않던 문제가 수정되었어요.
💊Capsule Collider의 Diameter가 Height보다 크지 않도록 수정되었어요.
SphereCollider의 반지름이 ✨지름처럼 적용되던 문제가 수정되었어요.
웹페이지가 열릴 때 ⬜하얗거나 ⬛검은 화면이 나오는 경우가 수정되었어요.
Release Note 0.5.4 - Notice
Release Date : 2022.3.31
DitoLand Platform
Updates
🏅제1회 디토랜드 크리에이터 경진대회🏅가 시작됩니다. 메타버스 크리에이터에 도전해보세요.
자세한 내용은 [디토랜드 크리에이터 경진대회 안내]를 참고하세요 .🎉
다운로드 안내 페이지 내용이 수정되었어요. 💻
Known Issues
스튜디오에서 파일을 오픈할 때 “잘못된 경로의 맵 파일 입니다 “팝업이 출력되고 있습니다. 📃
이후에 맵 파일은 정상적으로 로딩 동작 하고 있어요. 😅
현재 가이드 페이지의 🔍 검색이 원활하지 않은 이슈가 있어요. 😥
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 낮은 화질로 보여지는 문제가 있어요.
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 뒤집혀 보이는 문제가 있어요.
간헐적으로 🎙️보이스 셋팅의 [마이크 볼륨 / 음성 채팅 볼륨값]이 0으로 출력 되는 문제가 발생해요.
기업 계정으로 스튜디오에 접속했을 때, 🎥유튜브 객체를 추가하고 플레이 테스트 하면 스튜디오가 간헐적으로 종료💣되는 이슈가 있어요. 다만 월드로 등록하고 홈페이지에서 접속하면 정상으로 동작합니다. 🙏
웹페이지가 열릴 때 하얗거나 검은 화면이 나오는 경우가 있습니다. 😣
🗑 Net(그물) 재질의 twoside옵션을 문제 해결 시 까지 제거합니다.
💥 이펙트 - LineTrail의 TargetLocation으로 설정한 물체가 움직일 때 이펙트가 보이지 않는 현상이 있습니다.
Release Note 0.5.3 - Notice
Release Date : 2022.3.23
Updates
Bug Fixes
🕹 앱 아이콘이 언리얼 아이콘으로 나오던 현상이 수정되었어요.
스튜디오에서 메모리 ⚙가 과도하게 점유되는 현상이 🛠 수정되었어요.
🖼 PDF를 공유한 방에서 재접속시 앱이 🎇 종료되던 문제가 🔧 해결되었어요.
DitoLand Platform
Bug Fixes
비공개 월드의 👨👨👧👧 그룹원 테스트 기능이 동작하지 않는 오류가 🔨 수정되었어요.
이제 비공개로 👨👨👧👧 그룹원들끼리 테스트 하는기능이 정상 동작해요. 🥰
Known Issues
스튜디오에서 파일을 오픈할 때 “잘못된 경로의 맵 파일 입니다 “팝업이 출력되고 있습니다. 📃
이후에 맵 파일은 정상적으로 로딩 동작 하고 있어요. 😅
음성 채팅이 없는 월드를 방문한 뒤 플레이스에 들어가면 음성 채팅과 마이크 뷸륨이 1로 줄어드는 현상이 있어요🔇 이때는 환경설정>Voice 항목으로 들어가 볼륨을 올리면 정상적인 이용이 가능합니다.
현재 가이드 페이지의 🔍 검색이 원활하지 않은 이슈가 있어요. 😥
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 낮은 화질로 보여지는 문제가 있어요.
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 뒤집혀 보이는 문제가 있어요.
간헐적으로 🎙️보이스 셋팅의 [마이크 볼륨 / 음성 채팅 볼륨값]이 0으로 출력 되는 문제가 발생해요.
기업 계정으로 스튜디오에 접속했을 때, 🎥유튜브 객체를 추가하고 플레이 테스트 하면 스튜디오가 간헐적으로 종료💣되는 이슈가 있어요. 다만 월드로 등록하고 홈페이지에서 접속하면 정상으로 동작합니다. 🙏
웹페이지가 열릴 때 하얗거나 검은 화면이 나오는 경우가 있습니다. 😣
🗑 Net(그물) 재질의 twoside옵션을 문제 해결 시 까지 제거합니다.
💥 이펙트 - LineTrail의 TargetLocation으로 설정한 물체가 움직일 때 이펙트가 보이지 않는 현상이 있습니다.
Release Note 0.5.2 - Notice
Release Date : 2022.3.16
Updates
각 월드의 로딩 속도가 대폭 상승 🎉 되었습니다. 더욱 빨라진 디토랜드를 만나보세요. ✨
기업계정용 PDF강의 기능 🖼이 추가되었습니다. 여러명에게 문서를 화면으로 공유 및 페이지 동기화가 가능합니다. 사용 후 많은 피드백 부탁드립니다.
대한민국 💂♂️ 육군 전투복 및 정복 복장이 추가되었습니다 (추후 사전 고지 없이 삭제될 수 있습니다)
🔊 보이스 채팅이용시에 통신망의 변경이나 접속 오류로 인해 끊김 발생시에 재연결을 시도하도록
개선되었습니다.
스튜디오와 대시보드에 🏃♂️ 고통 애니메이션이 추가되었어요.
(스튜디오에서는 애니메이션 추가 팝업의 감정표현탭에서 설정할 수 있어요.)
스튜디오에 🏃♂️ 좀비_공격_0 애니메이션이 추가되었어요.
(스튜디오에서는 애니메이션 추가 팝업의 감정표현탭에서 설정할 수 있어요.)
스튜디오와 대시보드에 교복 및 운동복 🙎♂️🙎♀️ 의상이 추가되었어요. (상의3종, 하의3종)
배경음 15종이 추가되었어요. BGM_ 으로 검색해보세요.
효과음 20종이 추가되었어요. SFX_ 으로 검색해보세요.
Ditoland - Script
Bug Fixes
🔧 월드트리에서 Toybox의 CharacterSetting의 Child로 StaticObject 생성 후,
SurfaceUI 생성하면 스튜디오 실행 시 강제종료 되는 버그 수정되었습니다.
Known Issues
현재 가이드 페이지의 🔍 검색이 원활하지 않은 이슈가 있어요. 😥
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 낮은 화질로 보여지는 문제
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 뒤집혀 보이는 문제
간헐적으로 🎙️보이스 셋팅의 [마이크 볼륨 / 음성 채팅 볼륨값]이 0으로 출력 되는 문제가 발생해요
기업계정 스튜디오로 🎥유튜브객체를 넣고 플레이테스트시 스튜디오가 간헐적으로 종료💣되는 이슈가 있습니다. 🙏 등록 후 플레이어에서는 정상 동작합니다.
웹페이지가 열릴대 하얗거나 검은 화면이 나오는 경우가 있습니다. 😣
🗑 Net(그물) 재질의 twoside옵션을 문제 해결시까지 제거합니다.
💥 이펙트 - LineTrail의 TargetLocation으로 설정한 물체가 움직일 때 이펙트가 보이지 않는 현상이 있습니다.
Release Note 0.5.1 - Notice
Release Date : 2022.2.25
안녕하세요. 디토랜드 개발팀입니다.
개발팀은 현재 모바일 버전 정식 출시와 사용자 에셋 업로드 기능을 중점적으로 개발하고 있으며
곧 여러분에게 선뵐 날이 다가오고 있음을 알려드립니다.
디토랜드 많은 사랑과 관심 부탁드립니다.
질문이나 오류 보고 등은 언제든지 디스코드 채널로 문의 부탁드립니다.
Updates
놓치면 아쉬운 내용들에 달콤한 꿀 표시(🍯)를 했으니 한번 찾아보세요! 🤗
📑 스크립트 에디터의 기능이 추가되고 UX가 개선되었어요. 🎊
🍯📑 스크립트 에디터에서 코드영역을 지정 후, Ctrl + Shift + C 키를 입력하면
주석으로 설정되는 기능이 추가되었어요. 😍
🍯📑 스크립트 에디터에서 찾기/바꾸기 기능을 이제 단축키로 사용할 수 있어요. 🤗
현재 스크립트에서 찾기 : Ctrl + F / 현재 스크립트에서 바꾸기 : Ctrl + H
전체 스크립트에서 찾기 : Ctrl + Shift + F / 전체 스크립트에서 바꾸기 : Ctrl + Shift + H
🍯📑 스크립트 에디터에서 전체 찾기의 입력창이
화면 하단에서 화면 상단으로 위치가 변경되었어요. 🎈
🍯📑 스크립트 에디터에서 Explorer에 있는 객체를 드래그한 뒤,
스크립트 입력창의 라인 번호로 드랍하면 해당 객체의 주소가 🎁 자동 완성되는 기능이 추가되었어요.
(스크립트를 드랍시에는 새로운 탭으로 열리게 됩니다.)
🍯📑 스크립트 에디터에서 스크립트 탭을 우클릭후, Explorer View를 클릭하면
해당 스크립트의 🔍 위치를 찾을 수 있어요.
🍯2옥타브 분량의 🎹 피아노 키음 리소스 🎶가 추가되었어요.
툴박스에서 오디오 카테고리를 선택한 뒤, Piano를 검색해보세요. 🤩
Ditoland - Script
Bug Fixes
캐릭터와 NPC의 🚶♀️ 길찾기 이동이 동작하지 않는 현상이 🔧수정되었어요.
SetButtonHoverColor/SetButtonPressColor 함수로 버튼 🎨 색상을 변경하면
설정한 색상보다 어둡게 나타나는 현상이 수정되었어요.
🏀 Crevase 토이 위에 올라타면 Fall 애니가 출력되는 현상이 수정되었어요.
특정맵의 💡 워닝로그에서 표시되는 라인이 실제 코드상의 라인과 다른 현상이 수정되었어요.
Known Issues
현재 스튜디오의 월드트리에서 HUD 루트에 TouchUI를 생성하고 자식을 추가할 때
프로그램이 종료되는 이슈가 있어요
DitoLand Platform
Bug Fixes
새로 가입한 계정의 🙍♂️ 아바타 이미지가 출력되지 않던 문제가 수정되었어요. ✨
Known Issues
현재 가이드 페이지의 🔍 검색이 원활하지 않은 이슈가 있어요. 😥
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 낮은 화질로 보여지는 문제
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 뒤집혀 보이는 문제
아바타 이미지 저장 방식이 개선되면서 웹에 출력되던 이미지가 초기화 되었습니다. 😥
대시보드에서 🙍♂️ 아바타 설정 변경 후 다시 저장 시 정상출력 됩니다. 🙏
간헐적으로 🎙️보이스 셋팅의 [마이크 볼륨 / 음성 채팅 볼륨값]이 0으로 출력 되는 문제가 발생해요.
Release Note 0.5.0 - Notice
Release Data : 22.02.16
기본 템플릿의 구조의 변경으로 기존 맵이 동작하려면 일부 내용이 수정되어야 합니다. 🙏
수정 방법은 ⏬ 아래와 같습니다.
Updates
월드 트리의 🔍 검색 기능이 개선 되었어요. 검색한 글자가 하이라이트 되며,
X 표시로 작성한 검색을 지울 수 있어요. 🗑
팝업 메뉴가 ✨개선✨ 되었어요. 필드에서 📦스테틱매쉬, 🔥이펙트를 생성할 수 있으며,
월드 트리에서도 다양하게 사용 가능해요.
🧐뷰필터 기능이 추가되었어요. 뷰필터를 이용해, 아이콘 혹은 오브젝트를 👓숨김 처리 할 수 있어요.
🎥 TOP 카메라 모드가 추가되었어요. 카메라가 탑뷰로 변경되어, 맵 제작이 더 용이해졌어요.
스튜디오 설정에서 🎛 카메라 값을 변경할 수 있어요.
시작시 보이스 채팅 기본값이 Mute로 변경되었어요.
PC - 보이스 챗 On/Off v키 버튼이 제거 되었어요
일부 이펙트에 중력(GravityForce) 속성이 추가되었습니다.
DitoLand - Script
🚶♀️ 캐릭터의 🕹 조작 처리 방식이 변경되었어요.
(bShowMouseCursor와 bCaptureMousePermanently를 이용한 처리도 아직은 가능합니다.)
--입력모드를 설정합니다.
--Enum.InputMode.Game : 마우스 커서가 안보이고 마우스 움직임에 따라 카메라가 회전하는 모드입니다.
--num.InputMode.UI : 오직 UI 하고만 상호작용하는 모드입니다.
--num.InputMode.GameAndUI : 마우스 커서가 보이면서 UI 와 상호작용하고 클릭 드래그로 카메라를 회전할 수 있는 모드입니다.
LocalPlayer:SetInputMode(Enum.InputMode.Game)
--현재 입력모드를 얻습니다. (0-정의안됨, 1-Game, 2-UI, 3-GameAndUI)
LocalPlayer:GetInputMode()
--현재 입력모드를 임시저장 합니다.
LocalPlayer:StoreCurrentInputMode()
--StoreCurrentInputMode 함수로 저장했던 모드로 되돌아 갑니다.
LocalPlayer:RestorePreviousInputMode()
🌤 환경의 현재 ⏱ 시간 속성이 추가되었어요.
local Environment = Workspace.Environment
print(Environment.CurrentTime)
🧍♀️🧍♂️ 팀 배분 타입(Enum.DivideTeamType) 중 Order 타입이 삭제되었어요.
(Equal 타입을 사용하는 것을 권장해요!)
🕳 텔레포트 함수의 LandID(랜드 번호) 인자가 LandOrder(랜드 연결 순서)로 변경되었어요.
--시작랜드 0, 연결랜드 순서대로 1~
local LandOrder = 1
Game:TeleportToPublicServer(LandOrder, movePlayerNameList, "")
Game:TeleportToPrivateServer(LandOrder, movePlayerNameList, "")
--------------------------------------------------------------------------------
local function PortalA_TeleportStart(player)
end
Game:AddTeleportStartEvent(LandOrder, PortalA_TeleportStart)
--------------------------------------------------------------------------------
local function TeleportFailed(TeleportErrorType, player, LandOrder)
end
Game.OnTeleportFailedEvent:Connect(TeleportFailed)
--현재 랜드의 순서를 반환해요
local GetCurrentLandOrder = Game:GetCurrentLandOrder()
💼🍖 인벤토리/아이템 관련 함수의 인덱스가 1부터 시작되도록 통일되었어요.
--해당 함수 목록
player:GetInventoryItem(id)
LocalPlayer:UseInventoryItem(id)
player:EquipInventoryItem(id)
LocalPlayer:UnEquipInventoryItem(id)
LocalPlayer:WorldDropInventoryItem(id)
player:DeleteItem(id)
--GetInventoryItemList()는 LocalPlayer와 서버 Player에서 사용 가능해요.
local InvenItems = LocalPlayer:GetInventoryItemList() --{ 1, 4, 11, 3 }
for SlotIndex, SlotItem in pairs(InvenItems) do
print(SlotIndex, " ", SlotItem:GetName())
end
⛏ 콜라이더에 닿은 상태에서 테스트 플레이 종료시 잘못된 에러가 출력 되는 현상이 수정되었어요.
📱 모바일 기기에서 다른 앱 실행 후 돌아오면 꺼지던 문제가 수정되었어요
Known Issue
현재 🧍♀️캐릭터와 🧍♂️NPC의 길찾기가 동작하지 않는 현상이 있어요. 😢
현재 가이드 페이지의 🔍 검색이 원활하지 않은 이슈가 있어요. 😥
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 낮은 화질로 보여지는 문제
📱 모바일 기기에서 캡쳐된 마이디토 이미지가 뒤집혀 보이는 문제
일부 개발중 기능이 포함되어 있으며 동작을 보장하지 않아요.
DitoLand Platform
Updates
월드 상세페이지가 개선되었어요~ 😘
월드 리뷰 기능✒이 추가되었어요~ 이젠 월드 후기를 다른 👩🦰🧒친구들과 공유해보세요.
월드 상세 이미지🖼를 추가로 등록하지 않으면 캡쳐 이미지로 노출되도록 변경되었어요.
📱 App에서 비공개 플레이스 공유 시 입장코드도 함께 발송되도록 🔧개선되었어요.
📱 App 플레이스 태그 선택 검색 기능이 복수 선택 가능하도록 🔧개선되었어요.
📱 App에 오픈소스🧾가 고지되었습니다.
📱 App 친구 프로필 화면에 친구의 🙍♂️아바타를 확인할 수 있도록 전신 이미지🕺가 추가되었어요.
Release Note 0.4.0 - Notice
Release Data : 2021.12.14
안녕하세요 디토랜드 개발팀입니다. ✨
오랜만에 인사드립니다. 🎈 즐거움전 이후로 많은 사항이 개선/추가 되었습니다. 🎉
또한 📱모바일 버전을 드디어 선보일 수 있게 되었습니다. 🥰
다소 부족하지만 정식 출시 될때까지 많은 부분을 개선할 예정이니
정식출시까지 조금만 더 기다려주세요. 😙
기본 템플릿의 구조의 변경으로 기존 맵이 동작하려면 일부 내용이 수정되어야 합니다. 🙏
수정 방법은 ⏬ 아래와 같습니다.
Updates
놓치면 아쉬운 내용들에 달콤한 꿀 표시(🍯)를 했으니 한번 찾아보세요! 🤗
🍯드디어 모바일 테스트 버전이 출시되었어요. 🎊
기본 템플릿에 모바일 조작🕹이 추가되었어요!
이제 업데이트 이후 스튜디오에 있는 템플릿 맵들로 작업을 시작하면 기본적으로 모바일 조작이 지원돼요. 😍
일부 기능이 미동작 하거나 오류가 있을 수 있어요. 🕵️♂️
디스코드 채널로 문의 부탁드려요.
현재 보여지는 아바타 착용 아이템🧥🥼🩳들은 정식 출시시 초기화 될 수 있음을 다시 안내 드려요.
다소 불안정하거나 최적화에 문제 있을 수 있는 점 양해 부탁드려요. 🙏
iOS 도 곧 선보이도록 할게요.
🍯배경 재질이 리뉴얼✨됩니다.
이에 따라 기존에 배치된 일부 객체들의 재질이 초기화될 수 있습니다.
유저데이터, 리더보드와 관련된 💾 게임데이터가 초기화되었어요.
작업 표시줄에 Output 윈도우, Script Editor 윈도우의 이름이 표시되게 개선되었어요. ⛏
🍯월드트리에서 오브젝트를 선택한 뒤, F2키를 눌러 ✏이름을 재설정할 수 있게 개선되었어요.
🍯월드트리의 오브젝트 순서🔁를 자유롭게 변경할 수 있도록 개선되었어요.
🍯객체에 추가한 스크립트 프로퍼티의 순서🔁를 변경할 수 있게 개선되었어요.
ScreenUI의 표시 순서를 설정하는 ViewOrder 프로퍼티가 추가되었어요. 😎
구성된 위젯의 위치와 크기에 따라, SurfaceUI의 크기가 자동 조절🎛되도록 변경되었어요. 이 기능을 이용하려면 SurfaceUI의 AutoCanvasSize 프로퍼티를 활성화해야해요.
🍯Text 위젯의 세로 정렬 프로퍼티가 추가되었어요. 📋
🍯Text 위젯의 내용을 편집할 때, Shift+Enter키를 입력해서 줄바꿈📑을 이용할 수 있어요.
🍯Text 위젯에 AutoSize 프로퍼티가 추가되었어요. ✒
🍯UI 위젯에 피벗 설정에 사용할 수 있는 ♟ UI Alignment 프로퍼티가 추가되었어요.
🍯자식 위젯도 앵커를 설정할 수 있도록 개선되었어요. 🤗
🧜♂️ NPC 오브젝트의 구조가 변경되었어요. 자세한 내용은 NPC 매뉴얼을 참고하세요! 📙
🍯스크립트 파라미터에 오브젝트 참조 유형🧵이 추가되었어요.
🍯스크립트 자동 완성 기능이 추가되었어요. 아쉽게도 현재는 내장함수만 지원해요. ⌨
앞으로 더 많은 자동완성기능이 준비될 예정입니다!
Ditoland - Script
추가 사항
🍯Blank 템플릿에 셀프카메라 기능이 추가되었어요! 📷
이제부터 생성하시는 월드에서는 셀프 카메라 기능이 적용됩니다.
친구들과 즐거운 셀카 타임 보내세요. 🤟
🍯print() 함수의 인자로 오브젝트 전달시, 이름이 출력되게 개선되었어요. 🤩
print(Workspace.SpawnPoint)
--SpawnPoint:GetName()을 쓰지 않아도 이름이 바로 출력됩니다.
🍯SetTransform()을 거치지 않고, 바로 😁 SetLocation(), SetRotation()를 사용할 수 있게 개선되었어요!
할당된 값이 있는지 ❓확인할 때 사용할 수 있는 IsValidValue 함수가 추가되었어요.
--객체에 할당된 값이나 오브젝트를 이름으로 찾아서 있는지 여부를 bool로 반환해요
if Workspace.SpawnPoint:IsValidValue("SurfaceUI") == true then
print(Workspace.SpawnPoint.SurfaceUI:GetName())
end
if Workspace.SpawnPoint:IsValidValue("ScreenUI") == false then
print("ScreenUI가 없어요!")
end
🚫 할당되지 않은 값에 접근할때 에러가 출력되도록 개선되었어요.
변경 사항
일부 함수/속성의 사용 방식이 아래와 같이 변경되었어요. 🔧
아직 기존 방식과 변경된 방식 둘다 사용할 수 있지만, 기존 방식의 함수를 사용하면 수정을 권장하는 로그가 표시된답니다!
스튜디오에 🌐메타버스 계정 전용 기능이 추가됩니다.
자세한 활용 방법은 제작 가이드를 추가해서 알려드릴게요.
→ 객체: 영상스트리밍
→ UI 위젯: 웹브라우저 / 하이퍼링크버튼
→ 랜드 옵션: 보이스채팅 활성화 / 자동번역 활성화
NPC 기능이 추가되었습니다. 월드트리에서 새로운 오브젝트 아이콘을 찾아보세요 🤖
재질 개선 및 최적화 - 기존보다 훨씬 아름다워지고 훨씬 가벼워졌습니다.
마음것 월드를 꾸며주세요. (기존에 작업하신 부분은 그대로 유지되니 안심하셔도 됩니다)
환경 동적 변경 기능 추가 - 밤낮이 실시간으로 변하는 디토랜드를 만나보세요.
자동옵션 및 최적화 - 이제 저사양 PC에서도 더욱더 원활히 돌아가는 디토랜드를 체험하실 수 있습니다.
로그 윈도우와 스크립트 에디터가 별도 창으로 분리되었습니다.
이제 한 모니터에서는 월드 구성을, 다른 모니터에서는 스크립팅이 가능해졌어요!📺📺
스튜디오 샘플 Run&Jump, Tutorial1~3 에 생명력 시스템이 추가되었어요.
스튜디오에 새로운 템플릿 Cross Jump이 추가되었어요.
Ditoland - Script
환경 변경 기능이 추가되었어요.
⏩ Sample 페이지의 Scripting에 Environment를 참고해보세요!
캐릭터 및 캐릭터 애니 변경 기능이 추가되었어요.
⏩ Sample 페이지의 Scripting에서 ChangeCharacter와 CharacterCharacterAni를 참고해보세요!
NPC 기능이 추가되었어요.
⏩ Sample 페이지의 Scripting에서 NPC를 참고해보세요!
채팅 관련 기능이 추가되었어요.
ostime 함수가 추가되었어요.
SetRotation, AddLocation, AddRotation, SetScaleXYZ 등 트랜스폼 관련 함수에서
인자로 Vector값을 사용할 수 있게 개선되었어요!
기본 템플릿의 구조가 아래와 변경되었어요!
Manual
매뉴얼 페이지 카테고리가 개편되었어요!
DitoLand Dashboard
의상👕을 직접 제작🎨하여 착용할 수 있는 UCC 기능을 준비하고 있어요.
일부 기능이 오류처럼 보일 수 있으니 양해 부탁드려요~ 🙏
모자랑 붙어있던 일부 헤어에서 모자가 분리되었습니다. 분리된 모자는 모자 항목에서 다시 착용할 수 있어요~
Bug Fixes
스튜디오 안정성 개선
일부 Toy 안정성 개선
채팅UI 숨김 기능 오동작 수정
TextBox 위젯의 최신 Text를 GetText()로 가져오지 못한 현상 수정
SurfaceUI 위젯 수정 시 수정 사항이 즉시 반영되지 않는 현상 수정
Blank 맵 편집 중 다른 맵 Load 시, Load Dialog가 먼저 뜨는 현상 수정
툴박스 탭 연속 클릭 시 검색 결과 늘어나는 현상 수정
팔레트에 등록한 Toy 붙여넣기 시 좌표값 오동작 수정
랜드 내 안 보이게 처리한 객체가 섬네일에 노출되는 현상 수정
Studio 백그라운드 시 프레임 하락 수정
DitoLand Platform
Updates
🚩 신고 기능이 추가되었습니다. 이제 디토랜드에서 문제가 있는 것들을 직접 신고하실 수 있어요! 🚩
👍 좋아요 / 👎 싫어요가 보다 정확한 평가를 위해 참여한 분들만 할 수 있도록 변경되었습니다.
월드 체험후에 눌러보세요.
🔊 그룹의 소통하기와 답글 노출 방식이 개선되었습니다.
이젠 새로 등록된 글을 바로 확인할 수 있어요!
📋 약관 내용이 변경되었습니다. 변경된 내용은 디토랜드 홈페이지에서 확인해주세요~
Bug Fixes
이메일 인증 유효시간으로 발생하던 오류가 해결되었습니다.⏳
🎮 마이페이지의 게임 계속하기 목록이 정상출력 되도록 수정되었습니다.
그룹의 소통하기가 중복 출력되던 현상이 해결되었습니다.🛠
🖼 게임 썸네일 등록 오류 문제가 해결되었습니다.
Release Note 0.2.0 - Notice
Release Date : 2021.07.08 17:15
안녕하세요. 디토랜드 개발팀입니다.
오랫만에 패치로 찾아뵙게 되어 반갑습니다.
이번 주 내로 진행될 0.2.0 패치에서 여러분들이 올려주신 맵들은 API수정으로 인해서 다음과 같은 수정이 필요합니다.
개발팀에서 코드로 대응할 수 있는 부분은 대응했으나 부득이하게 맵파일에서 다음과 같은 부분을 수정해주셔야 정상 동작하게 됩니다.
직접 아래 사항을 수정하신 후 다시 테스트 해보신 후 내 게임 관리 - 게임 선택 - 활성화 해주시면 동작하게 됩니다.
또한 여러분이 올리신 맵들은 모두 일괄 비활성화 됨을 알려드립니다.
저희 개발팀에서는 업데이트로 인해 유저분들이 작업한 컨텐츠들이 동작하지 않는 경우를 최소화 하기 위한 준비들을 하고 있으며 이런 식의 수정이 앞으로 최소화 될 수 있도록 노력하겠습니다.
수정 방법은 아래와 같습니다.
0.2.0 패치 직후 진행 부탁드립니다.
※ 업데이트 내용입니다. 📋
DitoLand
Updates
🎲 컨텐츠 백여개가 추가 되었습니다 (3D모델, 이미지, 효과음, 음악 ) 계속적으로 추가될 예정이니 더욱더 다양한 디토랜드 세상을 만들어보세요. (최근순으로 정렬해서 보시면 더 편하게 확인하실 수 있습니다.)
🕹 이제 플레이 버튼을 플레이어가 즉시 실행되는 방식으로 개선되었습니다.
🗡 한손검.격투애니메이션이 추가되었습니다. 스튜디오의 CharacterSetting-속성에서 확인하실 수 있습니다.
🧾 속성등 더 많은 부분이 한글화 되었습니다. 🇰🇷
⚙ 스튜디오 설정 메뉴에 다양한 기능이 추가되었습니다. 🙌🏼🙌🏾
→ ✔ 카메라 속도, 자동저장 주기, 색상 조절, UI DPI조절 기능이 추가되었습니다.
👄 자동번역과 보이스채팅을 지원하는 새로운 채팅 서버가 적용되었습니다. (일부 구현중인 기능이 포함되었습니다) - 일반사용자는 사용할 수 없습니다.
💬 이제 채팅창 활성화, 채팅 보내기가 "/"에서 "Enter"키로 변경되었습니다.
🗺 스튜디오에서 길찾기 기능이 추가 되었습니다. (곧 NPC가 찾아뵐 예정입니다 :D)
🎨 이제 스튜디오 UI 에디터에서 다중 선택이 가능합니다.
🖼 랜드 연결상태를 더 잘 볼 수 있도록 스튜디오의 퍼블리시 화면을 개선하였습니다.
👁🗨 스튜디오에서 투명도가 적용되지 않는 부분은 속성에서 투명도를 조절할 수 없도록 수정되었습니다.
🖨 이제 스크립트 에디터에서 로그를 더 상세히 출력합니다. 🤟
🎮 토이/샘플맵 수정사항
1. 🎪 툴박스에 토이가 추가되었어요!
→ ⌨ 글자를 입력할 수 있는 TextToy가 추가되었어요. (ToyRoom에서 확인해보세요!)
→ 🔄 오브젝트의 회전에 활용할 수 있는 RotPart가 추가되었어요. (ToyRoom에서 확인해보세요!)
→ 🕑 콜라이더 타입의 스톱워치 토이인 Stopwatch_Collider가 추가되었어요.
**2. 💌 **토이에 주석이 추가되었어요!
3. 🔫 총기류 토이 개선 - 패치 이후 순차적으로 업로드 될 예정입니다.
→ ✔ 내부 기능 개선 및 예외처리, 상태제어 함수가 추가되었어요.
📑 ModuleScript 기능 추
→ ✔ Utility 모듈에 ScanObjectList 함수가 추가되었어요.
Bug Fixes
⛑ 스튜디오와 플레이어의 안정성이 개선되었습니다.
(😥그럼에도 불구하고 혹시 크래시가 나실 경우. 간단히 상황 기재후 "Send & Close" 버튼을 꼭 눌러주세요.🙏🏼)
🤼♂️ 특정 게임을 여러 플레이어가 동시에 플레이할때 우상단에 나오는 유저명 목록 표시가 오동작하는 현상이 수정되었습니다.
💥 이펙트 - LineTrail의 TargetLocation을 설정하면 이펙트가 보이지 않던 현상이 수정되었습니다.
⌨ 스튜디오 멀티 플레이테스트에서 별도 실행된 플레이테스트 창을 esc메뉴를 통해서 닫을 수 없는 문제가 해결되었습니다.
🎼 컨텐츠 업로드시 캡쳐되는 썸네일에서 오디오 개체등에서 일부 디버그 랜더가 포함되던 현상을 수정하였습니다.
🔧 윈도우 사용자 명에 공백이 있는 경우 정상적으로 실행되지 않던 문제가 수정되었습니다.:bl
Known Issues
🗑 Net(그물) 재질의 twoside옵션을 문제 해결시까지 제거합니다.
💥 이펙트 - LineTrail의 TargetLocation으로 설정한 물체가 움직일 때 이펙트가 보이지 않는 현상이 있습니다.
DitoLand Platform
Updates
👨👩👧👧 비공개 게임 그룹 테스트 기능이 추가 되었습니다. 이제 같은 그룹에 속한 디토랜드 유저분들끼리는 일반사용자에게 노출되지 않은 상태에서 테스트 하실 수 있습니다. (설정방법 : 게임 비공개 설정 > 테스트할 그룹 선택 > 그룹 소통하기에 게임 URL 공유 > 공유된 게임화면으로 이동 > 테스트 플레이)
📬 그룹 소통하기에서 답글을 읽기 편하도록 작성 순서로 노출순서를 변경하였습니다.
📬 그룹 소통하기에서 답글을 작성하기 편하게 입력 영역을 상단으로 변경하였습니다.
🔐 회원가입 시 규칙 확인 할 수 있고, 규칙 충족 시 확인 버튼 활성화 되도록 개선 되었습니다.
👉 일부 페이지 이동 동작이 개선되었습니다.
🖱 내 게임관리에서 오클릭 방지를 위해 클릭 영역을 개선하였습니다.
🔔 받은 알림 클릭 시 해당 화면으로 이동할 수 있도록 개선되었습니다.
👥 게임 리스트에 표기되는 동접자가 누적 방문자로 변경되었습니다.
💰 대시보드 아이템 샵에서 목록 불러오기 실패 시 리로드 버튼이 노출 되고, 버튼 클릭 시 안내문구는 사라지고 로딩중 이미지가 출력됩니다.
Bug Fixes
🛠 아바타 변경후 웹페이지를 2번 리프레쉬해야 반영되는 문제 수정.
🛠 계정찾기시 유효성 체크 및 정보 입력 관련 버그 수정.
🛠 친구 추가 알림시 친구 페이지로 안가던 버그 수정.
🛠 비공개 랜드에서 공개↔비공개 전환시 메뉴 노출되지 않던 문제 수정.
0.1.7
Release Date : 2021.06.10 19:15
DitoLand
Update
🎮 스토리 템플릿 추가 - 텍스트와 카메라를 이용한 예제가 추가 되었습니다.
🎁 아이템 구매 시 바로 작용 후 저장될 수 있도록 개선되었습니다.
🏃♂️ 스튜디오에서 사용할 수 있는 애니메이션이 추가되었습니다.
💥 컨텐츠가 40여개 추가 되었습니다 (3D모델, 이미지, 효과음, 음악 )
Bug fix
😆 감정표현 애니메이션 장착 시 크래시 되던 문제가 수정되었습니다.
🍬 아이템 구매 버튼이 중복 클릭 되던 버그가 수정되었습니다.
DitoLand Platform
Update
📑 이메일 인증 및 계정 찾기 기능이 업데이트 되었습니다.
0.1.6
Release Date : 2021.05.28 19:15
DitoLand Platform
Update
✨ 메인 페이지의 디토랜드 티저 영상이 변경되었어요.
📑 도움말 페이지의 내용이 추가되었어요.
Bug fix
🔧 회원가입을 할때 버튼을 빠르게 누르면 잘못된 경고가 출력되는 현상이 수정되었어요.
⚒ 그룹 생성시 가입 리스트가 갱신되지 않는 현상이 수정되었어요.
0.1.5
Release Date : 2021.05.14 18:21
DitoLand Platform
Update
🎠 디토랜드와 함께하는 인디크래프트 온라인 가상게임쇼에 참여할 수 있는 배너가 추가되었어요.
🎮 인기 게임 정렬 방식이 변경되었어요.
🏷 사용자 이름을 사용자 아이디로 명칭을 변경했어요.
📑 로블록스 사용자를 위한 가이드 문서가 추가되었습니다.
Bug fix
⛏ 회원가입 버튼 중복클릭 되는 버그가 수정되었어요.
🛠 검색창에 검색어 입력시 검색 서브메뉴가 잘리는 현상이 개선되었어요.
🔨 그룹 생성 시 가입리스트에 출력 안되던 현상이 수정되었어요.
0.1.4
Release Date : 2021.04.26 19:00
DitoLand
Update
🎮 키보드의 우측 화살표로 캐릭터 전/후진 및 카메라 좌우회전이 가능하도록 수정되었습니다. (Blank맵에서 확인할 수 있어요.)
🎁 스튜디오 템플릿 페이지에 튜토리얼 1~3번 맵이 추가되었습니다. (이 맵들을 이용하면 좀더 간편하게 장애물 달리기 게임을 만들어 볼 수 있습니다.)
Bug fix
🔨 런처 중복 실행시 나오던 오류 수정되었습니다.
⛏ 제어판에서 설치된 Ditoland의 버전이 잘못 표시되던 현상 수정되었습니다.
⚒ 디토랜드 대시보드의 작업표시줄 아이콘이 언리얼아이콘으로 나오던 현상 수정되었습니다.
🔧 캐릭터가 떨어져 죽을 때 OnDeathCharacter 이벤트 호출 되게 수정되었습니다.
DitoLand Platform
Update
📑 유니티 사용자를 위한 가이드 문서에 public 변수/함수 사용법이 추가되었습니다.
0.1.3
Release Date : 2021.04.16 19:10
DitoLand
Update
⏳ 다운로드 받는 파일의 크기가 대폭 감소하였습니다. ⏰ 빠른 다운로드후 설치가 가능합니다.
🕑 게임 실행시 로딩 상황을 알 수 있는 텍스트가 추가되었습니다. 🎉
🔊 사운드의 듣기 대상이 캐릭터에서 카메라 기준으로 변경되었습니다.
Bug fix
🛠 스튜디오 안정화. ( 🚧 크래시 리포트 화면에서 꼭 ㅜㅜ Send and Close 버튼 부탁드립니다. 🙏)
👌 일부 다운로드 받는 양이 많은 게임들이 바로 실행되지 않던 문제가 수정되었습니다.
📌 스튜디오에서 여러개 선택시에 포커스가 리셋되는 문제가 수정되었습니다.
😂 스튜디오의 아이디 표시가 제대로 표시되지 않던 문제가 수정되었습니다.
🎂 스튜디오,대시보드,플레이어의 바탕화면 아이콘이 제대로 표시되지 않던 문제가 수정되었습니다.
👀 특정 PC에서 파일 탐색기의 폰트가 제대로 보이지 않던 문제가 수정되었습니다.
🔫 Collison을 끈 StaticMesh, Collider 모두 총알이 정상적으로 통과하여 피해를 주도록 수정되었습니다. (Collider 너머에 있는 캐릭터에게 총을 발사할 때 이제 정상적으로 피해가 적용됩니다. 💣 )
DitoLand Platform
Update
🎨 메인 배너 이미지 교체되었습니다.
✨ 일부 모바일 화면에서 뭉개지던 아이콘이 개선되었습니다.
🌎 랜드 업데이트 할 때 게임 버전도 업데이트 되도록 수정되었습니다. 👏
🛠 설치 안내 팝업 내용이 개선되었습니다.
Bug fix
📴 모바일에서 실행파일이 다운로드 되지 않도록 수정되었습니다.
0.1.2
Release Date : 2021.04.09 22:22
DitoLand
런처 개선
🧰 실행을 위한 필수 프로그램들이 자동설치 됩니다.
⚙ 다운로드 속도가 표시됩니다.
Bug fix
🛠 스튜디오 안정화. (계속 하는 중입니다. 😅 여러분의 ✨소중한✨ 리포트 감사드립니다. ❤️😘)