Skocz do zawartości

Kroopson

Members
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez Kroopson

  1. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    Dobra - to sobie sam odpowiem (nie żeby to było komuś kiedyś potrzebne) Generalnie parse'owanie argumentów w MPxCommand nie działa dobrze jeśli chcesz przekazywać listy do funkcji i chcesz używać komendy w pythonie. Dlatego zrobiłem inną metodę parse'owania dla wywołań z pythona i inną dla MEL'a. Poniżej kodzik: MStatus poseApply::doIt(const MArgList& args) { MStatus status; if(args.length() > 0) { status = parseArgsMel(args); } else { status = parseArgsPython(args); } return status; } MStatus poseApply::parseArgsMel(const MArgList& argList) { unsigned int index = 0; MStatus status; unsigned int argsNum = argList.length(); while (index { MString argValue = argList.asString(index, &status); CHECK_MSTATUS_AND_RETURN_IT(status); // --- Compare the argValue with all the flags names. If arg matches the flag name // --- parsedFlag will be set to true. If parsed flag will remain false it could mean that // --- we're done with flag parsing and we need to start collecting objects. // --- This prevents mixing flags and objects and forces the objects to be provided at the end // --- of the command. bool parsedFlag = false; bool doneParsingFlags = false; if(!doneParsingFlags){ // --- Collect namespace if (argValue == MString("-ns")) { index++; mNamespace = argList.asString(index, &status); CHECK_MSTATUS_AND_RETURN_IT(status); parsedFlag = true; } // --- Collect pose string if (argValue == MString("-ps")) { index++; mNamespace = argList.asString(index, &status); CHECK_MSTATUS_AND_RETURN_IT(status); parsedFlag = true; } // --- Collect pose string if (argValue == MString("-pm")) { index++; //mPoseString = argList.asString(index, &status); MDoubleArray matrixNumbers = argList.asDoubleArray(index, &status); CHECK_MSTATUS_AND_RETURN_IT(status); if (matrixNumbers.length() != 16) { MGlobal::displayError("Invalid format of poseMatrix flag!"); return MStatus::kFailure; } for (unsigned int u = 0; u { for (unsigned int v = 0; v { mPoseMatrix[u][v] = matrixNumbers[(u * 4) + v]; } } parsedFlag = true; } // --- Check if maybe there are some wrong flags? if(!parsedFlag && argValue.length() > 0) { if(argValue.substring(0, 0) == MString("-")) { MGlobal::displayError(MString("Invalid flag ") + argValue); return MStatus::kFailure; } } if (!parsedFlag) { doneParsingFlags = true; } } // --- Done parsing flags, getting objects if(doneParsingFlags && !parsedFlag) { status = mObjects.add(argValue); if (status != MStatus::kSuccess) { MGlobal::displayError(MString("Invalid object ") + argValue); return status; } } index++; } // --- If no objects provided use selection if(mObjects.length() == 0) { MGlobal::getActiveSelectionList(mObjects); } return MStatus::kSuccess; } MStatus poseApply::parseArgsPython(const MArgList& argList) { MArgDatabase argData(syntax(), argList); MStatus status; // --- Get the pose string. if (argData.isFlagSet("-ps")) { argData.getFlagArgument("-ps", 0, mPoseString); } else { MGlobal::displayError("Pose string not set!"); return MStatus::kFailure; } // --- Get all objects to save in the pose. mObjects.clear(); status = argData.getObjects(mObjects); if (MS::kSuccess != status) { MGlobal::displayError("Error getting objects"); return status; } // --- Get the namespace name to remove from the string. if (argData.isFlagSet("-ns")) { argData.getFlagArgument("-ns", 0, mNamespace); } // --- Get the namespace name to remove from the string. if (argData.isFlagSet("-pm")) { MArgList poseMatrixArgsList; for (unsigned int u = 0; u { for (unsigned int v = 0; v { MArgList poseMatrixArgsList; MStatus stat = argData.getFlagArgumentList("-pm", (u * 4) + v, poseMatrixArgsList); if (stat == MStatus::kFailure) { mPoseMatrix = MMatrix(); MGlobal::displayError("Invalid format of poseMatrix flag!"); return MStatus::kFailure; } mPoseMatrix[u][v] = poseMatrixArgsList.asDouble(0); } } } return MStatus::kSuccess; }
  2. Hej - witki mi już opadły - jak w Maya można napisac MPxCommand tak, żeby jako jeden z argumentów można było przekazać macierz, i żeby to działało w pythonie :/
  3. Kroopson odpowiedział Monio → na odpowiedź w temacie → Aktualności (mam newsa)
    Hm... jakoś już 5 lat temu? Wg mnie lepszy niż w Maya.
  4. mother of all features! :| No po prostu masakra :)
  5. Kroopson odpowiedział Frankot → na odpowiedź w temacie → Wolne dyskusje
    "Kroniki czarnej kompanii" - jakie to jest DOBRO :) jeśli ktoś lubił "Ruch generała" i "Inne pieśni" Dukaja to polecam Kroniki. Dukaj jeszcze o klasę lepszy ale to i tak najfajniejsze fantasy jakie czytałem od czasu Pieśni ognia i lodu.
  6. Kroopson odpowiedział osael → na odpowiedź w temacie → Aktualności (mam newsa)
    Albo filmy na festiwale z nowoczesną formułą w kategorii animacja...
  7. Kroopson odpowiedział radi0n → na odpowiedź w temacie → Maya
    Ale per poligon czy też chcesz mieć po prostu zorientowany manipulator względem zaznaczonych komponentów?
  8. Kroopson odpowiedział osael → na odpowiedź w temacie → Aktualności (mam newsa)
    Bardzo fajne, jedynie scenki z pękającymi szybami bym się pozbył ale reszta bardzo fajna. Może cała fabułka z tego wyjdzie?
  9. Kroopson odpowiedział adek → na odpowiedź w temacie → Aktualności (mam newsa)
    A mnie się nie podoba, wszystkie te cinematiki moba są na jedno kopyto już od jakiegoś czasu
  10. Mnie delikatnie uwiera jedna pierdołka - animacje klasyczne mają swój niesamowicie smaczny timing, ale mocno odcinają się animacje generowane z interpolacji. Wg mnie w następnym filmie powinieneś symulować wszędzie ten rysunkowy styl, nawet jeśli animujesz przesuwając obiekty w afterze, ale co ja tam wiem :) nadal patrzę na walk cycle, klasa!
  11. Rewelacja.
  12. Whoa! Jak przyszedłem do Ha w 2009 (o ile dobrze pamiętam) to "już już miało być robione" :) Gratulacje!
  13. Kroopson odpowiedział WWWoj → na odpowiedź w temacie → Animacje
    opad szczeny!
  14. Kroopson odpowiedział jefim → na odpowiedź w temacie → Aktualności (mam newsa)
    Death stranding, Detroit, Battlefield One i Days Gone. Na to czekam, na to liczę :) Ale się te cinematiki zrobiły wypasione. No no... Trzeba przyznać jedną rzecz - PI osiągnęło w tym momencie taki poziom, że jeśli ich cinematic się wyróżnia w takiej kompilacji to tylko na plus. Za watchdogs 2 szacun (ale najbardziej podoba mi się Halo Wars 2, może ze względu na to że mam wielką słabość do uniwersum chociaż nie grałem w ani jedną część Halo :) )
  15. Kroopson odpowiedział McGavish → na odpowiedź w temacie → Work in progress (WIP)
    Głęboki szakunec, świetny model.
  16. Kroopson odpowiedział Idaho → na odpowiedź w temacie → Aktualności (mam newsa)
    Rok linuxa
  17. Kroopson odpowiedział Piotruch → na odpowiedź w temacie → Animacje
    Arcydzieło to to nie jest ale jest skończony i na pewno dużo się nauczyłeś dzięki tej produkcji. No i fajnie :) Keep it up.
  18. Symek - coś czuję że jesteś na urlopie skoro chce Ci się o tym dyskutować :D
  19. Kroopson odpowiedział IvyusS → na odpowiedź w temacie → Wolne dyskusje
    Animacji klasycznej czy generalnie animacji?
  20. grafika hiperprzestrzenna może? :)
  21. Kroopson odpowiedział vertexnoob → na odpowiedź w temacie → Maya
    Do nauki i zabawy to Gentoo albo Debian. Próbując cokolwiek zrobić zepsujesz system tyle razy że dużo się nauczysz szukając rozwiązań (nie, to nie jest sarkazm, swego czasu 3 razy dziennie reinstalowałem w domu linuxa).
  22. Kroopson odpowiedział vertexnoob → na odpowiedź w temacie → Maya
    Też prawda. Btw - kope lat symek :D
  23. Kroopson odpowiedział vertexnoob → na odpowiedź w temacie → Maya
    Wszystkie wersje Maya miały natywną instalację na linuxa.
  24. Kroopson odpowiedział adek → na odpowiedź w temacie → Aktualności (mam newsa)
    kurde powaga wygląda to obłednie dobrze (Maćkowe)

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności