Icone personalizzate C4d

Forum per: Modellazione, Texturing, Animazione, Composting e tutto quello che riguarda il normale utilizzo di Cinema4D.

Moderators: Arkimed, natas, visualtricks, cappellaiomatto

  • Advertising
User avatar
visualtricks
Moderatore
Posts: 3562
Joined: Thu Sep 23, 2004 5:13 pm
Location: Pistoia

Re: Icone personalizzate C4d

Post by visualtricks »

come si dice...la luce in fondo al tunnel è un treno!
Con python stai attento che l'indentazione del testo conta, cmq puoi tenere aperta la console per vedere che errori ti dà (o se ci dici che vuoi fare ci diamo un'occhiata).
Image
๏_www.visualtricks.it_๏ .:: COMPUTER SAYS NO ::.
User avatar
Marcok
Posts: 271
Joined: Wed Jul 28, 2010 4:08 pm
Location: Torino

Re: Icone personalizzate C4d

Post by Marcok »

Quanto odio il mio professore in questo momento...al liceo lui ci fece imparare il QBasic, mentre il suo collega di un'altra sezione insegnava agli studenti il Python :nono :nono

Comunque queste prime delucidazioni mi sono servite parecchio almeno ho capito come fare per aggiungere oggetti di cui necessito senza fare preset inutili nel Content Browser. Almeno mantengo un po' di ordine :lol:

Ora però mi chiedo, come fare se volessi aggiungere invece che un oggetto generico, un materiale di VRay? Magari settandone colore e/o riflessione?

EDIT: Ok, ho capito che come succede con gli oggetti, devo inizializzare un materiale con la funzione c4d.BaseMaterial, e poi caricarlo con l'InsertMaterial...ma mi sfugge il passaggio in mezzo...
-
Image
User avatar
Marcok
Posts: 271
Joined: Wed Jul 28, 2010 4:08 pm
Location: Torino

Re: Icone personalizzate C4d

Post by Marcok »

Ok, ce l'ho fatta a capire. Era decisamente più semplice di quello che pensavo! Nel caso servisse vi posto il codice:

Code: Select all

import c4d
from c4d import gui

def main():
    doc.StartUndo()                           #Inizia supporto all'Undo
    
    material = c4d.BaseMaterial(1020295)      #Inizializza il VrayMats
    doc.InsertMaterial(material)              #Aggiunge il materiale
    
    doc.AddUndo(c4d.UNDOTYPE_NEW, material)   #Aggiunge il supporto al Redo
    doc.EndUndo()                             #Chiude la funzione Undo
    
    c4d.EventAdd()                            

if __name__=='__main__':
    main()
Ora cerco di capire come impostare nuovi valori di "Default" :idea:
-
Image
User avatar
nexzac
Posts: 4888
Joined: Wed Dec 03, 2008 4:08 pm
Location: Milano

Re: Icone personalizzate C4d

Post by nexzac »

Ciao ragazzi, riesumo questa conversazione perchè finalmente ho avuto un po' di tempo per fare qualche esperimento, ok, qualcosa ho capito, senza esagerare! :roll:

Come mi avete suggerito sono riuscito a farmi i miei pulsanti, con icone personalizzate e con settari scelti da me, salvando gli oggetti nel content browser; quindi lo script non fa altro che richiamare quell'oggetto da aggiungere alla scena corrente.

ok.

Ma ci sono delle volte che gli script non fanno quello che imposto, ad esempio, passo spesso, nello stesso progetto da formato verticale a orizzontale, così volevo crearmi uno script che con un click passasse a un formato A4 a 100 DPI verticale e uno script uguale ma orizzontale, ma non mi riesce.

Code: Select all

import c4d
from c4d import gui
#Welcome to the world of Python

def main():
    def tool():
        return plugins.FindPlugin(doc.GetAction(), c4d.PLUGINTYPE_TOOL)

    def object():
        return doc.GetActiveObject()

    def tag():
        return doc.GetActiveTag()

    def renderdata():
        return doc.GetActiveRenderData()

    def prefs(id):
        return plugins.FindPlugin(id, c4d.PLUGINTYPE_PREFS)

    c4d.CallCommand(12161) # Modifica i Settaggi di Rendering...
    renderdata()[c4d.RDATA_SIZEUNIT]=1
    renderdata()[c4d.RDATA_XRES_VIRTUAL]=21
    renderdata()[c4d.RDATA_YRES_VIRTUAL]=29.7
    renderdata()[c4d.RDATA_PIXELRESOLUTION_VIRTUAL]=100
    renderdata()[c4d.RDATA_LOCKRATIO]=True

if __name__=='__main__':
    main()
Image
"if you can't explain it simply, you don't understand it well enough"
  • Advertising
Post Reply