Riferimento Cinema 4D Funzionalità Aggiuntive Animazione di Personaggi Componenti Personaggio
Funzione disponibile in CINEMA 4D Studio
Componenti Personaggio

Base Tag Inserimento Specchiatura Includi Materiali Livelli Selezione Vincola Regolazioni Hotpots Note Animazione Percorso Python Avanzato

Python

La tab Python fornisce una grande flessibilità per aggiungere funzioni personalizzate e comportamenti durante le fasi di costruzione e regolazione dell’Oggetto Character.

Codice

Utilizzate questo campo per inserire il vostro codice Python.

Utilizzando Python è possibile ignorare i seguenti metodi per modificare il comportamento dell’Oggetto Character mentre svolge determinate azioni. Assicuratevi di importare il modulo .c4d all’interno di questo campo per fare riferimento agli oggetti e ai metodi che esso contiene. La completa documentazione Python può essere trovata al sito http://developers.maxon.net.

La tab Costruire

Questa funzione viene richiamata all’interno dei tag Componente del tipo Personaggio ogni volta che viene salvato un template personaggio utilizzando il comando Salva Template Personaggio. Utilizzando questa funzione, è possibile inserire degli oggetti per costruire dinamicamente un template o modificare il documento template. Notate che quando si aggiungono dei componenti è necessario aggiungere il Tag Componente con i settaggi appropriati.

Globali:

def GetComponents()

Questa funzione viene richiamata all’interno dei tag Componente del tipo personaggio ogni volta che si ridisegna e può essere utilizzata per specificare quali pulsanti componente devono essere mostrati all’interno dell’Oggetto Character. Visualizza una lista di componenti disponibili come BaseLink archiviati all’interno di un BaseContainer. Le regole di inclusione standard specificate nel tag Componente si applicheranno quando non ci sarà alcun BaseContainer.

Globali:

Ritorno:

c4d.BaseContainer

Esempio:

Se questo codice viene inserito nella tab Python, l’Oggetto Character assicurerà la presenza di un’altro oggetto con il nome "Spine_null”. Quando si aggiunge la Spina Dorsale, non si possono aggiungere altri componenti, indipendentemente dal Genitore. Notate che i metodi FindObject effettuano la ricerca per "nome oggetto” e non dei nomi dei componenti. In questo esempio il BaseContainer viene restituito solo quando non c’è la Spina Dorsale, quindi quando essa viene aggiunta, vengono utilizzate le regole di inclusione del tag Componente.

def ModeChanged()

Richiamato per ogni tag Componente quando si cambia la modalità (Costruisci, Regola, Vincola, Anima). Ciò può essere utilizzato per modificare la visibilità degli oggetti o per attivare/disattivare funzioni come le espressioni. Non viene restituito nulla, semplicemente si modifica direttamente l’Oggetto Character.

Globali:

Costanti:

def InsertComponent()

Questa componente viene chiamata in due modi diversi. Quando utilizzata all’interno della tab Python del tag Componente essa può essere utilizzata per annullare tutte le azioni di inserimento. Dovete inserire tutti gli oggetti all’interno del documento per creare il compoenente e torna il componente principale dell’oggetto che è stato inserito nel documento.

Potete anche chiamare questa funzione all’interno di una regola di Inserzione sulla tab Inserzione del tag Componente. Quando utilizzata qui, la funzione vi permette di modificare il luogo ed il modo in cui l’oggetto è stato inserito. In questo caso, il tipo variabile globale indica il tipo di inserimento (come il menu a scorrimento Inserisci nella regola) e tornate a c4d.BaseObject, il quale corrisponde all’attributo oggetto nella regola.

Globali:

Ritorno:

c4d.BaseObject: l’oggetto componente principale o l’oggetto il cui componente deve essere inserito

Esempio

Utilizzando InsertComponent all’interno di una regola di Inserzione Python, questo codice definisce quale oggetto deve inserire il componente, a seconda del Genitore (se ha un figlio o meno). In questo caso, viene utilizzato con una T-joint per inserire ogni componente alla fine di ogni joint.

def PostInsertComponent()

Questa funzione viene chiamata dopo che un Componente è stato inserito nell’Oggetto Character e solo quando non si utilizza InsertComponent. Se non torna nulla, potete effettuare delle modifiche direttamente sugli oggetti inseriti all’interno della funzione.

Globali:

def MirrorComponent()

Questa funzione viene richiamata quando si aggiunge un componente specchiato all’Oggetto Character. I componenti specchiati sono generati automaticamente quando si aggiungono componenti multipli dello stesso tipo con lo stesso genitore, in base ai settaggi della tab Specchia del tag Componente. MirrorComponent viene richiamato prima di PostInsertComponent ed i componenti specchiati possono essere modificati direttamente all’interno di questa funzione.

Globali:

Ritorno:

True / !=0 se il rispecchiamento è stato fatto in Python

def BoneInsert()

Questa funzione viene richiamata all’interno della tab Python del tag Componente quando l’utente modifica il conteggio bone ed annulla completamente le bone inserite.

Globali:

def IncludeObjects()

Questa funzione vi permette di includere oggetti addizionali con il componente, similare alla tab Includi del tag Componente. L’incdata globale è un BaseContainer in cui i dati di ogni inserimento sono dei BaseLink all’oggetto e l’indice è un numero intero che corrisponde alle flag InExcludeData:

Flags:

Globali:

Ritorno:

True / !=0: se gli incdata sono stati modificati

def AdjustObject()

Questa funzione viene richiamata all’interno di una regola di Regolazione di tipo Python, la quale viene creata nella tab Regolazioni aggiungendo un oggetto / una regola all’elenco Oggetti ed impostando Tipo a Python. Questa funzione viene valutata quando si posiziona il campo Codice risultante su ogni regola. La funzione viene chiamata in continuazione mentre si regola la relativa maniglia. All’interno di questa funzione potete regolare le globali direttamente o tornare alla matrice – quest’ultima opzione è preferibile: in questo modo non si entra in conflitto con altre regole. Tutte le matrici per questa funzione sono localizzare sull’Oggetto Character.

Globali:

Ritorno:

La matrice impostata per l’oggetto (c4d.Matrix)

def GetDependency()

Questa funzione viene richiamata prima di AdjustObject quando la si posiziona nel campo Codice di una regola Regolazione del tipo Python. All’interno di questa funzione potete modificare gli oggetti a seconda delle regole. Ad esempio, se una regolazione deve essere posizionata in base ad alla posizione di altri tre oggetti (come per un polo vettore), potrete tornare a c4d.BaseContainer per collegare questi 3 oggetti. Ciò permette all’Oggetto Character di creare una dipendenza in modo che le regolazioni siano valutate nell’ordine corretto, dal momento che la regola modifica l’oggetto matrice utilizzato dall’altra regola.

Globali:

Ritorno:

c4d.BaseContainer contiene BaseLinks (l’ID non viene valutato)

def TransformComponent()

Questa funzione viene chiamata all’interno della regola Python, la quale viene creata nella Tab inserzione aggiungendo un oggetto / una regola all’elenco Oggetti ed impostando Tipo a Python. All’interno di questa funzione potete trasformare li componente e i suoi oggetti inclusi (sostituendo i settaggi specificati nella tab).

Globali:

Ritorno:

La nuova matrice globale (c4d.Matrix) per gli oggetti componente principali

def AllowComponent()

Questa funzione viene richiamata all’interno di una regola Inserzione Python, la quale viene creata nella tab Inserzioni aggiungendo un oggetto / regola all’elenco di oggetti ed impostando il Tipo a Python. Questa funzione si valuta solo quando si posiziona nel campo Codice associato ad ogni regola. Impostate Vero per permettere i componenti. Questa funzione è molto simile a GetComponents, ad eccezione del fatto che essa ritona al suo stato di componente singolo.

Globali:

Ritorno:

c4d.modules.character.builder.CharacterObject

def FindObject(nome)

Trova an oggetto a seconda del nome del template.

Parametri: nome (stringa) – il nome oggetto da cercare

Ritorno: L’oggetto trovato (c4d.BaseObject) o Nessuno

def GetFirst()

Torna al primo componente personaggio.

Ritorno: il primo Componente (builder.ComponentObject) o Nessuno

def GetObject()

Ottiene il BaseObject del personaggio.

Ritorno: il BaseObject (c4d.BaseObject) del personaggio

c4d.modules.character.builder.Template

def FindComponent(name, ident)

Trova il componente all’interno del template.

Parametri:

Ritorno: Il componente trovato (builder.Component) o Nessuno

def FindObject(name)

Trova l’oggetto all’interno del template.

parametri: nome (stringa) – il nome dell’oggetto da cercare

Ritorno: L’oggetto trovato (c4d.BaseObject) o Nessuno

def GetDocument()

Ottiene il BaseDocument del template.

Ritorno: Il documento (c4d.BaseDocument)

c4d.modules.character.builder.Component

def GetObject()

Ottiene il BaseObject del componente.

Ritorno: L’oggetto (c4d.BaseObject)

def GetTemplate()

Ottiene il template del componente.

Ritorno: il template (builder.Template)

c4d.modules.character.builder.ComponentObject

def CountComponent(name, ident, mirrored, down)

Conteggia i componenti figlio.

Parametri:

Ritorno: numero di collegamenti

def FindComponent(nome, identità, specchia, giù)

Trova un componente figlio specifico a seconda del suo nome.

Parametri:

Ritorno:i primi oggetti collegati (builder.ComponentObject)

def FindObject(nome)

Trova un oggetto all’interno del componente cercando il so nome.

Parametro: name (stringa) da collegare

Ritorno: primo oggetto collegato (c4d.BaseObject)

def GetComponent()

Ottiene il componente.

Ritorno: il relativo componente (builder.Component)

def GetDown()

Ottiene l’oggetto principale del primo componente figlio.

Ritorno: l’oggetto principale del primo componente figlio (c4d.BaseObject)

def GetName(identità)

Ottiene il nome del componente.

Parametri: identità (booleana) se vero, visualizza il nome e l’identità

Ritorno: il nome (stringa)

def GetNext()

Ottiene l’oggetto principale del componente successivo.

Ritorno: l’oggetto principale del componente successivo (c4d.BaseObject)

def GetObject()

Ottiene l’oggetto principale del componente.

Ritorno: l’oggetto (c4d.BaseObject)

def GetObjects(tipo=COMPONENT_OBJECT_GETOBJECTS_TYPE_):

Ottiene un container con tutti gli oggetti per questo componente.

Parametro:

Ritorno: container con oggetti collegati (c4d.BaseContainer)

def GetPrev()

Si ottiene l’oggetto principale del componente precedente.

Ritorno: l’oggetto principale del componente precedente (c4d.BaseObject)

def GetTag()

Ottiene il tag componente per questo componente.

Ritorno: il tag componente (c4d.BaseTag)

def GetUp()

Ottiene l’oggetto principale del componente Genitore.

Ritorno: l’oggetto principale del componente Genitore (c4d.BaseObject)