How do I make smooth eye blinking systems?

I have looked everywhere! Google, Youtube, and the DevForum, but none of them had any topics of that.

I’ve seen in recent games there are super smooth blinking systems, and I want to try it too, but there’s a problem: I can’t make it smooth.

I kept on trying to make 3 images for the blinking system:

  1. Full Eyes
  2. Half Eyes
  3. No Eyes (or some eyelids)

Please help!

6 Likes

If you have 3 images, you can’t really tween between them. My best suggestion would be to use a part system, or you could make a lot of images and cycle through them with a for loop.

4 Likes

Pretty sure those games use the new dynamic heads or they just use a lot of images then go between each one of them as frames. You could try to make the eyes slightly transparent during the animation with tweenservice and check if it works for you.

3 Likes
3 Likes

POV: your not gonna spend 2000 robux on eyes so you want to improvise

please man, i’m doing a customization system too so i want the eyes to be changed, and theres gonna be multiple eyes, like 50 of them. i dont want to spend 100000 robux. even though ur idea is very helpful. for a pair of eyes 2000 is too much.

3 Likes

just make a few decals and write a script to cycle through them

I’d try having 2 textures, eyes and eyelids. I’d make an invisible clone of the head with the eyelids texture that’s weld slightly offset forward so that the texture is on top any texture the original head has. I’d animate or tween the weld of the invisible head afterwards. Probably not the most elegant way to do this, but I think its relatively simple to do and achieve.

Alternatively, you can maybe try a spritesheet. There is likely another post that’d give good information on how to go about that.

1 Like

You can’t tween decals, you’d need to make multiple eye blinking images, one going from fully open eyes, slowly moving over to half eyes and then down to the eyelids.

Basically, draw a good amount of eyes then loop through them using a for loop.

1 Like

never said you could but you can a little with mine you can make one decal then tween it down (if the eye area has an indent of course)

id try something like this


local TweenService = game:GetService("TweenService")
local facedecal = workspace.Rig.Head.face

local decal_list = {"asset1","asset2","asset3","asset4","asset5","asset6"}

local BlinkInfo = TweenInfo.new(0.2,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,true)

local function blink()
	local NumVal = Instance.new("NumberValue")
	NumVal.Value = 1
	
	TweenService:Create(NumVal,BlinkInfo,{Value = #decal_list}):Play()
	
	NumVal:GetPropertyChangedSignal('Value'):Connect(function()
		facedecal.Texture = decal_list[math.round(NumVal.Value)]
	end)
end

code isnt neat, and probably isnt optimized but it should at least give you a nice start

3 Likes

My guy, I wasn’t speaking to you :skull:

yes, but i’d like the things that look like the smooth blinking system u see in some awesome roblox games

1 Like

then increase the amount of frames you have, meaning instead of 8 decals have 60 or even more. The smoother you want the blink, the more frames you are going to have to make. Quality comes with time and effort. Best of luck

2 Likes

60 decals for 1 eye? 60 * 50 is 30000 decals man, if i want 50 eyes i would need that much decals.

2 Likes

i did that, 3 decals isnt enough, but no way im making 60

1 Like

60 is overkill, 12 should be plenty

2 Likes

12 * 5 is 600. i can work with that! thanks

1 Like

back also bro what about my tweening idea >:(

tweening decals? yeah right lets see what u would tween. transparency? no doesnt look good like that

no position like put them on a part and move them up and re-sizing them with a tween