Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 9. červenec 2008, 16:45:26 Předmět: 3DSmax::reference::maxscript |
|
|
Ahoj lidi, řeším teď takový malý problém v maxu. Dejme tomu, že si 10x zkopíruji model jako REFERENCE. Což znamená, že někde v paměti je uložen jeden objekt a ty co vidím já ve scéně se na něj jen odkazují...
Zkrátka rád bych napsal exportní script scény, ale nechci exportovávat každý objekt zvlášť...to by zabralo moc času...
Pouze bych potřeboval na začátek vyexportovat referenční modely a potom se na ně pouze odkazovat...
Doufám, že mi rozumíte...neumím to moc vysvětlit...
Díky za radu... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
tom.drin

Založen: 28. 07. 2007 Příspěvky: 65
|
Zaslal: 9. červenec 2008, 19:55:07 Předmět: |
|
|
Tak jsem hledal a zkoušel a přišel jsem na toto:
Maxkovi je celkem jedno jestli to kopíruješ jako instanci nebo referenci.
A samotný instance dostaneš takhle
kód: |
InstanceMgr.GetInstances $pozadovany_objekt &instances
|
To ti vyplivne pole instances kde poslední objekt je ten prvně vytvořený.
Ono je to dost nešikovné, protože když to hodně pomícháš tak vlastně nepoznáš kterej objekt je ten první a který kopie. |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 10. červenec 2008, 06:00:22 Předmět: |
|
|
Děkuji...
Jenom nevíš pro jakou verzi 3DS maxe to funguje...já mám doma starší Max a nějak tam tento instanceMgr chybí...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 10. červenec 2008, 06:38:40 Předmět: |
|
|
Tak taky jsem trochu pohledal a tato varianta fuguje i v GMAXu...
kód: |
obj = $foo
bobj = obj.baseobject
robjs = refs.dependents bobj |
No a robjs je pole všech instancí a referencí daného objektu ($foo)... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
tom.drin

Založen: 28. 07. 2007 Příspěvky: 65
|
Zaslal: 10. červenec 2008, 16:09:36 Předmět: |
|
|
Já to zprovoznil v Maxovi 9 - bohužel v helpu jsem se nedočet odkdy to tam je.
Každopádně tvoje řešení je elegantnější  |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 11. červenec 2008, 06:31:05 Předmět: |
|
|
No já používám GMAX a ten vychází asi z verze 3 nebo 4...
Ale na 3DS max mám Maxscript reference a zatím většina věcí je stejných jak v 3DSmaxu tak v GMAXu...
Jen pokud hledám nějakou radu na NETu musím upřesňovat na jakou verzi Maxe to potřebuji...
Jinak jsem ten kók trochu upravil, takže pokud by se to někomu hodilo, zde je funkce vracející pole instancí (referencí) daného prvku:
kód: |
fn getinstances obj =
(
baseobj = obj.baseobject
depobjs = refs.dependents baseobj
objs = for Eobj in depobjs where
(
(iskindof Eobj node) and (baseobj == Eobj.baseobject) and (obj != Eobj)
) collect Eobj
return objs
)
|
Ono to totiž může vrátit i instance na controllery a to mi nepotřebujeme... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
|