Strict Standards: Only variables should be passed by reference in /homepages/33/d411990001/htdocs/spip/config/ecran_securite.php on line 283
20th Century Fox Opening - Ian’s Web Page

20th Century Fox Opening

mercredi 28 mars 2012
par  Yann
popularité : 2%

Automatisation de génération d’ouverture type « 20th Century Fox »

Le fichier blender est basé principalement sur le travail de Matt Hoecker : http://blender.sixmonkeys.geek.nz/albums/album41/FOX_Logo_by_Matt_Hoecker.blend J’ai aussi utilisé le travail suivant : http://ballyweg.net/20th-century-fo... une mine d’or pour la suite de mes travaux d’automatisation pour Blender.

Attention le temp de calcul d’une animation est très long, + de 2h sur une machine en Core i7 !!!

Fichier Blender
Blender - 5.8 Mo

Vidéo de présentation

Code source

import bpy
from bpy.props import *
# for modification of dimensions
DimXTwenty = bpy.data.objects['Text_twenty'].dimensions.x #max length
DimYTwenty = bpy.data.objects['Text_twenty'].dimensions.y  #initial height
DimZTwenty = bpy.data.objects['Text_twenty'].dimensions.z #initial depth
DimXTh = bpy.data.objects['Text_th'].dimensions.x #max length
DimYTh = bpy.data.objects['Text_th'].dimensions.y  #initial height
DimZTh = bpy.data.objects['Text_th'].dimensions.z #initial depth
DimXCentury = bpy.data.objects['PlateTwenty'].dimensions.x #max length
DimYCentury = bpy.data.objects['Text_century'].dimensions.y #initial height
DimZCentury = bpy.data.objects['Text_century'].dimensions.z #initial depth
DimXFox = bpy.data.objects['PlateCentury'].dimensions.x #max length
DimYFox = bpy.data.objects['Text_fox'].dimensions.y  #initial height
DimZFox = bpy.data.objects['Text_fox'].dimensions.z #initial depth
ResizePrecision = 0.05
#Text stuff
Text_twenty="20"
Text_th="th"
Text_century="CENTURY"
Text_fox="FOX"
ActiveObjectTextTwenty = bpy.data.objects['Text_twenty']
ActiveObjectTextTh = bpy.data.objects['Text_th']
ActiveObjectTextCentury = bpy.data.objects['Text_century']
ActiveObjectTextFox = bpy.data.objects['Text_fox']
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextTwenty
bpy.context.scene.objects.active.select = True
#changing text
bpy.ops.object.editmode_toggle()
bpy.ops.font.delete(type='ALL')
bpy.ops.font.text_insert(text=Text_twenty, accent=False)
bpy.ops.object.editmode_toggle()
#changing font
ActiveObjectTextTwenty.data.font = bpy.data.fonts['GOTHICB.TTF']
#deslect
bpy.ops.object.select_all(action='DESELECT')
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextTh
bpy.context.scene.objects.active.select = True
#changing text
bpy.ops.object.editmode_toggle()
bpy.ops.font.delete(type='ALL')
bpy.ops.font.text_insert(text=Text_th, accent=False)
bpy.ops.object.editmode_toggle()
#changing font
ActiveObjectTextTh.data.font = bpy.data.fonts['GOTHICB.TTF']
#deslect
bpy.ops.object.select_all(action='DESELECT')
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextCentury
bpy.context.scene.objects.active.select = True
#changing text
bpy.ops.object.editmode_toggle()
bpy.ops.font.delete(type='ALL')
bpy.ops.font.text_insert(text=Text_century, accent=False)
bpy.ops.object.editmode_toggle()
#changing font
ActiveObjectTextCentury.data.font = bpy.data.fonts['GOTHICB.TTF']
#deslect
bpy.ops.object.select_all(action='DESELECT')
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextFox
bpy.context.scene.objects.active.select = True
#changing text
bpy.ops.object.editmode_toggle()
bpy.ops.font.delete(type='ALL')
bpy.ops.font.text_insert(text=Text_fox, accent=False)
bpy.ops.object.editmode_toggle()
#changing font
ActiveObjectTextFox.data.font = bpy.data.fonts['GOTHICB.TTF']
#deslect
bpy.ops.object.select_all(action='DESELECT')
#Text dimension modification
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextTwenty
bpy.context.scene.objects.active.select = True
#for Text_century
if (Text_th==""):
    #moving twenty text to center
    bpy.data.objects['Text_twenty'].location.x += DimXTh/2
    while (bpy.data.objects['Text_twenty'].dimensions.x > DimXTwenty+DimXTh):
        #realise modification
        bpy.data.objects['Text_twenty'].data.size -= ResizePrecision
        bpy.data.scenes['Spotlights'].update() #needed to update object datas inside the loop; otherwide infinite loop
else:
    while (bpy.data.objects['Text_twenty'].dimensions.x > DimXTwenty):
        #realise modification
        bpy.data.objects['Text_twenty'].data.size -= ResizePrecision
        bpy.data.scenes['Spotlights'].update() #needed to update object datas inside the loop; otherwide infinite loop
           
bpy.data.objects['Text_twenty'].dimensions.y = DimYTwenty
#convert to mesh to avoid font faces artefact
bpy.ops.object.convert(target='MESH', keep_original=False)
#deslect
bpy.ops.object.select_all(action='DESELECT')
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextTh
bpy.context.scene.objects.active.select = True
#for Text_century
while (bpy.data.objects['Text_th'].dimensions.x > DimXTh):
    #realise modification
    bpy.data.objects['Text_th'].data.size -= ResizePrecision
    bpy.data.scenes['Spotlights'].update() #needed to update object datas inside the loop; otherwide infinite loop
bpy.data.objects['Text_th'].dimensions.y = DimYTh
#convert to mesh to avoid font faces artefact
bpy.ops.object.convert(target='MESH', keep_original=False)
#deslect
bpy.ops.object.select_all(action='DESELECT')
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextCentury
bpy.context.scene.objects.active.select = True
#for Text_century
while (bpy.data.objects['Text_century'].dimensions.x > DimXCentury):
    #realise modification
    bpy.data.objects['Text_century'].data.size -= ResizePrecision
    bpy.data.scenes['Spotlights'].update() #needed to update object datas inside the loop; otherwide infinite loop
bpy.data.objects['Text_century'].dimensions.y = DimYCentury
#convert to mesh to avoid font faces artefact
bpy.ops.object.convert(target='MESH', keep_original=False)
#deslect
bpy.ops.object.select_all(action='DESELECT')
   
#selecting Text
bpy.context.scene.objects.active  = ActiveObjectTextFox
bpy.context.scene.objects.active.select = True
#for Text_fox
while (bpy.data.objects['Text_fox'].dimensions.x > DimXFox):
    #realise modification
    bpy.data.objects['Text_fox'].data.size -= ResizePrecision
    bpy.data.scenes['Spotlights'].update() #needed to update object datas inside the loop; otherwide infinite loop
bpy.data.objects['Text_fox'].dimensions.y = DimYFox
#convert to mesh to avoid font faces artefact
bpy.ops.object.convert(target='MESH', keep_original=False)

Météo

Metz, 57, France

Conditions météo à 10h30
par weather.com®

Soleil et nuages épars

10°C


Soleil et nuages épars
  • Vent : 3 km/h - N/D
  • Pression : 989 mbar tendance symbole
Prévisions >>

Prévisions du 21 septembre
par weather.com®

Soleil voilé

Max 20°C
Min 7°C


Soleil voilé
  • Vent : 11 km/h
  • Risque de precip. : %
<< Conditions  |  Prévisions >>

Prévisions du 22 septembre
par weather.com®

Soleil et nuages épars

Max 21°C
Min 9°C


Soleil et nuages épars
  • Vent : 11 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 23 septembre
par weather.com®

Soleil et nuages épars

Max 21°C
Min 10°C


Soleil et nuages épars
  • Vent : 9 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 24 septembre
par weather.com®

Soleil voilé

Max 21°C
Min 9°C


Soleil voilé
  • Vent : 12 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 25 septembre
par weather.com®

Soleil

Max 20°C
Min 10°C


Soleil
  • Vent : 12 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 26 septembre
par weather.com®

Orage épars

Max 19°C
Min 10°C


Orage épars
  • Vent : 11 km/h
  • Risque de precip. : 40%
<<  Prévisions  >>

Prévisions du 27 septembre
par weather.com®

Très nuageux

Max 20°C
Min 11°C


Très nuageux
  • Vent : 9 km/h
  • Risque de precip. : 20%
<< Prévisions


Brèves

25 février 2011 - Scilab : Application GUI

Application GUI dans Scilab : Étude des systèmes automatiques. Systèmes Linéaires

9 janvier 2011 - Modèle 3D dans Scilab

Afficher des patchs dans Scilab à partir de Modèle 3D blender. Modèle 3D dans (...)

2 octobre 2010 - Plugins LDraw pour Blender 2.49

Importez vos modèles LEGO (MLCad et autres) dans blender grâce au plugin d’importation (...)