I'm a happy camper. It finally works with my wacom tablet. Not that I have anything against photoshop, it's just that I would like to be able to have a open source alternative at home.
Luego de varias charlas con gente por IRc como venomgfx y malefico me terminaron de convencerme de que me deje de boludear con el 3d y antes de seguir perdiendo el tiempo me ponga a desarrollar la animatica. Es cierto que uno siempre piensa que lo tiene todo en la cabeza y entonces lo vas haciendo sobre la marcha en blender, pero en realidad no es tan asi, de hecho por algo no terminé ningun proyecto, es porque nunca escribi ni dibuje los planos necesarios, nunca determiné las acciones que el personaje va a desarrollar (ni expresiones,shapes faciales), y ovbiamente tampoco sabia cuanto iba a durar porque no tenia idea de la duracion de cada toma.
Entonces hice un stop en la produccion y me propuse hacer la animatica, claro que no es tan sencillo como decirlo!, paso como un mes de esa charla y recien hoy me puse a laburar en el storyboard y el sonido (sugerencia de malefico tambien) y mi sorpresa fue muy buena al notar que la cosa empieza a tomar forma y me deja en claro muchos aspectos que me harán la tarea mil veces mas sencilla de lo que era antes.
En fin, no mas palabras , les dejo lo que pude hacer hasta ahora en la animatica. El corto no es mucho más prolongado que esto, se extiende masomenos 1 minuto ó 1 minuto y medio más.
The use of scripts to create routines and do repetitive tasks in 3d modeling is a common practice among more experienced artists, and for architectural modeling it’s no different. In Blender 3D we use Python to create scripts that can help us in the modeling process. From time to time, I show a few scripts [...]
Related posts:
Hi all
Wow! every time I start a new project I get some comments of concern from the blender community about myself spreading my code time across them . I have started many projects since I got involved in Blender development:
Volumetrics, a smoke simulator, GI pathtracing (unbiased), GI photonmapping (biased), Bloxel (Blender voxel [...]
I’m back on facebook, not particularly because I love facebook (I hate facebook, because millions of people are creating great content and then posting it on someone else’s website), but because of that new game FarmVille. Farmville is a playing experience that has infected the brains of all my normally grown-up and business like friends and turned them into computer game addicted kids.
If you haven’t played it yet – don’t worry you will, you will, it won’t be long before you get an invite because part of the action of the game is persuading friends to join so that you can enjoy greater farm-related riches – if you haven’t played it, it’s like that Tamagotchi key-ring game of the 90s, but a bit more complicated and with better graphics.
And FarmVille has some of the addictive qualities of Tamagotchi too, where according to Wikipedia,
“Some parents also express concern because the device constantly calls the user to it with penalties for ignoring its signal, including death, starvation, and sickness, effectively keeping the device in the child’s consciousness at all times and interfering with other, potentially constructive, activities.”
If you ignore your farm crops can die, and you can lose FarmVille money. I’ve already experienced apparently sane adult people breaking off conversation over dinner to say, “I really must milk my goat.” Before running out the door leaving their meal half eaten.
It’s a mind bending plague of a game, but it does have great graphics, and it’s fun to play, and my crop of wheat is almost ready to be harvested.
OK, I’ve decided to try my boot USB stick with a bigger Linux, but which one? This online test zegenie Studios Linux Distribution Chooser recommended that I use Ubuntu, and it does seem like a good choice, but the download is 600 MB big. I only have an internet contract that allows me 1GB web surfing per month – and so 600 MB would be a huge chunk of that.
I hate the way companies impose these stupid small limits on internet use. Is it significantly more expensive for a company to provide 10 GB of service than 1 GB, or is it just a scheme to make money from us powerless idiots who have to use the service? I know which I suspect.
Anyway, as my ancient Viao laptop doesn’t even have Wifi I’m going to have to hop on my girlfriend’s computer to download the file. Right now though she’s working on important things – read FarmVille – and so it’ll be a while before I can do my Doctor Frankenstein impression, jump on top of the laptop, look up to the imaginary film camera in the sky and scream… “Live! Live! Live!”
Or make the boot USB and switch on the computer – not as dramatic but probably more accurate.
I’m reusing the 3d image of a laptop with skull and cross bones on the screen being attacked by files, it seemed to fit and I like it very much. I made the illustration with the Blender 3D suite, and I was wondering if that will run on the new Linux laptop, assuming I get it working. It appears that the Blender 3d visuals creator will run no problem on Ubuntu, so the plan is on go ahead. That 600 MB is taking a long time to download though.
Sometimes you need to execute a script or a function that loops in a "for loop". And you don't want the script to continue before the procedure is done. One solution can be to use the subprocess module. In the following example I'm going to convert some files that are located in a folder.
(I'm using the "convert" command here with is a function that exist under linux)
import os, subprocess
img_path = '/myserver/pictures'
for pic in img_path: image = os.path.join(img_path, pic) convert_path = os.path.join( img_path, 'converted' ) if not os.path.exist(convert_path): os.makedirs(convert_path) basename = pic.split('.') convert_image = os.path.join(convert_path, basename ) convert_command = 'convert %s %s.jpg' % ( image, convert_image ) convert = subprocess.Popen(convert_command, shell=True) convert_wait = convert.wait() if convert_wait != 0: print 'Conversion of %s Failed!' % image
So we might want to make this as a little script that we can use when ever we want in what ever situation. This is how we want it to work
con2jpg ( folder ) ( to what? )
So we also need to use the sys command to capture what the user has given us.
example (name the file con2jpg.py):
#/usr/bin/env python import sys
print sys.argv[0] print sys.argv[1]
If I now in a terminal type: python con2jpg.py hello the feedback will be:
Instead of "hello" we can type a path and we can extend it to have another argument which could be JPG, or TGA or whatever. It's always possible to build in traps if the user has made any mistakes. But we need the 'path' and which 'type'
#/usr/bin/env python import sys
image_path = sys.argv[1] image_type = sys.argv[2].lower() #add the lower() to make it easier
Now we can start to use the for loop that we made and make a definition to make it a bit easier to read. I'm skipping forward quite fast here, but you can see and learn from the code (and don't be afraid to ask).
#/usr/bin/env python import sys, os, subprocess
valid_files = ['.tga', '.png', '.tif', '.jpg' ]
def main(): if sys.argv[1] == '-h' or '--help': print ''' USAGE: con2type path extension example: con2type /home/foo/Pictures png ''' else: image_path = sys.argv[1] image_type = sys.argv[2].lower() myFiles = found_images(image_path) if not myFiles != 0: print 'PATH: "%s" is incorrect' % image_path else: convert_files(myFiles, image_path, image_type) return 0
def found_images(path): if os.path.exists(path): img_files = [] img_search = os.listdir(path) for img in img_search: for ext in valid_files: if not img.startswith('.'): if img.endswith(ext): if os.path.isfile(os.path.join(path, img)): img_files.append(img) return img_files else: return 1
In the last 2 weeks, we fixed a few showstopper bugs found during the last minute of full Freestyle integration into Blender 2.5. Now the Freestyle branch should compile and run without a hitch.
In the meantime, the dev team was working on SVGWriter as a pilot investigation of the new RNA API in Blender 2.5. This made us aware of an API design issue in the branch concerning the notion of context. In Blender 2.5, a context refers to a target object to which a certain operation is applied. For example, rendering is an operation, and a scene and associated objects/data used in the scene comprise the context of the rendering operation. The problem is that as of this writing, Freestyle does not have a mechanism that allows style modules to access the context.
Contexts do not matter if you have only one scene in a .blend file, since all data is basically associated with the scene, and it is obvious which scene is the target of the rendering operation. When we have multiple scenes, however, we need a way to know which scene is the target. Try to open a new Blender window (Ctrl Alt w) and add a new scene (by pressing the “+” button next to the current scene name on top of a Blender window). Now you have 2 scenes being manipulated in 2 separate windows at the same time. You can start rendering with respect to each scene by hitting the render button in the corresponding window. Clearly, it does matter to know which scene should be rendered.
Note that the context issue is new in Blender 2.5. Before that, Blender was able to manipulate only one scene, since Blender did not have multiple main windows. That is why there was the notion of the current (active) scene, which can be retrieved by Blender.Scene.GetCurrent() in Python. In 2.5, this API function is no longer available.
As a temporary workaround, SVGWriter always refers to bpy.data.scenes[0] to get the first scene in the list of available scenes in a .blend file. This means that even if you have multiple scenes, the rest of the scenes never get rendered.
It is likely that the Freestyle Python API needs to be revised in the manner that style definitions are placed either in a method or in a function (instead of the module body) and a context is passed as an argument of the method/function. We are going to work on this in the next weeks.
Albinal writes:
I've been short-listed in the final 15 of the E Stings competition with "Dizzy Dave". Yee-haa! This is my second time in this competition but last time out I didn't win a sausage. So, fingers crossed for better luck this time!
In order to win one of the big prizes the finalists had to submit [...]
A friend just gave me a laptop. A dead laptop, and on top of that, a dead laptop with a faulty CD drive. How on earth was I to get the life giving blood of an operating system into this computer, past the barrier of the dodgy CD drive.
That didn’t work so following some advice from a real talented geek I tried making a boot disk on a USB drive with UNetbootin. And my goodness it worked. I had to change the Bios settings to let the computer boot from USB, but it worked!!!
Tiny core Linux reported all kinds of errors on the ancient laptop that needed to be brought back from the dead, and when it was done all it offered was a command line, but now that I know it works I’ll try a bigger and easier to work with chunk of Linux.
Right now all my computer says is tcbox something or other, but that’s a whole lot more than it was saying when I started fumbling about with it. Right now I’m feeling a little geeky and proud that I’ve got that far.