Как стать автором
Обновить

Комментарии 17

Игрушка очень прикольная.
Можно ссылку на скачивание?
Меня ролик тоже порадовал. Такой он сочный, ух! Но игра не моя (эта статья — перевод), и вроде бы игра ещё не вышла. Могу только предложить следить за автором: preshing.com
раскажите как вы двигали в движке скелет? Просто подменяли один меш позы на другой?
«Мопед не мой...»

Двигал не я, двигал автор статьи и движка: Джефф Прешинг (см. коммент выше). Думаю, можно задать ему этот вопрос в твиттере. Если смущает языковой барьер — готов помочь.

Но я не совсем понимаю, что вы имеете в виду под «подменой одного меша позы на другой», можете пояснить?
Извините, не заметил перевод.
Когда вы в Blender или Unity двигаете скелет, движок сам деформирует мэш, привязанный к скелету, на основании весов каждого вертекса. Таким образом, анимация — это 1 исходный меш, и траектории движения костей.
В простых «велосипедных» движках, что б помахать рукой модели, например, приходится экспортировать из 3D редактора все кадры движения руки в отдельные obj, и проигрывать «покадрово», что довольно затратно.
Наверно написал модуль (функция), который запускает заранее подготовленные анимации скелета.
Дважды подумайте, прежде чем слишком обобщать
Золотые слова.

Я порой вижу как, особенно молодые разработчики, пытаются применить какие-то интерфейсы, паттерны везде где можно, обьясняя это тем что «ну если делать, то сразу как следует».
Но всегда нужно сопоставлять теорию с реальностью. А реальность такова, что этот интерфейс будет иметь один метод, и использоваться между компонентами над которыми работает один и тот же человек.
Нужно всегда себя спрашивать как это поможет тебе в ежедневной работе. Что это упростит?
Если ничего, то это слепая жертва моде.
Вот я пришу тесты на page object паттерне. Там все плоскенько и туповатенько. Недавно я подумал, а что если сделать все еще ооп-шнее, с абстрактными базовыми классами и пр. Попробовал, работает, выглядит ооп-шно, ничерта не понятно стало, простота для стороннего читателя снизилась до нуля. Вовремя остановился.
Не надо стесняться выглядеть не-круто. Я думаю хорошие решения они всегда компромиссные. Они никогда не идеальные, но в них есть равновесие Нэша, когда любое стремление в сторону что-то ухудшит.

Т.е вот тут:

надо понимать, что улучшение это два колеса, а не кародж (см. Специалист по этике. Гарри Гаррисон),
которым другие просто не смогут эффективно пользоваться.

Картинка ваша вообще не к месту.
1) Чтобы поменять колеса нужно остановиться.
2) 1 меняет, 2 поднимают. Хватит сил поднять 2м?
3) Можно выложить камни. А если порядок важен? Кто будет запоминать его?
4) Чувак с колесами проверил, что они подойдут?
5) Впереди нет горы, с которой с колесами может скатиться?
6) Колеса не увязнут в грязи?

да, я подозревал, что эта картинка уже настолько заезжена, что трудно будет воспринимать ее под другим углом. Я имел ввиду «good enough solution». Не переусердствовать с улучшением, вовремя остановиться. Улучшать только то, что нужно улучшить.
А ваши замечания по классической ее интерпретации очень удачны. Это тоже проблема, даже более серьезная, отдельно взятое рацпредложение может оказаться не к месту.
Создавать свои движки конечно круто и интересно. Но вот я лично просто не потяну, мозгов тупо не хватит, плюс не очень хорошее знание С++. Да и зачем свой движок создавать, сейчас уже 2018, а не 2000 год, лучше взять готовый, и модернизировать под свой проект.
Ну а так, лично я ковыряю XRay С.Т.А.Л.К.Е.Р. движок несколько устарел, но зато я его освоил вне которой степени. Ещё можно взять CRYENGINE, Unity, Unreal и т.д. У каждого есть свои достоинства и недостатки, хотя я по прежнему буду ковырять XRay как хорошо освоенный. Хотя тут про мобильную платформу, не знаю, может тут и есть смысл что своё замутить.
зачем свой движок создавать
я лично просто не потяну, мозгов тупо не хватит, плюс не очень хорошее знание С++
Затем, чтобы мозгов начало хватать и лучше знать С++. Это поможет потом ковырять другие движки.
«Зачем свой движок создавать» автор в статье неплохо описывает. Попробую провести аналогию с пищей: можно сходить поужинать в ресторан, а можно пойти в магазин за продуктами и приготовить самому. И там и там свои плюсы и минусы. (Ну вот люблю я готовить, потому что можно сделать именно так, как мне нравится, а не как шеф решил! Даже если часть любимых рецептов я пока не освоил.) А есть ещё люди, которые в деревне живут своим хозяйством: курицы, коровы, огород, вот это вот всё. Так что тут тоже много уровней абстракции. И если бы отдельный человек всю жизнь был ограничен только одним из вариантов — было бы очень неприятно.

Что касается личных возможностей — на мой взгляд, единственный ограничитель — это время. Автор статьи в комментариях признаётся, что это не первая его попытка написать движок (а ещё, что он уже 14 лет в индустрии). Очень часто «не хватает мозгов» на самом деле означает «не хватает терпения разобраться, изучить, научиться».

На С++ свет клином тоже не сошёлся, кстати.

И совершенно верно про «достоинства и недостатки». Общее место, но, видимо, ещё актуально повторять: не практично заявлять «лучше делать так» или «лучше делать эдак». Есть определённые цели, есть определённые проблемы, есть условия работы. Исходя из них надо выбирать наиболее подходящие инструменты. Не потому что «этот движок круче» или «моднее» или «может X». А потому что «из всех известных альтернатив он лучше всего подходит для решения моей задачи». И в таком случае может оказаться, что написание собственного движка — действительно наиболее подходящий вариант.

Впрочем, я бы точно не советовал заниматься движкостроением начинающим. Лучше, КМК, действительно изучить чью-то чужую работу, чтобы не тратить время (главный ограничитель!) на изобретение велосипедов.
Демо в ролике приятное и интригующее, но первый вопрос — тоже самое сложно ли организовать на другом (готовом) движке?
НЛО прилетело и опубликовало эту надпись здесь
Это моя недоработка как переводчика :)

Как-то не удалось найти или придумать адекватный перевод «риггингу», то есть привязке скелета к 3D-модели: www.mir3d.ru/learning/930

С радостью приму более грамотные варианты перевода фразы «This was the first rigged 3D human I ever created». Что-нибудь вроде «Это был первый созданный мной трёхмерный человек, для которого я выполнил риггинг (привязку скелета к модели?)», может быть?
НЛО прилетело и опубликовало эту надпись здесь
Ригидность — это уже из области психологии или физиологии.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории