Blender (jusqu'à 2.49)
Python
Module bpy 
fonction passIndex 
    Début   Index
précédentScript Python
Macro python : LMRD Suivant

Ce script ajoute ou modifie la valeur qui se trouve le champ passIndex de chaque objet 3d (mesh, meta, nurbs) de la scene courante. 

Il peut être copié dans le  répertoire .blender/scripts pour apparaître dans les menus Scripts au niveau Object.

Trois options sont possibles. Elles sont délectionnées au travers de ce menu  :

Avec l'option Position, le script collecte les objets mesh, curves et metabal de la scène courante pour  leur attribuer la valeur d'index dans la liste qu'il vient ainsi de constituer. L'objet qui se trouve en première position aura la valeur 1, le second la valeur 2 et ainsi de suite.

Avec l'option Distance,  le script collecte les objets  du même type mais leur attribue une valeur d'index en fonction de leur éloignement de la caméra. 

Petit problème : plusieurs objets peuvent recevoir la même valeur d'index s'ils se trouvent à la même distance.


Avec l'option From Selection, le script copie la valeur de l'objet actif et l'attribue à tous les aurtes objets sélectionnés.
 

#!BPY

# """
# Name: 'Object Index'
# Blender: 245
# Group: 'Object'
# Tooltip: 'Set the object index  used in the the render pass.'
# """

__author__ = 'Jm Soler'
__version__ = '1.0.1 2007/12/16'
__url__ = ["""jms\'s site, http://jmsoler.free.fr/didacticiel/blender/tutor/bpy_object_passIndex.htm""",
     """Support forum, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender""" ]
__email__ = ["jms, jmsoler:free.fr"]
__bpydoc__ = """\
 This script changes the index value of current scene's objets.

 Three options :
  POSITION,  get the complete list of objects and the index in 
             the list become the object index. 
  DISTANCE,  get the complete list of objects but the index 
             depend from the dstance to the active camera.
             Last modifs : a test to stop if there is no active camera. 

  SELECTION, copy the index from the active object to all 
              selected objects.

 Supported by :<br>
   Meshes, metaballs, curves.
 

doc :
 POSITION = 1 # position dans la liste d'objets
 DISTANCE = 2 # position dans l'eloignement de la camera, 
               1 a 256, correspond  au nuancier de gris RGB 
 SELECTION = 3 # copie l'index de l'objet actif vers tous 
              les objets selectionnes
 

"""

# -------------
# Copyrigth jms soler Decembre 2007
# -------------
import Blender, bpy
from Blender import Mathutils
from Blender.Mathutils import *
 
 

name = "INDEX OBJ%t| POSITION%x1| DISTANCE%x2| FROM SELECTION%x3"
result=Blender.Draw.PupMenu(name)

if result:
  sce= bpy.data.scenes.active
  cam=sce.getCurrentCamera()
  if cam==None:
   name = "WARNING%t|NO ACTIVE CAMERA. Add one and Make F12 ." 
   Blender.Draw.PupMenu(name)
  else: 
   if result==2:
     clipend=cam.data.clipEnd
     clipstart=cam.data.clipStart
     coef=clipend/256.0 
   elif result==1: 
     n=0
   elif result==3: 
     n=sce.objects.active.passIndex
     print n

   for obj in sce.objects:
    if obj.getType()== 'Mesh' or obj.getType()== 'Meta' or obj.getType()== 'Nurbs' :
     if result==2:
       vec=Vector(obj.loc)-Vector(cam.loc)
       obj.passIndex=int((vec.magnitude-clipstart) / coef)

     elif result==1:
       n+=1
       obj.passIndex=n

     elif result==3 and obj.isSelected():
       obj.passIndex=n 
 

 


 
précédentScript Python
 Macro python : LMRD Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube