Skocz do zawartości

Mritke

Members
  • Rejestracja

  • Ostatnia wizyta

  1. Mritke dodał odpowiedź w temacie → w 3ds max
    Witam. Potrzebuje napisać skrypt który importuje i rozmieszcza na scenie obiekty zdefiniowane w pliku(custom format .sce(textowy)), a właściwie prymitywnym drzewie hierarchicznym plików. Budowa pliku(znaczenia znaczników chyba nie muszę tłumaczyć): plik scena.sce: geomobj teren2_1_1 file "scena\teren\teren2_1_1.obj" 512 1024 pos -256 -256 child_lod 0 768 dist cheby xz xref "scena\sceterenu\teren1_1_1.sce" xref "scena\sceterenu\teren1_1_2.sce" xref "scena\sceterenu\teren1_2_1.sce" xref "scena\sceterenu\teren1_2_2.sce" end .... plik teren1_1_1.sce: geomobj teren1_1_1 file "scena\teren\teren1_1_1.obj" 256 512 pos -384 -384 child_lod 0 384 dist cheby xz xref "scena\rosliny\rosliny1_1_1.sce" end ..... plik rosliny1_1_1.sce: geomobj OB_TRAWA file "scena\obiekty\trawa.obj" 0.0 50 rot 0 56 0 scl 0 0 0 pos -492 33.8314 -336 dist euclid end geomobj OB_DRZWEO file "scena\obiekty\drzewo.obj" 0.0 150 rot 0 37 0 scl 0 0 0 pos -492 19.4751 -310 dist euclid end geomobj OB_KRZEW file "scena\obiekty\krzew.obj" 0.0 100 rot 0 12 0 scl 0 0 0 pos -488 48.7808 -426 dist euclid end ......... itd itp skrypt (formatowanie kodu się kompletnie sypie jak go wklejam ale może ktoś dojdzie co i jak): ( fn openSCE fileName yep = ( f = openfile (fileName) --f = openfile ("d:\scena\scena\rosliny\rosliny1_1_1.sce") if f == undefined then ( MessageBox "nie wczytalem" ) if f != undefined then ( MessageBox fileName while not (eof f) do ( l = readline f lf = filterString l " " lname = "" if yep=="true" then ( if lf[1] == "geomobj" then ( lname = lf[2] ) if lf[1] == "file" then ( local plugins = importerPlugin.classes local pluginName = Wavefront_Object if findItem plugins ObjImp != 0 then (pluginName = ObjImp) --MessageBox "file" --braclf =filterString lf[2] "\"" s1 =lf[2] bracss=filterString s1 "\"" importFile (bracss[1]) #noPrompt using:pluginName for i in selection do i.name = lname --max select none ) if lf[1] == "pos" then ( if (lf.count)==4 then ( X=lf[2]as Float Y=lf[3]as Float Z=lf[4]as Float move $ [Z,-X,Y] ) else ( X=lf[3]as Float Y=lf[2]as Float move $ [X,-Y,0] ) ) ) ---yep yep yep if lf[1] =="xref" then ( s1 =lf[2] bracss=filterString s1"\"" if matchPattern s1 pattern:"rosliny" then ( openSCE bracss[1] "true" ) else ( openSCE bracss[1] "no" ) ) ) close f ) ) --openSCE "scena\\rosliny\\rosliny1_1_1.sce" "true" --openSCE "scena\rosliny1_1_1.sce" "true" openSCE "scena\\scena.sce" "true" ) Skrypt czyta pojedyncze pliki bez problemu. Nie działa jednak już gdy jest wykonany w rekursji-pliki się otwierają ale chyba nic z nich nie jest czytane. Wydaje mi się że maxscrypt poze mieć problemy z czytaniem z wielu plików na raz... Albo po prstu jest coś o czym nie wiem i nie mogę znaleźć. Foldery są zdefiniowane poprawnie otwiera wszystkie pliki ale żadne operacje nie są wykonywane.
  2. Mritke odpowiedział miwt → na odpowiedź w temacie → Work in progress (WIP)
    rysunki są bardzo fajne... ale nawet jak na szkice... perspektywa nie jest zachowana, szczególnie widać to na kołach kiedy nie są ustawione współliniowo, równolegle do teoretycznej osi samochodu, a imo kontury samochody urywają się zbyt wcześnie(często widać to na maskach)

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności