How to Create Space Effect On Player

Hello! While thinking of new projects to make I decided I want to recreate this bright pink space-looking texture that you see on the character below inside Roblox. I haven’t done any real work with making textures or modeling so my question is how would I achieve this effect and where would I begin. Im fine with learning how to use blender or anything else.




Any help is appreciated thanks!

1 Like

You could probably use Highlights to make that bright pink outline and pink inside, then particles to create the stars on the inside.

1 Like

UE4 Tutorial: Galaxy Skin (Fortnite) - YouTube heres the effect im trying to achieve but on unity any way to do this in roblox somehow?

Just like what @KdudeDev said, using highlights is the right thing to do. But in addition, you could try using surface appearances. You’re gonna have to find some yourself

However, it doesn’t seem possible to create the fortnite effect your looking for, yet.

When skyboxes and other lighting features work inside of viewport frames it will be very easy to achieve what you’re looking for. Simply render the character in a viewportframe, set it’s reflectance to 1, and give the viewport a custom skybox.

2 Likes

the closest you could get is by using a paralax system, it uses textures and can be changed to whatever texture you want, but the texture needs to be tileable

you’ll need a table like this:

parralax Config = {
		{
			AnimSpeed = (Vector3.new(1, 1, 0)) * 0.25,
			Brightness = (Vector3.one),
			BrightnessNoiseRange = {
				(ToVec(Color3.new(1, 1, 1))) * 0.25,
				(ToVec(Color3.new(1, 1, 1))) * 2
			},
			CameraDirection = (Vector3.one) * 0.4,
			FixedScale = (Vector3.one) * 2,
			LogScale = 0.01,
			TextureId = "", -- texture goes here
			Transparency = 0.5,
			TransparencyNoiseRange = {
				[1] = 0.5, 
				[2] = 1
			},
			ZIndex = 2
		},
	}

keep in mind that each one of these config tables is a different texture

then you’ll need a script that calls this chunk of code once with the data of the parralax,

local textureData = {}

if (ConfigData or whatever it is for you).parralax then
		for _, v663 in ipairs(v267.parralax) do
			local v666 = v663.CameraDirection or Vector3.new(0, 0, 0)
			local v667 = v663.AnimSpeed or Vector3.new(0, 0, 0)
			local v669 = v663.NoiseCameraRatio or 0
			local v671 = v663.BrightnessNoiseRange or { Vector3.new(0, 0, 0), Vector3.new(0, 0, 0) }
			local LinearSpeed = v663.LinearSpeed or Vector3.new(0.75, 0.75, 1)
			local v678 = v663.LogScale or 0.5

			v663.Color = v663.Color or Color3.new(1, 1, 1)
			local v688 = Vector3.new(v663.Color.R, v663.Color.G, v663.Color.B)
			v663.Brightness = v663.Brightness or Vector3.new(1, 1, 1)
			local v689 = Vector3.new(v663.Brightness.X, v663.Brightness.Y, v663.Brightness.Z)
			local v690 = v688 * v689

			local v697 = v663.Transparency or 0

			v663.FixedOffset = v663.FixedOffset or Vector3.new(math.random() * 2 - 1, math.random() * 2 - 1, 1)
			v663.FixedScale = v663.FixedScale or Vector3.new(2, 2, 1)

			if v271:GetAttribute("ApplyParralax") ~= false and not l__g__261 then
				if not textureData [v271] then
					textureData [v271] = {}
				end
				for _, v726 in ipairs(Enum.NormalId:GetEnumItems()) do
					local v728 = v1.Functions.FaceSize(v726, v271.Size)
					local v732 = Vector3.new(0, 0, 0) + v663.FixedOffset * v728
					local v1026 = v728 * v663.FixedScale

					local v736 = Instance.new("Texture")
					v736.Name = "Tex" .. v726.Name
					v736.Face = v726
					v736.Color3 = Color3.new(v690.X, v690.Y, v690.Z)
					v736.Transparency = v697
					v736.ZIndex = v663.ZIndex or 1
					v736.Texture = v663.TextureId or ""
					v736.OffsetStudsU = v732.X
					v736.OffsetStudsV = v732.Y
					v736.StudsPerTileU = v1026.X
					v736.StudsPerTileV = v1026.Y
					v736.Parent = v271

					table.insert(textureData [v271], {
						instance = v736,
						transparency = v697,
						brightness = v689,
						color = v688,
						face = v726,
						faceNormal = Vector3.FromNormalId(v726),
						fixedOffset = v663.FixedOffset,
						fixedScale = v663.FixedScale,
						linearSpeed = LinearSpeed,
						logScale = v678,
						nearPlaneZ = v663.NearPlaneZ or 15,
						cameraDirection = v666,
						animSpeed = v667,
						animPos = Vector3.new(0, 0, 0),
						tickColor = Vector3.new(1, 1, 1),
						noiseCameraRatio = v669,
						brightnessNoiseRange = v671,
						transparencyNoiseRange = v663.TransparencyNoiseRange,
						onexCameraFix = v267.huge and 6 or v267.big and 2 or 0.75
					})
				end
			end
		end
	end

then you’ll need this chunk to be called every heartbeat

function processParralax(p47, p48, p49, p50, p51) -- parralaxconfigtable#, parralaxconfigdata, tick, false, parttoapply it to


	local v1113 = p47.Size
	local v1115 = p51.CFrame
	for v1185, v1124 in ipairs(p48) do  
		local v1188 = v1124.instance
		local v1130 = v1124.fixedOffset
		local v1135 = v1.Functions.FaceSize(v1124.face, v1113) 
		local v1137 = ((workspace.CurrentCamera.CFrame:Inverse()) * v1115) * (v1124.faceNormal) * (v1113) * 0.5
		v1137 = (v1137) * v1124.linearSpeed
		v1137 = v1137 / (v1124.onexCameraFix*2) --/3--p47.--3
		local v1191 = 1 + (math.log10((-v1124.nearPlaneZ) / math.min(-0.1, v1137.Z))) * v1124.logScale
		local v1148 = Vector3.new(v1137.X, -v1137.Y, 0)
		local v1150 = v1124.animPos
		v1150 = v1150 + ((v1124.animSpeed) * v1148.Unit) * p49
		v1124.animPos = v1150
		local v1197 = (v1148) * v1124.cameraDirection
		local v1198 = Vector3.zero
		local v1204 = (v1197 + v1150) * v1191 - (v1135) * 0.5 + (v1130) * v1135
		local v1207 = ((v1135) * v1191) * v1124.fixedScale
		v1188.OffsetStudsU = v1204.X
		v1188.OffsetStudsV = v1204.Y
		v1188.StudsPerTileU = v1207.X
		v1188.StudsPerTileV = v1207.Y
		local v1217 = ((v1197) * v1124.noiseCameraRatio + v1150) * v1191 - (v1135) * 0.5 + (v1130) * v1135
		local v1218 = v1124.transparencyNoiseRange
		if v1218 then
			local v1220 = 1 - v1124.transparency
			v1188.Transparency = math.clamp(1 - v1.Functions.Lerp(v1218[1], v1218[2], (math.noise(v1217.X, v1217.Y, v1217.Z) + 1) * 0.5), 0, 1)
		end
		local brightnessNoiseRange = v1124.brightnessNoiseRange
		local brightness = Vector3.one
		if brightnessNoiseRange then
			brightness = v1124.brightness * brightnessNoiseRange[1]:Lerp(brightnessNoiseRange[2], (math.noise(-v1217.X, -v1217.Y, -v1217.Z) + 1) * 0.5)
		end 
		--local color = ((v1124.tickColor) * (v1124.color + v1124.brightness))
		local color = (v1124.tickColor * v1124.color) * brightness
		--color = color/2
		v1188.Color3 = Color3.new(color.X, color.Y, color.Z) 
	end
end 
1 Like