Ambrosia Garden Archive

    • Help!

      Hi all, I'm a complete Blender newbie and have a few questions to ask.

      I've been modeling a ship in Google SketchUp for the last week or so. I've finally managed to import the sketchup model into Blender. I understand that to create ship sprites using p2s I will need to render the image from 36 or so angles with the following specs for the camera position and lighting.

      Quote

      Main light: Pure white, 100% brightness -- located at (if looking at ship from Nova perspective going up the screen):

      X = 100 (left 100 units)
      Y = 100 (up 100 units)
      Z = 100 (forward 100 units)
      In other words, top-left corner of screen.

      You should also turn off any ambient lighting, and add a fill light (pure white, 20-25% brightness) at X = -100 (right 100), Y = 50 (up 50), Z = 0.

      All lights should be targeted at the ship (the middle of the scene, coordinates 0, 0, 0)

      Now, that's all fine and dandy, but how on earth do I position the camera so, and adjust the lighting? If someone could please explain to me in simple steps how I can set up the blender enviroment to be able to render these frames (or possibly make a movie of the model rotating and use m2s?) Please don't use Blender lingo, I'm an idiot and will only get frustrated and try to break something.

      Cheers, Tom

    • It's actually easier than you think. The camera isn't what has to move, just the ship. If the camera were rotated around the object, then the shadows for other objects would be screwy in Nova.

      If possible, the most efficient method is to create a rendered animation of the ship performing a full 350° spin (frame 0 = 360°), each frame 10° further in rotation from the last. Once you have created this animation, change the material of the object to a flat, solid, shadowless white (adjust universal lighting to full, with black background), and repeat the process. Take both of your movie files, put them through m2s, and you'll have a full sprite and matching mask with no holes.

      EDIT: Sorry, I misunderstood your original post, somewhat. You're having troubles positioning the camera in the first place.

      Generally, I've found that the camera distance from the object is entirely arbitrary, but always remember that the closer the camera, the further the focal length and therefore, the greater the effect of visual perspective on the object. As for height, I personally use a 70° level of inclination above the object's center, for that slightly tilted top-down feel, without ruining the effect of 2D weapons that don't like to stretch to fit that third plane.

      Hope that helps.

      This post has been edited by Delphi : 07 November 2008 - 09:38 AM

    • Here is my method of exporting a ship into a sprite; rotate the ship using key frame animation and export it as a full, 32 bit .PNG animation by pressing the "animate" button instead of the "render" button. Select an empty folder to render them to so you know where they are. Download SpinApp, and use it to piece together the array of images. Voila; SpinApp will use the alpha channel from the .pngs to make a mask. Make sure to set the background to black in Blender or you'll see the outline of the ship in whatever color you did use.

    • I have two simple methods for this but one uses blender lingo, so I'll use the other.

      Alright, really specifically, what you're going to want to do is to get the camera perfectly positioned to look at the ship properly. This is really pretty easy. "1" on the numpad will put your view directly in front of your ship, and then hitting "8" three times will move your view up to the 45 degree mark, looking at your ship (make sure to center your view on the center of your ship first, but this should already be the case if you've just imported your object).

      Now on the lower left-hand corner of the main 3d view, there is a tab called "View". Go View-->Align View-->Align Active Camera to View

      Now the location of your camera is set and doesn't need changed.

      The next part is pretty easy too. You need to get your ship to rotate properly without slowing down and speeding up at either end. There are two ways to do this; one is a simpler way but requires more blender knowledge, so I'll just use the other way.

      Make sure your ship is facing away from you like it would in the first frame of a ship rotation. You'll want to push "n" and then set the z rotation to 180 to do this (if it is already facing away from you, just use 0 and subtract 180 degrees to all of my next numbers, but in my experience these will always work). Make sure that you are on frame 1 (there's a little "1" with arrows on either side of it in between the 3d view and the buttons) and then push "i" to insert a keyframe. A list will come up, and you'll want to select either "rot" or "locrotscale", but "rot" will work just fine.

      Now move up to frame 36. Set the new z rotation to -180, and repeat the "i" Insert Keyframe-->Rot command. Now go to frame 72 and set the z rotation to -540, and finally to frame 108 and set the z rotation to -900.

      You should now access the "scene" buttons. These are accessible by a button that looks like a little mountain and a moon or sun, or you can just push F10 if you don't have F10 set as a function key for something else. Then, under the big "ANIM" button there will be a "Sta:" and a "End:". Set "Sta:" to 36 and "End" to 71.

      Now you should be able to press Option (or Alt) + A and you'll see your animation. It should look just like it's supposed to at this point. However, don't just render the animation yet, you still have a couple things to do. First, under "format" you're going to want to choose "Avi Raw" as opposed to "Jpeg" and set the quality to 100. You're also going to want to set the SizeX and SizeY to twice what you want your ships dimensions to be in game (I only render them at double size so that I can use the LASIK technique, but normal size is OK too if you're not into using that technique).

      The last thing to do is to set the location for you animation to render to. If you see on the left hand side a little "/tmp/" with a folder next to it, you should click on the folder. From here you can choose where to save your animation.

      Now, if you have your lighting and background color as you like them (in blender I use one light with amb. occ but you can achieve a similar effect with multiple lights), then using "render animation" or pressing the big "ANIM" button should do the trick. I recommend doing a test render of one of the frames first to see if you like the look.

      For more frames, go to the "Anim/Playback" buttons (it should look like a squiggly arrow), and use the "MapOld" and "MapNew" features to increase the number of frames. This is an easy way to get, say, 108 frames out of a ship you've already rendered without having to redo the entire process. Remember you have to also adjust which frames are being rendered. If I had a 36 frame animation and I wanted it to instead move more smoothly, I'd set "MapOld" to 100 and "MapNew" to 300, then set "Sta:" to 108 and "End" to 215 (always one less than what it would seem like, because you're also rendering frame 108).

      Edit: m2s should be able to handle the .avi files that I use in this method, but if not you have a number of other options for exporting and I know that Spritemaker handles .avi files just fine as well. I always do masks outside of blender because it's easier (which is also why I export in avi raw format - to prevent masking problems), but they can be done by rendering the entire scene with one material. There's an easy way to do that, as well, but it's not so easy that it won't make this post somewhat longer. I just recommend doing it in Ps, Gimp, or whatever you have available (I used to make masks in Appleworks before I gained access to the copy of Ps here at the school).

      This post has been edited by Crusader Alpha : 07 November 2008 - 10:24 PM

    • Thank you so much for the in depth response!

      I've got all the way to the point where I render it to raw .avi format. The preview render looks absolutely fine, and so does the animation whilst it's rendering, but when I view the actual .avi file it's just a black screen. Nothing but black displays for the 2-3 second animation.

      Do you know where I've gone wrong/possibly how to fix it?

      Thanks, Tom.

    • I haven't seen that happen before. What program are you using to open the .avi file? If all else fails, try running it through SpriteMaker or m2s anyway and see if they'll read it. They only take a few seconds, so if it doesn't work it won't be a big time loss.

      If trying to open the .avi with a different program and/or running the avi through one of the sprite creation programs doesn't work, I'm not sure what's wrong. However, I highly recommend the blender artists forums (www.blenderartists.org/forum). They might have seen the problem before and know how to fix it. That's usually where I go if I can't get something to work.

    • Are you sure you have a light? I've had that happen to me loads of times.

      EDIT:
      Never mind, read his post more carefully and that doesn't make sense.

      This post has been edited by 101181920 : 18 November 2008 - 04:36 AM