Pesquisar neste blog:

06/01/2021

Criar números de 1 até 100 e exportar em .fbx utilizando o Script do Blender.

Necessita de números em .fbx com cores aleatórias? Abaixo está o exemplo do número 21.




Disponibilizo o script do Blender para gerar automaticamente estes números. Criei este código para gerar os números no jogo educacional "Robô Matemático - 4 Operações" que está disponível na Play Store: https://play.google.com/store/apps/details?id=com.gustavovanin.roboticmath (Free/Grátis).

Segue o script:

import bpy
import os
import random
 
#configure o número inicial e final
start=1
end=100
 
for f in range (start,end+1):
	
	#apagar todos os objetos FONT
	textObjs = [ o for o in bpy.data.objects if o.type == 'FONT' ]
	for o in textObjs:
		bpy.ops.object.delete()
	
	# configure engine to cycles
	bpy.context.scene.render.engine = 'CYCLES'
 
	#remover todos os materiais
	for m in bpy.data.materials:
		bpy.data.materials.remove(m)
 
	bpy.ops.object.text_add()
	ob=bpy.context.object
	ob.data.body = str(f)
 
	#local da fonte
	new_font ="C:\\WINDOWS\\Fonts\\times.ttf"
 
	textObjs = [ o for o in bpy.data.objects if o.type == 'FONT' ]
	print"No of text objs: %s" % len( textObjs ) )
 
	#configure os textos
	for o in textObjs:
		print( o.name )
	
		o.data.font = bpy.data.fonts.load(new_font)
 
		# Set text properties
		o.data.extrude             = 0.15
		o.data.bevel_depth         = 0.05
		o.data.bevel_resolution    = 0.05
		o.data.resolution_u        = 12
		o.data.render_resolution_u = 12
	
		# Create a new material based on the object's name
		o.active_material = bpy.data.materials.new(o.name + '.mat'#o.name 
		o.active_material.use_nodes = True
		
		#cor aleatória
		r=random.uniform(0,1)
		b=random.uniform(0,1)
		g=random.uniform(0,0.25)
		bpy.data.materials[o.name + '.mat'].node_tree.nodes["Principled BSDF"].inputs[0].default_value = (r, g, b, 1)
		bpy.ops.transform.rotate(value=1.5708, orient_axis='X', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(TrueFalseFalse), mirror=True, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False)
 
	#salvar como blend
	filepath = bpy.data.filepath
	directory = os.path.dirname(filepath)
	newfile_name = os.path.join( directory , "n"+str(f)+".blend")
	bpy.ops.wm.save_as_mainfile(filepath=newfile_name)
   
	#exportar fbx
	newfile_name_fbx = os.path.join( directory , "n"+str(f)+".fbx")
	bpy.ops.export_scene.fbx(filepath=newfile_name_fbx)

Para executar abra o Blender e clique no menu "Scripting" e finalmente em "rodar script (Alt P)"


Se desejar todos os arquivos gerados pelo código:  Clique aqui para fazer o download

Apenas o arquivo "1_TO_100.blend": Clique aqui para fazer o download

Recomendo utilizar as versões LTS (Suporte de Longa Duração) 

https://www.blender.org/download/lts/

Um abraço.

Nenhum comentário:

Postar um comentário

SIGA-NOS