Creating a Giant Head with Accessories

development
studio
scripting

#1

I’m attempting to create a script which loads a player’s appearance and creates a giant head with accessories applied. How do I go about creating an anchored part containing the head mesh, face, and the player’s head accessories welded to it, scaled up 16×?

I could load the appearance on to a blank NPC and clone the head and accessories into workspace, then update the CFrames of the accessories when the head CFrame updates, but I’d ideally like to not need an NPC to generate the head and apply the scales, and I’d like to use weld constraints if possible, but welds don’t seem to move the welded parts when the primary part moves if all parts are anchored


#2

There is a value located inside of a users humanoid called “HeadScale”

Modify that and watch the magic happen!


#3

I’m not great at explaining, but I’m trying to create just a head from a new part instance, without needing to use a premade NPC containing a humanoid, with a player’s accessories attached and scaled up 16 times, all welded together, so that I can move the head part and the accessories will remain welded in place. Obviously I can’t use a weld to join anchored parts together, but I’m struggling with trying to create a head, attach the accessories at the correct point, and scale them up, without requiring the use of a temporary character model.


#4

So a custom head that is larger that will then be applied to the user?


#7

No, the head will be a standalone model. It will not be used on a character whatsoever


#8

Oh, now that is much more simple than I thought.


#9

I’ve made a script which makes the head and accessories a model, at this point you can resize everything respectively. Hope this helped a little- if you have any more questions just ask.

local Head = Character:FindFirstChild("Head") -- head of character
local NewHead = Instance.new("Model") -- where the big head will go
NewHead.Parent = workspace -- where the model of the big head will go
NewHead.Name = Character.Name -- the name of the big head will correspond with the character

-- Get the head duplicated
local copyHead = Head:Clone()
copyHead.Anchored = true
copyHead.Parent = NewHead

-- Get the accessories of the character and copy them over.
for i,v in pairs (Head.Parent:GetChildren()) do
    if v:IsA("Accessory") then
        local Hat = v:FindFirstChild("Handle").Clone()
        Hat.Anchored = true
        Hat.Locked = false
        Hat.Parent = NewHead -- put it in the new head
        for i,v in pairs(Hat:GetChildren()) do
            if not v:IsA("SpecialMesh") then
                v:remove() -- lets get rid of everything else in that yucky part
            end
        end
    end
end

#10

the thing is I’m trying to build a head with accessories without the need to clone it from a character. I’m grabbing the accessories, head mesh, and face from the Players:GetCharacterAppearanceAsync method, but the trouble I’m having is scaling it all up, positioning the accessories in the right place, and welding it all to the anchored part containing the head mesh and face decal


#11

Well, I ended up using a dummy from the animation editor’s rig builder, parented to the module, and cloning it in the Module.new function. The dummy is parented to workspace briefly while the accessories are applied, then moved back to nil. The head is then cloned to a new model, along with the accessories handle parts, and the CFrames are updated via the head part’s :GetPropertyChangedSignal 'CFrame' event. Character appearances are cached temporarily, due to API limits


#12

You dont’t have to update each accessory separately. Literally just set the head as the models primary part and move the whole model using :SetPrimaryPartCFrame().


#13

I was not aware of this function of models. thanks


#14

#15