As stated to Rocky, please also read my post above. It’s not just about the animations.
Adding onto this, the argument of it being easier to script with by @XionKazdok is indeed valid, though niche. My game backtracks the animations of players in order to verify the likelihood of a player exploiting their hit box, which has a lot of Motor6D math. I am no math expert, and so it would very likely take me weeks just to configure it properly to support R15, as it took me a month to get it right for R6.
This is also not to mention the fact that as stated again, we plan on supporting 200+ Player servers. R15 has 2.5x the amount of limbs of R6, and as such would be WAY more expensive than R6 in any popular server. R6 isn’t just “for lazy people,” as you seem to heavily imply. Please stop being biased towards R15 and read my posts properly.
I’m not complaining at all about it not supporting new features. Im just saying you shouldn’t try and force them to use R15 when they don’t want to.
It is fear of change, there’s nothing to think about, nobody is being forced to wear 3D clothing, if you want to wear 2D clothing you still can, this is fear mongering and it happens with every Roblox update.
I’ve been around since 2007, and I can assure you any character change was met with the same sort of OMG THINGS ARE CHANGING AND I DONT LIKE IT!!! response.
Why would you design your game around R6 in the first place? It’s deprecating and there’s no benefit to using R6 over R15.
My game backtracks the animations of players in order to verify the likelihood of a player exploiting their hit box
This doesn’t make any sense whatsoever, it sounds made up. Why would you ever determine a hitbox being exploited that way? Don’t confuse bad practices with things being harder
This is also not to mention the fact that as stated again, we plan on supporting 200+ Player servers. R15 has 2.5x the amount of limbs of R6, and as such would be WAY more expensive than R6 in any popular server.
Okay, now you’re really just scraping the bottom of the pan for anything to further solidify your argument. It’s not going to be WAY more expensive, you have absolutely no insight into the resource performance that this would require and are just making baseless assumptions without any data to back up your claims.
200+ Player servers have a lot more to worry about than the part count in R15 characters, such as networking, load balancing, humanoids are extremely inefficient as it is and you’re concerned about the part count?
So arguing hypothetical scenarios, the only bias I see here is you.
Don’t assume something just because it does not fit your argument. My module, ClientCast, is a client-based solution to hitboxes, which is industry practice - all AAA titles calculate hitboxes on client and verify on the server, but due to the fact that Roblox has forced-ordered packets, this makes verifying hits from the client harder. Thus, I backtrack the animation of the player by the amount of time it took them to send the hit data to the server, and verify the ray from there.
a 2.5x increase is indeed a substantial increase, though I can understand why you could see my use of capitalizing “way” as excessive.
I’m aware I am scraping the bottom of the pan here (even though I still believe for these to be very valid & important arguments) - my main issue lies with stylistic design as mentioned above. R15 simply does not support the same capabilities, and you can see why on my main argument against R15 here (the post you’re debating aren’t even my main arguments):
Also, yet again, please stop forcing R15 onto everyone. R6 is as stated a stylistic choice, and some developers may not want the looks of R15; even if you can animate it in the same style, the body structural design are not the same no matter what arguments you bring about.
Theres custom mesh deformation R15 avatars with 0 seams.
Yet again, you did not read my post. Please read it thoroughly, I already mentioned mesh deformation and the fact that it is not feasible.
Edit: you edited your post just to add a community resource you made just now, and yet still haven’t replied to any of my points…
Here’s RETROSTUDIO, and a game inside of it that’s based off of 2013.
Not only could people use their games, it’s easier to animate with and it’s useful for classic games or cartoony games, here’s another example, for cartoony.
Plus this platform is known for Powering Imagination, meaning you can do whatever you imagine, as long as it follows the TOS, and is supported by roblox of course.
it looks like layered clothing is working more well with 2.0 and other types of avatar’s then rthro at the moment
because more joints = more work? isnt that just common sense
Also R15 has more joitns wdym
I’m not forcing anything onto anybody. I’m explaining that if you willingly choose to use outdated, deprecated, and inferior tech, then you’re not going to have access to the latest technology and you really don’t have a right to complain. It really is that simple.
Here, let me give you a simple solution :
Let people do whatever the hell they want.
There are still quite a number of popular R6 games, aren’t there? R6 is not “better” than R15, and neither is R15 “better” than R6. It’s like comparing apples to oranges. Sure, it has more joints, but it takes away the feeling of creativity to make unique poses, that can only be done using R6. This is not an “upgrade” from R15, it’s just a feature.
Let people do what they want, as long as it’s good. A well made R6 game will be way better than a poorly made R15 game. It’s a simple concept to grasp.
The game going for that 2013 look would really not benefit from 3d layered clothing, which wouldn’t have even been possible back then (on Roblox).
Maybe it’s just my poor interpretation skills, but that line just doesn’t make sense.
Ehhhhh… I don’t agree. The freedom of R15 animating actually makes high quality animations easier to make, as you don’t have to move limbs as much, because rotating will work most of the time.
Again, classic style games don’t need 3D layered clothing, it doesn’t fit in at all.
Why? Cartoony things look better with the higher amount of expressivity that R15 has. R6 just looks stiff, which isn’t super cartoony.
I can understand this argument, but I think the lack of support for R6 is because R6 is an outdated feature that lacks a lot of R15’s features (scaling, using animations with avatar customization, etc.) I think they are trying to push devs towards using the more expressive and feature-filled R15.
(Disclaimer)
I don’t hate R6 (I sometimes use it), but I do care for a balanced evolution of Roblox’s look (not bonkers like Rthro, but not as tame as R6.) If you want to use it, that’s ok, It has a unique look that R15 can struggle with. And I know how much it sucks losing out on new features because of using an older things. I mean, the permament shutdown of the LBP PS3 servers (I only have a PS3) was announced on my birthday, and I loved LBP a lot.
…And yet again, you offer no solutions for my issues, forcing me to use said “outdated tech.” I don’t see how this is my problem.
I see too many uses and possibilities. I don’t understand why some people think that “people will use it just to troll in cafes”. cafes or restaurants are not even the 1% of the Roblox games or that roblox needs to be a “blocky game”. We had enough time to land the idea of getting more human and customizable characters since the anthro feature. And it’s so cool and a little hard to work on your own inner cage, custom bones, etc.
I think that maybe someone should port every R6 animation to R15 (it would look like the cartoonish animation pack). And that would solve the R6 compatibility for now (idk)
I’m currently making my own clothes.
I love this feature
https://gyazo.com/1bd3ba50fefc6eb3a653949c001bf6c6
Just have some problems fitting the outer cage with the edges of my shirt
This is my code to test my clothes
local lcUtils = require(workspace:WaitForChild("LayeredClothingUtilsScript"))
local part = script.Parent
local WrapLayer = nil
for _, v in pairs (script.Parent:GetDescendants()) do
if v:IsA("WrapLayer") then
WrapLayer = v
end
end
local Handle= WrapLayer.Parent
local clon =Handle:Clone()
for _, v in pairs (clon:GetChildren()) do
if not (v:IsA("Attachment") or v:IsA("WrapLayer") or v:IsA("SurfaceAppearance") ) then
v:Destroy()
end
if v:IsA("Attachment") then
v.Name ..= "Attachment"
end
end
local accesorio = Instance.new("Accessory")
clon.Parent = accesorio
clon.Name = "Handle"
clon.Anchored = false
accesorio.Name = Handle.Name
local function onPartTouched(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local no_tiene = character:FindFirstChild(accesorio.Name) == nil
if not bIsColliding then
if humanoid and otherPart == character.PrimaryPart then
if no_tiene then
local clon_Accesorio = accesorio:Clone()
humanoid:AddAccessory(clon_Accesorio)
bIsColliding = true
end--si no tiene
end
end
end
local function onPartTouchEnded(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid and otherPart == character.PrimaryPart then
bIsColliding = false
end
end
part.TouchEnded:Connect(onPartTouchEnded)
part.Touched:Connect(onPartTouched)
Only 4 days slow to find this! I’m getting faster!
OK, I have many, many questions:
- I see a lot of talk about R6 and R15. How about S1 and S15 and, in my case S-something else? Do clothes have to be weighted to the armature in order to be compatible with skinned mesh avatars? If so, what is the benefit of layered clothing? If this update provides wrap technology that does not need to be skinned in blender… (see #2)
- This post: R15 avatar with skinned clothing. 3D Layered Clothing is Now Available! - #114 by SillyMeTimbers Does this depreciate the value of the “still no real tutorial” S15 when all you need is a jacket to hide arm seams?
- Is this the “tool update” that skinned meshes have been waiting for? Will it be possible to attach a tool to a skinned mesh without all the coding and skinning mess we go through now? (there is strong coincidental evidence this is true, see #4)
- I see the flicker glitch with skinned meshes is gone again. Was that part of this update? Is the fix here to stay? Thanks BTW!
- I suppose some of the prior answers may answer this: Is this update generic enough that a non humanoid could have layered clothing? (example: a saddle that works on both a horse and a giraffe)
I can already tell people will find weird little bugs with this… Other than that it’s cool.
I’m not good at modeling clothes. So I made some code to help my friend to help her test her clothes and here is an example
local module = {}
--[[
local a = require(game.ServerStorage.Importar)
a.cosas()
]]
local Attachements_nombres = {
"FaceCenter",
"FaceFront",
"Hat",
"Hair",
"LeftGrip",
"LeftShoulder",
"LeftCollar",
"RightGrip",
"RightShoulder",
"RightCollar",
"Neck",
"BodyBack",
"BodyFront",
"WaistFront",
"WaistCenter",
"WaistBack",
"LeftFoot",
"RightFoot"
}
local Genera_Accesorio= function(Handle, WrapLayer, Attachment, generar_cosa)
Handle = Handle:Clone()
WrapLayer = WrapLayer:Clone()
Attachment = Attachment:Clone()
local Accesorio = Instance.new("Accessory")
Accesorio.Name = WrapLayer.Name
Handle.Name = "Handle"
Handle.Anchored = true
Handle.Parent = Accesorio
Attachment.Parent = Handle
local Motor6D = Handle:FindFirstChildOfClass("Motor6D")
if Motor6D then
Motor6D:Destroy()
end
Handle.Position = Handle.Position + Vector3.new(0, Handle.Size.Y + Handle.Size.Y/2, 0 )
Accesorio.Parent = game.Workspace
local TouchTransmitter = Handle:FindFirstChildOfClass("TouchTransmitter")
if TouchTransmitter then
TouchTransmitter:Destroy()
end
if generar_cosa then
local clon = game.ServerStorage.CustomClothing:Clone()
clon.Name = "Collider_".. WrapLayer.Name
local Remplazar = clon:WaitForChild("Remplazar")
local pos_original = Handle.Position
Handle.Name = WrapLayer.Name
Handle.CFrame = Remplazar.CFrame
Handle.Parent = clon
Accesorio:Destroy()
Remplazar:Destroy()
local clon_thumbnail = game.ServerStorage.Thumbnail:Clone()
clon_thumbnail.Parent = Handle
-- local surfaceApparence = game.ServerStorage.SurfaceAppearance:Clone()
-- surfaceApparence.Parent = Handle
local clon_Hover = game.ServerStorage.HoverScript:Clone()
clon_Hover.Parent = Handle
clon_Hover.Disabled = false
local ApplyCustom = clon:WaitForChild("ApplyCustom")
local model_mover = Instance.new("Model")
clon.Parent = model_mover
model_mover.Parent = game.Workspace
model_mover.PrimaryPart = clon
model_mover:MoveTo(pos_original)
clon.Parent = game.Workspace
model_mover:Destroy()
print(clon.Parent.Parent)
ApplyCustom.Disabled = false
end
game.ChangeHistoryService:SetWaypoint ( "Insertado Layered clothing: ".. WrapLayer.Name )
return Accesorio
end
module.cosas = function(generar_cosa)
local selection = game.Selection:Get()
local encontro_minimo_uno = false
local objetos_generados = {}
for _, v in pairs (selection) do
if v:IsA("Model") then
local InitialPoses = v:FindFirstChild("IntiailPoses")
local RootPart = v:FindFirstChild("RootPart")
local AnimationController = v:FindFirstChild("AnimationController")
local WrapLayer
local Motor6D
local Attachment
---revisa cosas básicas
for _, cosa in pairs (v:GetDescendants()) do
if cosa:IsA("WrapLayer") then
WrapLayer = cosa
elseif cosa:IsA("Motor6D") then
Motor6D = cosa
end
end
if RootPart~=nil then
Attachment = RootPart:FindFirstChildOfClass("Attachment")
if table.find(Attachements_nombres, Attachment.Name) ~=nil then
else
Attachment = nil --lo cancela
warn("No coincide el nombre del attachement")
end
end
if WrapLayer and Motor6D and Attachment then
encontro_minimo_uno = true
local handle = WrapLayer.Parent
local accesorio_creado = Genera_Accesorio(handle, WrapLayer, Attachment, generar_cosa)
table.insert(objetos_generados, accesorio_creado)
else
print("no es un objeto valido")
end---es valido o no
end--ifs
end
if not encontro_minimo_uno then
warn("No haz seleccionado ningún objeto valido")
else
game.TestService:Message("Generó objeto/s")
game.Selection:Set(objetos_generados)
end
end
return module