Jump to content

Opscript


deshu
 Share

Recommended Posts

Hejka!

 

Czy ktoś mógłby mi powiedzieć, czy da się zmusić houdiniego do odtworzenia nodów na podstawie pliku zapisanego dzięki Opscript?

 

Przykład: mam jakieś wykombinowane kilka nodów. Chce je zapisać do pliku tekstowego, żeby kolega mógł automatem odtworzyć sieć u siebie, w innym projekcie.

 

Ewentualnie, czy jest jakiś inny sposób przenoszenai częsci nodów miedzy plikami .hipnc, aby dało się je nadal edytować?

Link to comment
Share on other sites

Hejka!

 

Czy ktoś mógłby mi powiedzieć, czy da się zmusić houdiniego do odtworzenia nodów na podstawie pliku zapisanego dzięki Opscript?

 

Przykład: mam jakieś wykombinowane kilka nodów. Chce je zapisać do pliku tekstowego, żeby kolega mógł automatem odtworzyć sieć u siebie, w innym projekcie.

 

Ewentualnie, czy jest jakiś inny sposób przenoszenai częsci nodów miedzy plikami .hipnc, aby dało się je nadal edytować?

 

 

Jasne, oto obie metody:

 

hscript:

opscript -r /obj/geo1 > /tmp/geo1.cmd

i dalej:

source /tmp/geo1.cmd

Python:

mynodes = hou.node("/obj/geo1").asCode()

i dalej po prostu:

exec mynodes 

 

 

Ograniczeniem tej metody są dane binarne potencjalnie przechowywane przez niektóre nody, takie jak EditSOP, które się nie przeniosą (podobnie jak nody z flagą lock).

Link to comment
Share on other sites

Bardzo proszę, jasne pełne, najlepiej czeskie... dziękuję ;)

Ah wiec 'source'!

To pochodzi ze skryptów powłoki, z którego hscript się wywodzi (a może raczej tcl?). Tak czy tak, Linux pomaga w Houdinim.

Link to comment
Share on other sites

W momencie kiedy robisz ctrl+c houdini w swoim tempie tworzy plik .cpio do ktorego zrzuca aktualnie zaznaczone nody dla danego kontekstu.

 

ctrl+c:

nodes = hou.selectedNodes()
hou.copyNodesToClipboard(nodes)

 

metoda na partyzanta to wyjecie tego pliku z tempa i wklejenie go w tempie na innym komputerze i wykonanie ctrl+v. Zaleta tego rozwiazania jest taka ze przechowuje on zalockowane nody, klucze, inne informacje np z nodow paint, comb, edit

 

inne podobne rozwiazanie to:

 

saveChildrenToFile()

loadChildrenFromFile()

 

np:

#zapis
obj = hou.node('obj')
nodes = []
nodes.append(obj.node('geo1'))
obj.saveChildrenToFile(nodes, (), 'C:/plik.cpio')

#odczyt:
obj.loadChildrenFromFile('C:/plik.cpio')

 

dziala identycznie jak ctrl+c i ctrl+v, musi zgadzac sie tylko kontekst w ktorym ladujesz plik z jego zawartoscia, masz tez wieksza kontrole gdzie wyladuje plik, i skad go ladujesz przez co mozesz sobie napisac proste narzedzie (python) do przerzucania nodow po sieci, jak dorzucisz do tego np dropboxa (bedziesz z automatu wrzucal .cpio do katalogu dropboxa, oba komputery beda zsynchronizowane z tym samym kontem) bedziesz mogl wymieniac sie z kolega nodami przez internet za pomoca 2 przycioskow

Edited by Johny
Link to comment
Share on other sites

Johny, Ty hackerze!

 

Czy przypadkiem cpio, które jest kawałkiem hipa (który de facto jest plikiem cpio) nie zamieni sceny na Apprentice? Zwykły Ctrl+C->Ctrl+V właśnie tak zrobi, a tu chyba właśnie o to chodzi, żeby nie robił - oczywiście w celach niekomercyjnych!

 

Tak czy tak, niezły trick, dzięki!

Link to comment
Share on other sites

Rzeczywiscie tak bedzie, ctrl+c ctrl+v nie dzialalo w takiej sytuacji, pamietam ze z plikow hipnc musialem recznie przepisywac expressiony, odwzorowywac caly setup do nodow w wesji odpalonej na normalnej licencji :) no ale, w innym wypadku mysle ze rozwiazanie calkiem spoko :)

 

pozdrawiam btw :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy