Voir la version complète : Problème Mettre en cache Thinking particules ?
Bonjour à tous et bravo pour ce merveilleux forum qui m'aide énormément au quotidien.
J'ai un problème avec une ferme de rendu et thinking particules du moins c'est ce que je pense et j'aurais besoin de vos lumières.
À priori, la ferme de rendu calcule les images dans un ordre quelconque or dans mon projet, c4d dois lire l'animation dans l'ordre pour que la simulation des particules soit correcte (je crois).
Y aurait-il un moyen de mettre en cache le calcul thinking particules pour que la simulation soit correcte quelque soit l'ordre de lecture de l'animation ? je suis en R13.
Dans l'attente de vous lire, merci d'avance.
Salut Restic1,
Je pense que tu as déjà ta solution mais je poste quand même, ça pourra servir à d'autres. ;)
C'est une solution qui impose d'avoir MoGraph.
1. Créer un cloner en mode 'Object'
http://www.xsyann.com/fc4d/bake_tp1.png
2. Faire glisser le groupe de particules dans le champ 'Object'
http://www.xsyann.com/fc4d/bake_tp2.png
3. Mettre la géométrie en mode visible en enfant du Cloner
4. Créer un tag MoGraph Cache
http://www.xsyann.com/fc4d/bake_tp3.png
5. Cliquer sur 'Bake'
http://www.xsyann.com/fc4d/bake_tp4.png
Ne pas oublier de désactiver ou de supprimer les TP.
Bon courage pour la suite. :icon_wavey:
[QUOTE=xs_yann;1061700]Salut Restic1,
Je pense que tu as déjà ta solution mais je poste quand même, ça pourra servir à d'autres. ;)
En effet j'ai la solution qui est exactement celle que tu expose.
Merci pour ton aide XS_Yann et en effet j'espère que ça pourra servir à d'autres.
Merci à la French, ce lieux où la solidarité humaine prend tout son sens.
En effet j'ai la solution qui est exactement celle que tu expose.
Hehe, je me doute bien c'est moi qui t'ai donné les deux (c'est moi Yann KOËTH au Ranch). :icon_mrgreen:
Voilà un petit script Python pour se faciliter la vie (compatible R13).
import c4d
from c4d import gui
SHAPE_UD_STR = 'Particle Shape'
ON_UD_STR = 'On'
Ocloner = 1018544
def get_shape(emitter):
for descid, bc in emitter.GetUserDataContainer():
if bc[c4d.DESC_NAME] == SHAPE_UD_STR:
return emitter[c4d.ID_USERDATA, descid[1].id]
return None
def create_cloner(doc):
cloner = c4d.BaseObject(Ocloner)
doc.InsertObject(cloner)
doc.AddUndo(c4d.UNDO_NEW, cloner)
return cloner
def set_tp_cloner(doc, cloner, shape):
cloner[c4d.ID_MG_MOTIONGENERATOR_MODE] = c4d.ID_MG_MOTIONGENERATOR_MODE_OBJECT
cloner[c4d.MG_OBJECT_LINK] = doc.GetParticleSystem().GetRootGroup()
shape_clone = shape.GetClone(c4d.COPYFLAGS_0)
doc.AddUndo(c4d.UNDOTYPE_NEW, shape_clone)
shape_clone.InsertUnder(cloner)
shape_clone[c4d.ID_BASEOBJECT_VISIBILITY_EDITOR] = c4d.OBJECT_UNDEF
shape_clone[c4d.ID_BASEOBJECT_VISIBILITY_RENDER] = c4d.OBJECT_UNDEF
def cache_mograph(cloner):
cache_tag = c4d.BaseTag(c4d.ID_MOBAKETAG)
cloner.InsertTag(cache_tag)
c4d.DrawViews(c4d.DRAWFLAGS_ONLY_ACTIVE_VIEW | c4d.DRAWFLAGS_NO_THREAD |
c4d.DRAWFLAGS_NO_REDUCTION | c4d.DRAWFLAGS_STATICBREAK)
c4d.CallButton(cache_tag, c4d.MGCACHETAG_BAKESEQUENCE)
def disable_emitter(emitter):
for descid, bc in emitter.GetUserDataContainer():
if bc[c4d.DESC_NAME] == ON_UD_STR:
doc.AddUndo(c4d.UNDOTYPE_CHANGE_SMALL, emitter)
emitter[c4d.ID_USERDATA, descid[1].id] = False
def bake_tp(doc, emitter):
shape = get_shape(emitter)
if not shape:
gui.MessageDialog('Please select a TP Emitter object with a Particle Shape object.')
return
cloner = create_cloner(doc)
set_tp_cloner(doc, cloner, shape)
cache_mograph(cloner)
disable_emitter(emitter)
def main():
if not op:
gui.MessageDialog('Please select a TP Emitter Null object.')
return
bake_tp(doc, op)
c4d.EventAdd(c4d.EVENT_0)
if __name__=='__main__':
main()
http://www.xsyann.com/fc4d/bake_tp.py
Il suffit de sélectionner l'objet Null TP Emitter puis de faire Script > Users Scripts > Run Script... > bake_tp.py pour baker automatiquement l'émetteur TP.
Hé bien Yann, je t'avouerai qu'au vu de ta réponse sur le forum j'étais sur à 90% que c'est toi que j'avais eu à la ferme:icon_clap:
Mais il restait 10% de doute alors je me suis abstenu.
En tout cas, encore un grand merci.
Cerise sur le gâteau: un script pour automatiser tout ça. Que dire de plus:icon_prie:
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. Tous droits réservés