Render.ru

Maya C++

рико

Знаток
Рейтинг
47
#1
Всем привет.
Хочу научится писать на С++ для Маи.

Установил Визуал студио 2022 комюнити и настроил проект как показано в ролике на Ютюбе - "Maya API - TD Series How to set up Visual Studio 2022 to develop C++ plugins for Maya 2022"

Вот код из ролика:

#include <maya/MFnPlugin.h>
#include <maya/MGlobal.h>

MStatus initializePlugin(MObject obj)
{
const char pluginVendor = "Victor";
const char pluginVersion = "0.1";

MFnPlugin fnPlugin(obj, pluginVendor, pluginVersion);

MGlobal::displayInfo("Oki Doki!");

return (MS::kSuccess);
}
MStatus uninitializePlugin(MObject obj)
{
MGlobal::displayInfo("done!!!");

return (MS::kSuccess);
}

В видео все скомпилировалось и в маю плагин загрузился.Но у меня к сожалению этого не произошло.
Вот такие ошибки получаются:

C:\Program Files\Autodesk\Maya2022\devkit\include\maya\MTypes.h(575,10): fatal error C1083: Cannot open include file: 'sys/stat.h': No such file or directory

Смотрю в гугле что за /stat.h такой, оказавается он часть большой библиотеки glibc. Качаю с гитхаба этот самый glibc, прописываю в проекте путь к файлу stat.h. И чуда не произошло. Этот фаил он нашел но теперь не видит другой и третий и т,д. К каждому файалу путь прописывать?

В общем прошу помочь настроить правильно проект, что бы все необходимые файлы были найдены. Ну и чтоб все просто работало, ахах...
 
Г

Григорий Филипов

Guest
#2
Ох Рико... иди на автодеск. здесь даст бог раз в 2 месяца может Скиф чего-нибудь напишет.
А так здесь тебе ловить нечего.
У mGear ноды офигенские. И мне показалось что не все его ноды в графе показывают. Я смотрел, но так и не понял как IF FK рук работает. Коннект идет, ты крутишь - а она на месте стоит...
 

рико

Знаток
Рейтинг
47
#3
Таки получилось с Божьей помощью разобраться в проблеме которую я описывал выше и напиать свой(почти) плагин/ноду и подключить ее к Маи.

Дело было так:
Я скачал с ГитХаба winsdk-10-master. Там как раз находились недостоющие файлы.
Те файлы которые были нужны я скопировал вот сюда L:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\include

Далее была такая ошибка: LNK1104 cannot open file 'ucrtd.lib.

Этот фаи часть WindowsSDK 10 которая должена находиться в C:\Program Files, она создает папку как я понял \Windows Kits. У меня в Program Files, не х86!!! не было папки Lib\10.0.19041.0 и поэтому я скачал ее с офф сайта Майкрософт. Но когда установил WindowsSDK 10 у меня все равно не было нужных файлов по пути C:\Program Files\Windows Kits\10. Но как оказалось в
C:\Program Files (x86)\Windows Kits\10 нужные папки были и поэтому я скопировал папку Lib в
C:\Program Files\Windows Kits\10.

И после этого ошибок на отсутствие каких либо файлов небыло когда я собирал простые примеры из Maya DevKit.

Фухх, это было непросто. Пробовал скомпилировать плагин с помощью CMake, но не получилось.
Хоть с Визуал Студио и ставился CMake тулс, но по ошибкам было как будто этого симейка нет.
С этим я не стал разбираться так как получился предыдущий способ.

п.с. Еще я настроил Maya Environment как указано у них на сайте. Хотя возможно это требуется только для компиляции с помощью CMake.
п.п.с. И еще, DevKit я распаковал как у казано на сайте Аутодеск.

Ниже скриншеты что получилось.
Как основу я использовал ноду из примера arcLenNode. Немного лиш изменил cpp фаил.
Название HelloWorldCmd - это потому что у меня в плюсах так проект называется.
Screenshot 2022-09-30 135642.jpg
Screenshot 2022-09-30 135733.jpg
 

рико

Знаток
Рейтинг
47
#4
Если кому интересна тема написания нод/плагинов на C++ для Maya то я могу создать сдесь блог и делиться какимито наработками.
 
Г

Григорий Филипов

Guest
#5
пиши конечно.
А чем тебя не устроил питон? или на нем ноду не напишешь?
 
Г

Григорий Филипов

Guest
#6
У меня вот такой вопрос.
на что реагирует скорость эвалюации и кеширование? ладно mGear он сам по себе.
Но rapid modular например очень шустро работает, что интересно.
Берем что-то неподъемное, например, Метахюмана с лицом. И просто я руками приконстрейнил кости к этому модуляру. все полетело, интерактив, плейбак. Не нужно ставить ключи, все кешируется на ходу. только с 2020,3. хотя сам авториг написан на 2018.
это куда вообще смотреть? что б поисследовать.
Скелетон тут курит в стороне, "риг студио" тоже тупит
 
Рейтинг
273
#7
там вроде бы даже интерфейс Майки значительной частью, если не весь, писался на Mel, Ну сейчас еще Питон добавился.
С++ это уж если совсем глубоко копать надо.
В том же Анриале программирование на блупринтах в основном. Смысл писать на сях это уж в редких ситуациях и для особо прошаренных
 

рико

Знаток
Рейтинг
47
#8

Ванька Гудной

Активный участник
Рейтинг
8
#9
иди на автодеск. здесь даст бог раз в 2 месяца может Скиф чего-нибудь напишет.
На автодеске тоже не помогут, потому что ситуация тупа и банальна - человек первый раз открыл студию и не знает, как настроить зависимости. В коде собственно плагина никаких ошибок нет, просто студия не может найти зависимости. Подсказывать, как их указать - дело настолько нудное и неблагодарное, что все просто проходят мимо. Если человеку это действительно нужно, то он сам разберется, что, как видим, и произошло в итоге.

Григорий - это тот чувак с другого форума, у которого был обезьян на аватарке?

Куда все люди делись с форумов, у меня затык вышел и совета спросить тупо не у кого, кругом то пустые домены, то мертвые борды с последним постом 2 года назад.


там вроде бы даже интерфейс Майки значительной частью, если не весь, писался на Mel
Мел - это лишь скриптовая надстроечка над сиплюсплюсными библами. В нем очень ограниченный синтаксис собственно для процедурного программирования, а все богатство зиждется на мел-командах, которые дергают сиплюсплюсный код из недр майи. Потому и писон прикрутили, что мел не перекрывал потребностей. А если сравнивать писон и спп, то писон по своей природе на порядок (и более) тормознутый, чем спп.
 
Г

Григорий Филипов

Guest
#10
да да
у которого был обезьян на аватарке?
ага
у здешнего форума 5 дней назад инсульт случился. очень резко кердык пришел.
Мне нравится автодеск, там есть о чем поговорить. ответчиков много. Но они не любят русский акцент, ну это не только они. Там еще заранее все аппрешиэйтят, а потом молчат. (хрен пойми... он решил, не решил) ну может это я прокаженный, по идее у меня видно мою страну. Ну че все заходят на мою страну посмотреть?
 

рико

Знаток
Рейтинг
47
#11
Всем привет. Написал такую статью: C++ для Maya (render.ru)
В ней рассказываю как настроить Визуал Студио для создания плагинов Мая. А так же внутри небольшой код.
В общем то что сам узнал то и рассказал ахах.
 

Ванька Гудной

Активный участник
Рейтинг
8
#12
Мне нравится автодеск, там есть о чем поговорить. ответчиков много. Но они не любят русский акцент, ну это не только они. Там еще заранее все аппрешиэйтят, а потом молчат. (хрен пойми... он решил, не решил) ну может это я прокаженный, по идее у меня видно мою страну. Ну че все заходят на мою страну посмотреть?
Наверное, языковой барьер или боятся показаться тупыми, потому и тупо жмут кнопку "принять решение".
На относительно простые вопросы с приложенными примерами сцен мне нормально отвечали, а сложные типа тонкостей майкиного спп оставались без ответа.

Некоторые явления, конечно, сложно объяснить. Вот например какой-то индус прошелся по темам и проставил лайки. Что это было, зачем?.. непонятно xD
Или почему не дают установить аватарку. Закономерности от рейтинга не нашел.
 

рико

Знаток
Рейтинг
47
#14

В этом видео я показываю свой первый плагин который перемещает локатор по кривой.

Плагин состоит из двух команд.
1ая команда запускает окно с ползунком и выщитывает "numSpans" кривой.
2ая команда запускается при движении ползунка.
 

рико

Знаток
Рейтинг
47
#18
closestPointOnCurve насилуешь? :) попробуй цепочку суставов формировать по заданной кривой, это интереснее.
Да, я использовал closestPointOnCurve.Про суставы конечно интересно но мне сейчас нужно немного другое, а именно:

Плагин который при выделении вертексов будет создавать маркер. Что бы после по маркерам создать скелет.
Так вот сам плагин:

Единственное что мне сейчас нужно так это разобраться с создание кастомных локаторов, хотя нужны ли с++шные локаторы...
 
Г

Григорий Филипов

Guest
#19
Рико, А ты сможешь сделать, что б майский поз интерполятор выводил вместо одного канала на 9, на все трансформы?, а не на один вес морфа.
Я имею ввиду, что это очень важная хрень для рига, которую ванильная майка не дает.
И вот надо, что б она ванильная работала. И RBF был на 9 каналов
 
Г

Григорий Филипов

Guest
#20
он от минус одного до одного выводит. Я фиг знает.
Рико, если тебе интересно обсудить в личку пиши. ну я про то если ты поймешь, что это реально.
ремап валью нам тут поможет, давай скрипт обсудим в личке
 
Сверху