Jump to content



Photo
- - - - -

THE TOY FACTORY


  • Please log in to reply
52 replies to this topic

#1 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 30 December 2009 - 10:39 PM

What it is

A Set of 3 Primitives (Sphere, Cylinder, Plane) at different size

What these do.
- Fully support transparency via Alpha Channel From Targa
- Texture Mapping and SphereMap reflection
- Can be positionned at any height, even bellow the playfield wink.gif
- Can be rotated on any axis (x-y-z)
- Can be moved on any axis (x-y-z)
- Can be used wisely to build complicated object that are interactive!
- Animatable with Scripting. modifiable Speed. see the Toy reference in the FP manual.

Note** they work ONLY with the version 1.9.20081225 of Future Pinball. Chris was to remove this feature in the next version
so if you use these objects, you might want to put that little note in the infos or your table, so people know what build they need to make them work properly.

Note2** Not every feature from the manual are Active. those I can assure that work are listed bellow

---------------------------------------------------------------------------------------------------------------------------
FROM THE MANUAL

Table Object: Toy

The Toy object allows for custom 3D models to be controlled via the script and made to animate, move and rotate. This object is very advanced and requires a minor understanding of 3D movement/rotation principles. Toy objects are generally 'one off' special objects on pinball tables which are specific to that game and are used to add a bit of uniqueness to the table. Toy models can only be crafted by the Future Pinball development team

EDITOR PROPERTY (DESIGN TIME)

When you create a Toy on your table, the object will be drawn onto the current workspace.
Selecting this object will bring up the following property sheet:

Name
Sets the name of the object which is used to reference the object via Script events. The name must be unique for the table and may not contain any spaces. As with all Object Names, you should give a descriptive name to your object.


Model
This field shows the list of available models which have been loaded into your table. Future Pinball contains a large collection of models in the libraries supplied. You can import more models into your table by using the Model Manager. Only models which have the same object type of the current object are listed. Selecting a model will also show a small preview picture of the selected Model.

Texture
Allows you to wrap a texture around the object. Textures are imported into the Table via the Texture Manager. Selecting a Texture will also show a small preview picture of the texture.

Colour
Defines the colour of the Object. If the object is to be rendered with a texture then the texture will be tinted with this colour. If the object has no texture then it will be rendered in this colour. It is best never to use Full Strength colours (i.e., where either the Red, Green or Blue components are at their Limits) as this will adversely affect how the object is Shaded by the Lighting system. For more information on the use of Colour refer to the Special Graphic Processing chapter

Sphere Mapping
If Enabled (Ticked ), then any texture is Sphere Mapped onto the object. For more information on Sphere Mapping refer to the Special Graphic Processing chapter


Transparency
The Transparency slider allows you to make the Toy transparent (to simulate translucent plastics). With the slider all the way over to the right (max), then the ramp is fully opaque. Moving the slider to the left will make the object more transparent. When a object is transparent any objects which are behind it (or below it) will also show through. Objects which are transparent (or semi-transparent) are drawn in a second rendering phase of the game engine. This is so it can draw objects underneath them as well as tint them to the colour of the surface.

There is a special case to the Transparency slider. If it is all the way to the left (at its minimum value) then the object will be drawn in the second rendering pass but the object will NOT be transparent. This is so you can render textures on the surface which either have a colour marked as being transparent (in the case of BMP textures via the Texture Manager or you are using a TGA file with an alpha channel.

SCRIPTING
This Section describes the object and how it can be accessed and controlled via the script at run-time. Note that you access the object via the name given in the Name property field

<Integer> .UpdateInterval = { Period in Milliseconds }

This property allows you to change the animation speed of the object when it is Animating (changing key frames in the 3d model. The smaller the value the faster the animation will run. The value must be at least 25 milliseconds.

Script Example: myToy.UpdateInterval = 100


<floating point> .Tx = { Position }

This property allows you to get or set the X coordinate of the object on the playfield. If you set this value then this will stop any current MoveTo() action currently being performed. Future Pinball does not limit the value of this property so you must be careful not to set it to a position outside of the playfield.

This diagram will help explain the different axis's in 3D. +Z is towards the front of the playfield (-Z is towards the backbox). +Y is above the playfeild. 0, 0, 0 is the exact center of the playfield and on its surface so the majority of object will have a +Y position.

Script Example: myToy.Tx = 100



<floating point> .Ty = { Position }

This property allows you to get or set the Y coordinate of the object on the playfield. If you set this value then this will stop any current MoveTo() action currently being performed. Future Pinball does not limit the value of this property so you must be careful not to set it to a position outside of the playfield.

For more information refer to the .Tx property.


<floating point> .Tz = { Position }

This property allows you to get or set the Z coordinate of the object on the playfield. If you set this value then this will stop any current MoveTo() action currently being performed. Future Pinball does not limit the value of this property so you must be careful not to set it to a position outside of the playfield.

For more information refer to the .Tx property.



<floating point> .AngleXZ = { Angle in Degrees }

This property allows you get or specify the rotation angle of the object on the XZ axis. If you set this value then this will stop any current RotateXZ() command which may be currently being processed. Values will be between 0.00 and 359.99 degrees.

This diagram will help explain the different rotation axis's and how the effect the Toy object.



Script Example:

' set the angle to 22.0 degrees
myToy.AngleXZ = 22.0




<floating point> .AngleXY = { Angle in Degrees }

This property allows you get or specify the rotation angle of the object on the XY axis. If you set this value then this will stop any current RotateXY() command which may be currently being processed. Values will be between 0.00 and 359.99 degrees. For more information refer to the .AngleXY property.



<floating point> .AngleYZ ={ Angle in Degrees }

This property allows you get or specify the rotation angle of the object on the YZ axis. If you set this value then this will stop any current RotateXZ() command which may be currently being processed. Values will be between 0.00 and 359.99 degrees. For more information refer to the .AngleXY property.




.MovelTo ( <floaing point> X, <floaing point> Y, <floaing point> Z, <floaing point> Speed )

This method also allows you to move the Toy object to any location in the Future Pinball 3D world. Future Pinball does not limit the values of this method so you must be careful not to move it to a position outside of the playfield (unless ofcourse you want to).

X The X coordinate to move the object to.

Y The Y coordinate to move the object to.

Z The Z coordinate to move the object to.

Speed The Speed at which the object will move. Future Pinball uses logarithms to control the speed of the object so the object will ramp up to speed which reflects the time it takes for a pinball motor to wind up to full speed. The speed must be positive. Specifying a negative speed will have no affect.


For more information on 3d coordinates refer to the .Tx property.

Script Example:
' lower the object into the playfield (draw bridge in bk2k)
myToy.MoveTo myToy.Tx, myToy.Ty-42, myToy.Tz




.RotateXZ ( <floaing point> Speed, <Integer> StopAtAngle )

This method also allows you to rotate the object on the XZ axis at the specified speed. The rotation will stop when the XZ angle reaches the StopAtAngle (if specified) else the object will continue to rotate forever.

Speed The speed of the Rotation. If Positive then the object will move clockwise else if negative the rotation will be counter-clockwise.

StopAtAngle (optional) If specified then the object will stop rotating on this axis when it reaches the speficied angle. Valid ranges are between 0 and 369 degrees.


For more information on 3d rotation axis's refer to the .AngleXZ property.

Script Example:

' spin clockwise (forever)
myToy.RotateXZ 50


Rotate anti-clockwise until we reach the stop angle of 90 degrees;

myToy.RotateXZ -50, 90




.RotateXY ( <floaing point> Speed, <Integer> StopAtAngle )

This method also allows you to rotate the object on the XY axis at the specified speed. The rotation will stop when the XY angle reaches the StopAtAngle (if specified) else the object will continue to rotate forever.

Speed The speed of the Rotation. If Positive then the object will move clockwise else if negative the rotation will be counter-clockwise.

StopAtAngle (optional) If specified then the object will stop rotating on this axis when it reaches the speficied angle. Valid ranges are between 0 and 369 degrees.


For more information on 3d rotation axis's refer to the .AngleXZ property.


.RotateYZ ( <floaing point> Speed, <Integer> StopAtAngle )

This method also allows you to rotate the object on the YZ axis at the specified speed. The rotation will stop when the YZ angle reaches the StopAtAngle (if specified) else the object will continue to rotate forever.

Speed The speed of the Rotation. If Positive then the object will move clockwise else if negative the rotation will be counter-clockwise.

StopAtAngle (optional) If specified then the object will stop rotating on this axis when it reaches the speficied angle. Valid ranges are between 0 and 369 degrees.


For more information on 3d rotation axis's refer to the .AngleXZ property.
--------------------------------------------------------------------------------------------------------------------------------------------------


Steve

Edited by Steve Paradis, 30 December 2009 - 10:58 PM.

I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#2 wtiger

wtiger

    Pinball Fan

  • VIP
  • 1,148 posts
  • Location:Los Angeles, CA

  • Flag: United States of America

  • Favorite Pinball: Junkyard



Contributor

Posted 30 December 2009 - 11:48 PM

Thanks Steve. These should come in very handy!

#3 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 21 January 2010 - 02:11 AM

Nice one Steve, I missed this announcement as we were too busy having a baby. smile.gif

Pinball Addict


#4 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 21 January 2010 - 03:30 AM

QUOTE (Gravy @ Jan 20 2010, 09:11 PM) <{POST_SNAPBACK}>
Nice one Steve, I missed this announcement as we were too busy having a baby. smile.gif


No problem! hope all the happy family is fine smile.gif...please don't neglected us though wink.gif
I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#5 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 21 January 2010 - 04:17 AM

doing very well thanks Steve, I think Daisy was probably asleep on my lap when I typed that last message, and for someone who was never really sure if kids were in the plan she certainly makes my heart all mushy.

Pinball Addict


#6 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 21 January 2010 - 10:58 AM

by the way, is this newish or did you make them earlier last year? I seem to remember talking about this at FP forums but cant remember you actually releasing them?

Pinball Addict


#7 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 21 January 2010 - 04:27 PM

QUOTE (Gravy @ Jan 21 2010, 05:58 AM) <{POST_SNAPBACK}>
by the way, is this newish or did you make them earlier last year? I seem to remember talking about this at FP forums but cant remember you actually releasing them?



I release them on the 31st of decembre, for panic reason wink.gif Still they are useful since everything is "scriptable" in term of position and rotation but I did a little internal survey and I will keep doing toys since the community benefits from them. the community don't have to suffer for individual behaviors.

Steve
I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#8 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 21 January 2010 - 10:47 PM

.MovelTo is very interesting, you could have a train that travels along a track or a car that moves?

Ive forgotten, are the toys able to interact with the ball?

Pinball Addict


#9 Popotte

Popotte

    Pinball Fan

  • VIP
  • 804 posts
  • Location:Paris

  • Flag: France

  • Favorite Pinball: World Fair



Posted 21 January 2010 - 10:52 PM

QUOTE (Gravy @ Jan 21 2010, 11:47 PM) <{POST_SNAPBACK}>
.MovelTo is very interesting, you could have a train that travels along a track or a car that moves?

...

Yes.

Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

PopotteDMDredo.gif

 


#10 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 22 January 2010 - 12:08 AM

they cannot interact with the ball, you have to fake it. (walls)
think of them as 3d overlays

regarding moveto...you only think in 2D wink.gif you could launch a shuttle or lift a bridge, you are not constraint in any direction

Steve

Edited by Steve Paradis, 22 January 2010 - 12:11 AM.

I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#11 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 22 January 2010 - 12:40 AM

speaking of launching a shuttle, it would seem that you can move toys outside the table, so in theory you could actually launch a shuttle/rocket up into the room and even beyond? Perhaps then have it come back down again at another point in the game.

It might be a nice idea to have a table that changes its playfield image so that the rocket takes off from say Earth and the playfield has trees and water etc, then the playfield image changes to a cratered moonscape and the rocket comes back down again. Nice eh? You might also have an intermediate image on the playfield of a starfield to simulate that the player is travelling through space temporarily before arriving at the moon.

Or how about a "buck rogers in the 25th Century" style theme where he takes off in a spaceship and the earth is all nice and flowery and green... then when he returns (the rocket) a few hundred years later its the same basic layout but the earth has been destroyed and the playfield image and other textures change to reflect that destruction.

I know someone is going to say "go do it then". Unfortunately ideas are about all Im capable of at the moment.

Has any table actually made use of .MovelTo yet?

Edited by Gravy, 22 January 2010 - 12:44 AM.

Pinball Addict


#12 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 22 January 2010 - 04:40 AM

QUOTE (Gravy @ Jan 21 2010, 07:40 PM) <{POST_SNAPBACK}>
Has any table actually made use of .MovelTo yet?



Flame Reaper Special Edition biggrin.gif
I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#13 KEG

KEG

    Virtual Pinball Fan

  • Charter Member
  • 687 posts
  • Location:Philadelphia, Pa.

  • Flag: United States of America

  • Favorite Pinball: PINBOT

  • PS3 Gamer Tag: The_Real_KEG
  • 360 Gamer Tag: KEG

Posted 22 January 2010 - 04:53 AM

Oh, I can't wait to see what you have in store for us biggrin.gif You are the master of FP. Is it Feb. yet? wink.gif

#14 khomodo

khomodo

    Enthusiast

  • Members
  • PipPipPip
  • 75 posts

  • Flag: France

  • Favorite Pinball: dead hunter

Posted 22 January 2010 - 07:05 AM

Hello Steve,

I don't understand if this toy factory is already implemented in future pinball or its an add on that can be downloaded somewhere ?
Or maybe it was just in the developper edition ?

I know i have seen an object toy in the editor but don't remember if this was the tool you are talking about
(and i m far awy my pc for my current job, can't check it by myself)

Thanks

huuu, forget it , i just saw the toy factory in the 3D model library. my apologies for this stupid question

Edited by khomodo, 22 January 2010 - 07:09 AM.


#15 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 22 January 2010 - 07:22 AM

hmm... toys can be under the playfield and move to another position eh??? Cool... Im thinkingb shark fins and creatures that pop up from swamps and holes etc.

Pinball Addict


#16 megamike36

megamike36

    Hobbyist

  • Members
  • PipPip
  • 47 posts
  • Location:Germany

  • Flag: Germany

  • Favorite Pinball: Time Warp, Flash, ...

Posted 22 January 2010 - 09:58 AM

Hmm ... I'm running the correct Version if FP but the only Toys I can create are Spindisc and Hologram...

Steve, where are these Toys hiding?

unsure.gif Mike

don't print this message, unless you wish to spoil some ink and paper.

#17 Popotte

Popotte

    Pinball Fan

  • VIP
  • 804 posts
  • Location:Paris

  • Flag: France

  • Favorite Pinball: World Fair



Posted 22 January 2010 - 10:14 AM

Spindisc and Hologram are the only "official" toys. All others are to be developped and implemented manually...

Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

PopotteDMDredo.gif

 


#18 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 22 January 2010 - 10:18 AM

QUOTE (Gravy)
hmm... toys can be under the playfield and move to another position eh??? Cool... Im thinkingb shark fins and creatures that pop up from swamps and holes etc.



QUOTE (megamike36)
Hmm ... I'm running the correct Version if FP but the only Toys I can create are Spindisc and Hologram...
Steve, where are these Toys hiding? unsure.gif Mike



http://www.vpforums....ib/FP3DLib.html (go to last pages)
for specific 3D models (a car, a plane, a talking head) with the TOYS behavior just contact me


I think they are not yet popular because I have a hard time explaining what it is. it looks complicated but really, it is not. Gravy any help buddy? If you could rephrase it so everyone see the light. wink.gif

Steve

Edited by Steve Paradis, 22 January 2010 - 10:20 AM.

I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.

#19 Gravy

Gravy

    Pinball Fan

  • VIP
  • 1,147 posts

  • Flag: Australia

  • Favorite Pinball: Simpsons pinball party



Posted 22 January 2010 - 11:54 AM

I think the link you just made should help people in understanding what this is. I couldnt find your 3d models library on here after a few minutes of searching around. Then once I installed it I was thinking that there were only a handfull of different sizes but then realised any one of the toys can be selected and changed to a different size from quite a good range of sizes.

One thing, is there any way to place a toy in a new table other than opening your toy factory table and cutting and pasting it to the new table?

I assume only the dev version has the ability to insert a new toy by clicking an icon?

I like your randomised shaking fake ball effect. Its almost like watching Voyager 1 heading out into space past Pluto if you watch it for long enough. smile.gif

Pinball Addict


#20 Steve Paradis

Steve Paradis

    Pinball Fan

  • Members
  • PipPipPipPip
  • 555 posts
  • Location:Montreal,Qc Canada

  • Flag: Canada

  • Favorite Pinball: RFM



Posted 22 January 2010 - 12:14 PM

QUOTE (Gravy @ Jan 22 2010, 06:54 AM) <{POST_SNAPBACK}>
One thing, is there any way to place a toy in a new table other than opening your toy factory table and cutting and pasting it to the new table?


the thing is...the TOY button doesnt exist in the public edition so you have to do the following
1. Export all the Toys from the demo table to a local folder (model manager>select a model>export)
2. import the models you need in your table the same way (model manager>import)

now. there will be no way to "produce" the model into the table since the Toy button doesnt exist. This is why need both your table and the demo table open for this operation.

3. go back to the demo table and simply cut the the object you need
4. paste itin your table. Now you have a toy in your table wink.gif

It sound more difficult than it is in reality, but don't worry if you are still unsure after that, simply send me your table and I will do it for you.

Steve
I like poutine...Not the russian guy but the fries and gravy and cheese curds stuff.