Got some samples, threw them together to see what I could do.
This is the end result: a ~25 second loop that I may or may not use for Sound Volblox.
Made the framework and first spell for my game.
https://drive.google.com/file/d/0B3bxcFuJokkbWW9JOVplaTRibVE/view
Draw.io and flowcharts are pretty neat too.
Made is a little under 2 hours. Just meant to be simple.
Also with the AK, the scene is 5,443 polygons, the droid is pretty light weight in poly.
No more M’lady La Fox?
Fox? When did I model a Fox? foxes don’t have a shark tail. And yeah, no more of her until she’s textured. And then I post more of her… Soo much more… Animated posts of course.
First picture reminds me of cache from CS, not sure why
Often times we’re unsure of what it is
Imagination, creativity, use it. Anything can be an attack helicopter of you want it to be.
but not everything can be food if I want it to be :c
I will forever imagine that my 2 number forty five nines exist with my large soda and extra dip.
Okay let’s get back on rail.
Super quick render, messing around in Cycles.
And in case anyone is roundering how I got the orange glow on the edges,
I was also trying to mimic the sun in the right window, didnt go as planned but hey… I got something nice out of it.
Oooooooh!!! Getting closer to something I like! @maplestick is there any way to get the volume of a material to glow? (see image above, using volume and not surface)
A continuation from my new movement system before-
Now featuring fall damage (woo!) (and you can also hear the custom footsteps too!)
If you take a small fall you will automatically crouch, but if the fall is bigger you will be knocked off your feet into the crawling stance and it will make a big noise depending on what you landed on. If you happen to die as a result, your camera will glue to your ragdoll’s head and the ragdoll will also make noise if it projectiles off of another cliff onto the floor below that.
(I came across a funny bug whilst testing too where it made too many ragdolls…)
Looks like the Neighbourhood logo for the album ‘Wiped Out’
huh. I guess that circle tool for terrain is pretty handy.
(This looks awesome!)
creating id masks and adding blur in compositing should do it.
I needed a script to run whenever I opened a specific place, so I made a plugin that searches the game tree for a module named “init_plugin”, and runs it.
The module can return either a function, which is called immediately, or a table containing Start and Stop functions. Start is called immediately, and Stop is called before the module is reloaded, giving it a chance to clean itself up. Very handy for quickly changing parameters, or developing the script iteratively.
-- InitPlugin.lua
local toolbar = plugin:CreateToolbar("init")
local button = toolbar:CreateButton("Reload", "Reload initializer", "")
local moduleName = "init_plugin"
local init
local initModule
local reloading = false
local function ReloadInit()
if reloading then
return
end
reloading = true
if type(init) == "table" and type(init.Stop) == "function" then
local ok, err = pcall(init.Stop, plugin)
if not ok then
warn(string.format("%s.Stop: %s", moduleName, err))
end
end
if typeof(initModule) == "Instance" then
initModule:Destroy()
initModule = nil
end
do
local module = game:FindFirstChild(moduleName, true)
if not module then
reloading = false
return
end
initModule = module:Clone()
initModule.Name = moduleName .. "_working"
initModule.Parent = game:GetService("CoreGui")
initModule.Archivable = false
end
local ok, result = pcall(require, initModule, plugin)
if not ok then
reloading = false
error(string.format("failed to run %s: %s", moduleName, result), 0)
end
init = result
if type(init) == "table" then
if type(init.Start) == "function" then
local ok, err = pcall(init.Start, plugin)
if not ok then
reloading = false
error(string.format("%s.Start: %s", moduleName, err))
end
end
elseif type(init) == "function" then
local ok, err = pcall(init, plugin)
if not ok then
reloading = false
error(string.format("%s: %s", moduleName, err))
end
end
reloading = false
end
button.Click:Connect(ReloadInit)
ReloadInit()
Here’s the script I needed it for. The short description is that it draws a huge grid.
local main = {}
local PLANE = 4000
local PLANE_STEP = PLANE/4
local DEPTH = 10000
local DEPTH_STEP = {200,1000,6000}
local POINT_SIZE = 3
local POINT_STUD_SIZE = 4
local CORNER = {
{Vector3.new(0,0,0), Color3.new(0,1,0)},
{Vector3.new(1,0,0), Color3.new(1,0,0)},
{Vector3.new(1,0,1), Color3.new(1,1,1)},
{Vector3.new(0,0,1), Color3.new(0,0,1)},
}
local function getColor(x,y,z)
local c = Vector3.new()
local p = Vector3.new(x,0,z)
for _,corner in pairs(CORNER) do
local d = (1-(corner[1]-p).magnitude)/(math.sqrt(2)*0.5)
c = c + Vector3.new(
corner[2].r*d,
corner[2].g*d,
corner[2].b*d
)
end
c = c*(y*0.8+0.2)
return Color3.new(c.x,c.y,c.z)
end
local Step = game:GetService("RunService").Heartbeat
local grid
function main.Start()
wait(0.25)
grid = Instance.new("Folder")
grid.Name = "Grid"
grid.Archivable = false
grid.Parent = game:GetService("CoreGui")
local line = Instance.new("LineHandleAdornment")
line.Color3 = Color3.new(0.3125,0.3125,0.3125)
line.Thickness = 1
local lines = Instance.new("Folder")
lines.Name = "Lines"
lines.Parent = grid
for x = 0,PLANE,PLANE_STEP do
for z = 0,PLANE,PLANE_STEP do
local l = line:Clone()
l.Name = string.format("P_%05d_0%05d",x,z)
l.Length = DEPTH
l.CFrame = CFrame.new(x,0,z)*CFrame.Angles(-math.pi/2,0,0)
l.Adornee = workspace.Terrain
l.Parent = lines
end
end
local planes = Instance.new("Folder")
planes.Name = "Planes"
lines.Parent = grid
local depth = Instance.new("Part")
depth.Name = "Depth"
depth.Anchored = true
depth.CanCollide = false
depth.Locked = true
local point = Instance.new("BillboardGui")
point.AlwaysOnTop = true
point.LightInfluence = 0
point.Size = UDim2.new(1,0,1,0)
local abs = Instance.new("Frame", point)
abs.Name = "Absolute"
abs.AnchorPoint = Vector2.new(0.5,0.5)
abs.BackgroundColor3 = Color3.new(1,1,1)
abs.BorderColor3 = line.Color3
abs.BorderSizePixel = 1
abs.Position = UDim2.new(0.5,1,0.5,1)
abs.Size = UDim2.new(0,POINT_SIZE,0,POINT_SIZE)
local rel = Instance.new("Frame", point)
rel.Name = "Relative"
rel.AnchorPoint = Vector2.new(0.5,0.5)
rel.BackgroundColor3 = Color3.new(1,1,1)
rel.BorderColor3 = line.Color3
rel.BorderSizePixel = 0
rel.Position = UDim2.new(0.5,1,0.5,1)
rel.Size = UDim2.new(POINT_STUD_SIZE,-2,POINT_STUD_SIZE,-2)
local function draw(y)
local d = depth:Clone()
d.Archivable = false
d.Name = string.format("Depth_%05d", y)
d.CFrame = CFrame.new(0,-y,0)
d.Parent = grid
local ps = Instance.new("Folder")
ps.Name = "Points"
ps.Parent = d
local ls = Instance.new("Folder")
ls.Name = "Lines"
ls.Parent = d
for i = 0,PLANE,PLANE_STEP do
local l = line:Clone()
l.Length = PLANE
l.Adornee = d
l.Name = string.format("L_X_%05d",i)
l.CFrame = CFrame.new(i,0,0)*CFrame.Angles(0,math.pi,0)
l.Parent = ls
l = l:Clone()
l.Name = string.format("L_Z_%05d",i)
l.CFrame = CFrame.new(0,0,i)*CFrame.Angles(0,-math.pi/2,0)
l.Parent = ls
end
for x = 0,PLANE,PLANE_STEP do
for z = 0,PLANE,PLANE_STEP do
local p = point:Clone()
p.Name = string.format("P_%05d_0%05d",x,z)
p.StudsOffsetWorldSpace = Vector3.new(x,0,z)
local c = getColor(x/PLANE,1-y/DEPTH,z/PLANE)
p.Absolute.BackgroundColor3 = c
p.Relative.BackgroundColor3 = c
p.Adornee = d
p.Parent = ps
end
end
Step:Wait()
end
if type(DEPTH_STEP) == "table" then
draw(0)
for _, y in pairs(DEPTH_STEP) do
draw(y)
end
draw(DEPTH)
else
local y = 0
while y <= DEPTH do
draw(y)
y = y + DEPTH_STEP
end
end
end
function main.Stop()
if grid then
grid:Destroy()
end
end
return main