Blendgraph v02 (release)

Hi All,

I finally feel that Blendgraph is ready for a public test. This is my first major script and has not been tested on a Mac or Linux. It also requires Blender 2.48a or better because I am using some of the new methods introduced in the Text object after 2.47.

If you get script errors, consult the console. I would think the most common error would be that Blendgraph can not find its own library. The library is included in the attached BLEND file and is a text object called “Blendgraph_LIB_v02”. Save this file in a folder that is in the PYTHONPATH and call it “BlendgraphLib_v02.py”

You should not experience this library failure error, however because I have written a detection mechanism that will look for the library and try to recreate it in the system path automatically. I have used OS independent path concatenation, so, Linux/Mac users, offer up some feedback if this does not work. It worked fine on one test under Windows.

The script examines a video texture and generates objects that vary in height, rotation and scale based upon information in the RGBA channels of the video. Kind of a mix between C4D Mograph and After Effects Card Dance. All animation is automatic except for the camera movement.

Because Blender does not support packing of image sequences, all I can give you is a single still image. But don’t stop there! Supply Blendgraph with an animated RGBA image sequence to see the objects change over time. I have found that quicktime RGBA movies do not work well with Blendgraph and I never tried an AVI file. You have been warned, just use image sequences.

Even a still image produces animated results. In the example file I have the alpha channel mapped to the z-scale of the Blendgraph units.

Blendgraph allows pixel information and LFOs (low frequency oscilators) to control the various parameters of all Blendgraph units.

The sample rates control how often the image is sampled in the X and Y direction. The included sample image is 64x64. The sample rate is 32x32 so every other pixel is considered as a candidate for producing a Blendgraph unit. Total possible units in this case is 1024. The pixel threshold sliders can reduce this number and filter out units based upon pixel values. Consult the console as you scrub for more detailed feedback about how many units are actually being generated, linked and unlinked from the scene on the fly.

The spread buttons allow you to control the spacing of the units in relationship to one another. To move the whole grid you can move the parent object. “bgObject”

Using an animated image map will cause the pixel information to change over time. Using the LFOs, values will change over time and you can map the LFO output to scale, rotation and position. To remove an LFOs or Pixel Channel influence over a parameter simply set it’s amplitude to zero.

In the example BLEND file, LFO3 is being used to animate the X,Y postion of the Blendgraph units. While LFO2 is used to rotate the Blendgraph units along the Z-Axis. LFO1 is adding a random amount of Z-Scale to the Blendgraph units.

Pixel mapped information is applied first and is absolute, after that LFO modification is applied and is cumulative.

In the supplied example BLEND file all units are tracking another camera that is moving along a path.

Standard Blendgraph units are generated from an internal Blender group. The objects in this group are located on another layer. These objects are cycled through, sequentially, as distribution occurs.

There is also a “Hero” object that you can link to a specific colored pixel in an image map. While the interface suggests that you can pick a color that is different than CYAN, this is not the case. This is a known bug and may be fixed in a later release. For now, simply use the CYAN color (RGB 0.0,1.0,1.0) to position the hero object.

ToDo:
Make the wiggle function work more like After Effects wiggle.
Allow color picking for Hero object.

I know this is a lot to read and take in, but after you get used to the concept, it is fun and easy to make a bunch of objects move all over the place.:cool:

I hope people try it out and I hope it works!

PS: I have added my official test driver PNG sequence to ShareCG.com.
Use this sequence with the attached BLEND file.
http://www.sharecg.com/v/31608/Texture/Blendgraph-Release-Driver

–>Original post.

Posting a link to my first encouraging output from the Blendgraph script.
http://www.vimeo.com/2318644

Attachments


Blendgraph_v02.blend (806 KB)

I added another video to vimeo. A more polished animation using the Blendgraph script.

http://www.vimeo.com/2332186

Attachments


Very good work. I am excited about your progress. Will you release the script as open source?

I am considering it, however, the script does reveal some bugs in Blender’s ability to update an image sequence or movie texture on a frame change event. I wouldn’t want to release something that does not work for every one. I would need to write a document that describes the bug and how to setup the blender interface to avoid the Blender bug.

I have added a feature to the Blendgraph script. It now uses a series of meshes in a group during it’s object distribution cycle.

Here is a cube and cyclinder belonging to the same group.
http://www.vimeo.com/2335775

Attachments


Very cool. Hope the blender team can get those bugs under control.

I added another video to demonstrate a couple more enhancements to the Blendgraph script.

In this example mutiple single character font objects were converted to mesh and added to the distribution group. The letters spell out “blendgraph”.

http://www.vimeo.com/2365418

Attachments


Yet another example using the Blendgraph script.
http://www.vimeo.com/2369894

This video is using the models from the cityscript found here on blendpolis.
http://blendpolis.de/f/viewtopic.php?t=18926&postdays=0&postorder=asc&start=0

Attachments


I added another feature to the Blendgraph script and created a GUI interface that interactively adjusts the grid after generation. The new feature I am calling the “Hero” mesh. You can specify an object to be used whenever a “pink” pixel is detected in the source video. When the pink pixel is detected, the “Hero” mesh is used instead of the next item in the Blendgraph group.

At this example link, the red cube is the “Hero” mesh.
http://www.vimeo.com/2389087

Attachments


Grrrrrrrreat script!!! no words, just to say “i want to try it soon!”
Can be? :wink:
Thanks a lot for the efforts

I have added another Blendgraph test video. Christmas chess pieces.

You can view it here:
http://www.vimeo.com/2460033

This is the first video I was able to produce while simply using the Blendgraph script as a tool. I did not have to dig in the code once.

Attachments


Really impressive. So, you´ll gonna release this script? It will be a very interesting tool to use! :wink:

looks amazing, can’t wait to try!

Neat idea. Can you tell us about the source image sequences you used?

The source image sequences are in the PNG format. Each frame has an alpha channel as well, so RGBA is required. In some of the animations on vimeo, you will see a thumbnail in the corner. This is the source animation that is driving the Blendgraph distribution routine.

The hooladander pack can be used as a Blendgraph source:
http://gomedia.us/arsenal/go-media-motion-pack-sample-animated-hooladanders.html

I finally had a chance to pull down the Yo Frankie game engine. I pulled some of the scene elements into Blendgraph.

You can view the video here:
http://www.vimeo.com/2524034

Attachments


Great work. I’d love to try this script. I hope you will please release it soon, even if it’s just in the alpha stages of development.

Was there another older Blender script that does something similar to this? I saw some Blender videos with this type of effect before, but I could never track down the method or script used for their creation.

Releasing script, bumping this thread to the top!:smiley:

Attachments


this script is released!!! thank you very much, i’ve been looking forward to this one for some time now!

Thank you! I’m looking forward to trying this out.