Идея не такая сложная, больше всего беспокоит построение квадратов для маневра боевой единицы, может у кого то были идеи или наработки?
На конкурс начинал пилить пошаговую головоломку с движением "по клеточкам". Игровое поле представлял в виде эдакого простейшего графа. Юниты могли передвигаться только между узлами графа, имеющими связь друг с другом, то есть только вдоль рёбер.
Собственно, если мы знаем в каком узле находится условный герой, то нам легко узнать какие узлы доступны ему для перемещения.
Не знаю как конкретно для шахмат, но, наверное, это типичное решение для подобных задач.
Ну приоритет не глобальный, это именно внутри одной модели порядок геосетов в бленд моде раскидать. Тестил когда-то, вроде работало так, как ожидается.
Priority Plane – Alpha-queued geosets can be made to draw in a specific order with relation to each other in the same model. The lower the value is, the sooner it is rendered. Values between -20 and 20 are regularly used.
Jack-of-shadow, про мдлвис ничего не могу сказать (скрин пеона сделан в ретере после включения Wrap Width/Wrap Height), но в развётке видно, что художник перебрал и слишком уверенно на край залез, так как небольшой сдвиг верхний вершин вниз убирает шов.
Да, шов приходит с другого края, ибо при включённом Wrap UV текстура обёртывается вокруг меша. А при отключённом шва не видно из-за того, что в варкрафте край текстуры растянётся, чтобы закрыть пустоту под развёрткой.
Вот в Maya постое отключение WrapUV не вылечивает шов полностью, так как там шов просто окажется прозрачным. Ну, по крайней мере, у меня так с пеоном вышло.
Но могу сказать, что по ощущениям, майа апи это какая-то прям уродская штука (возможно, так кажется после некоторого знакомства с апи блендера, которое более интуитивное что ли).
WellDoneTrooper, есть еще маловероятный вариант - поиграть с настройками графики, поставить высокие-средние-низкие и потестить, мб что-то влияет. Как моделек, так и текстурок
На дореф патчах настройки детализации текстур нормально работают только с текстурами с длинами сторон, равными степени двойки. В вопросе 1920x1080...
загрузка UI теперь перемещена в main(), что позволяет избежать появления дефолт интерфейса на долю секунды после запуска карты. Inject main/config from WE trigger code
подкорректирован рандом, теперь одинаковые фигуры могут выпадать не более двух раз подряд.
Нужно просто создать война на позиции казармы, и отправить его в другую точку. И повторять это пока не надоест.
Есть два варианта решения задачи по перемещению юнита из одной точки в другую: отдать юниту стандартный приказ двигаться в точку, или же самостоятельно реализовать функцию перемещения юнита в нужную позицию. Примитивнейшая реализация может выглядеть так:
скриншотов нет
function playCinematic()
createBarracks()
SetSkyModel("environment\\sky\\lordaeronsummersky\\lordaeronsummersky")
local t = CreateTimer()
TimerStart(t, 2, false, function()
CinematicModeBJ(true, GetPlayersAll())
createFootmans()
CameraSetupApplyForPlayer(true, gg_cam_Camera_002, Player(0), 0)
CameraSetupApplyForPlayer(true, gg_cam_Camera_003, Player(0), 15)
DestroyTimer(t)
end)
end
function createBarracks()
--если бараки уже стоят, то эта функция не нужна
local barracks = CreateUnit(Player(0), FourCC('hfoo'), 0, 0, bj_UNIT_FACING)
BlzSetUnitSkin(barracks, FourCC('hbar'))
SetUnitScale(barracks, 2, 2, 2)
SetUnitFacing(barracks, 300)
SetUnitAnimation(barracks, "stand work")
end
function createFootmans()
--здесь работаем с пехотинцами
local function createFootman()
--с каждым вызовом этой функции мы создаём нового пехотинца внутри казармы
--включаем для него проигрывание анимации
--и создаём таймер, в котором меняем его положение на карте
local f = CreateUnit(Player(0), FourCC('hfoo'), 0, 0, -90)
SetUnitPathing(f, false)
SetUnitAnimationByIndex(f, 26)
local x = GetUnitX(f)
local tFootman = CreateTimer()
TimerStart(tFootman, 0.015, true, function()
local y = GetUnitY(f)
if y < -3000 then
--при достижении крайней точки удаляем футмана
RemoveUnit(f)
DestroyTimer(tFootman)
return
end
SetUnitPosition(f, x, y - 1.5)
end)
end
createFootman()
local t = CreateTimer()
TimerStart(t, 1.5, true, function()
createFootman()
end)
end
Отредактирован Makeba
» Прочее / Сэмми Дидье вкатился в Stormgate
» WarCraft 3 / Проблема с ACac
» Прочее / Первый взгляд на редактор кастомок Stormgate
» WarCraft 3 / Оседлать
» Castle Revival / Главная страница
» Game Dev / Создание второстепенных персонажей и их влияние на игровой мир
» Блог Storm'а / Суицидальная атака на Maya API
» WarCraft 3 / Можно ли как-то проверить расу юнита?
» Game Dev / Lumalabs.ai - текст в 3D
» WarCraft 3 / Шахматы варкрафт 3
Не знаю как конкретно для шахмат, но, наверное, это типичное решение для подобных задач.
» WarCraft 3 / Шахматы варкрафт 3
» Блог Storm'а / Суицидальная атака на Maya API
» Classic Asset Kit Extention / Мастерская
Отредактирован Makeba
» Classic Asset Kit Extention / Мастерская
» WarCraft 3 / RMS Twilac Edition
Отредактирован Makeba
» WarCraft 3 / RMS Twilac Edition
» WarCraft 3 / Избавляемся от швов
» Блог Storm'а / Суицидальная атака на Maya API
Отредактирован Makeba
» WarCraft 3 / Избавляемся от швов
» Блог Storm'а / Суицидальная атака на Maya API
» WarCraft 3 / Белый экран вместо изображения загрузки
» WarCraft 3 / FRAMETRIS (тетрис на фреймах)
» WarCraft 3 / Как сделать чтоб из казармы выходили воины во время кат сцены
Есть два варианта решения задачи по перемещению юнита из одной точки в другую: отдать юниту стандартный приказ двигаться в точку, или же самостоятельно реализовать функцию перемещения юнита в нужную позицию. Примитивнейшая реализация может выглядеть так:
» WarCraft 3 / Про ландшафт
» WarCraft 3 / Проблемы с экспортом из Блендера в Варкрафт