Как создать облако Оорта в Roblox Studio! | RS
Game Tutorials
0:00 / 0:00
Как создать облако Оорта в Roblox Studio! | RS
682 просмотра · 1 день назад
Game Tutorials
2,15 тыс. подписчиков
682 просмотра · 1 день назад
Извините за недельную задержку
Вот скрипт:
-- Конфигурация
local CENTER_POSITION = Vector3.new(0, 0, 0) -- Центр вашей солнечной системы
local INNER_RADIUS = 400 -- Начало облака
local OUTER_RADIUS = 1000 -- Конец облака
local PART_COUNT = 50000 -- Общее количество космических объектов
local PART_SIZE = Vector3.new(4, 4, 4) -- Размер каждого астероида
-- Создание папки для поддержания чистоты рабочего пространства
local cloudFolder = Instance.new("Folder")
cloudFolder.Name = "OortCloud"
cloudFolder.Parent = workspace
local random = Random.new()
for i = 1, PART_COUNT do
-- 1. Получение случайного расстояния между внутренней и внешней границей
local radius = random:NextNumber(INNER_RADIUS, OUTER_RADIUS)
-- 2. Равномерное распределение точек по поверхности сферы
local u = random:NextNumber(0, 1)
local v = random:NextNumber(0, 1)
local theta = u * 2 * math.pi
local phi = math.acos(2 * v - 1)
-- 3. Преобразование сферических координат в трехмерные декартовы координаты (X, Y, Z)
local x = radius * math.sin(phi) * math.cos(theta)
local y = radius * math.sin(phi) * math.sin(theta)
local z = radius * math.cos(phi)
-- 4. Создание физической части
local asteroid = Instance.new("Part")
asteroid.Size = PART_SIZE
asteroid.Position = CENTER_POSITION + Vector3.new(x, y, z)
-- Настройка внешнего вида и производительности
asteroid.Material = Enum.Material.Glacier
asteroid.Color = Color3.fromRGB(175, 221, 255)
asteroid.Anchored = true
asteroid.CanCollide = false
asteroid.CastShadow = false -- Экономия производительности для тысяч деталей
asteroid.Parent = cloudFolder
-- Периодически приостанавливаем выполнение, чтобы предотвратить зависание Studio во время загрузки
if i % 200 == 0 then
task.wait()
end
end
И это всё, вы в курсе.