User Tag List

Page 1 of 5 123 ... LastLast
Results 1 to 40 of 178

Thread: Dynamic Tree & Plant Generator

  1. #1
    1
    Veteran
    Join Date
    Jun 2014
    Posts
    526

    Dynamic Tree & Plant Generator



    This tool allows for fast and easy generation of random dynamic trees & plants with intuitive drag & drop workflow.


    Easy & fast generation:

    • Easy drag & drop generation of trees & plants with many customizable parameters
    • You can ‘lock’ any tree section to prevent it from regenerating (trunk/branches/fruits), create your own generation presets or save generated trees to a separate blueprint
    • ‘FORM’ system: You can create your own trunk/branch shapes by hand (by controlling spline points) and then use them within any tree, with desired amount
    • Possibility to use your own meshes/materials with the generator
    • Bunch of ready-to-go tree & plant presets (with possibility to create your own)
    • Included 20 starter bark materials, 40 leaf/plant materials and a bunch of example fruits, branch variations & trunk mesh sections.

    Interactive trees & plants:

    • Shockwave reaction: Trees & plants can react to external forces, taking impulse location, strength & distance into account
    • Dynamic wind: Wind can be changed by rotating WindZone arrow (in editor) or dynamically (in game) with desired direction, speed & strength.
    • Fruits: Trees can grow fruits with desired amount, scale and type of fruit. Fruits can randomly fall down after receiving specified amount of force.
    • Dynamic lianas/vines: You can easily connect two branches with a configurable vine that will also follow any tree animation and react accordingly.

    Tree chopping:

    • All generated trees can be chopped down at desired trunk location.
    • Chopped trees will fall down with physics simulation
    • Leaf shake effect will play upon ground impact
    • Fruits can fall down after ground impact
    • Any attached lianas will follow chopped tree parts, retaining their physics simulation
    • Chopped tree parts are spawned as a special blueprint that can be picked up by clicking on it - an example is available in the ‘Documentation_Chopping’ level
    • You can specify chopped trunk texture for every bark material (9 default textures included)

    Optimization:

    • Automatic billboard generation: Every generated tree will automatically generate its billboard version
    • Dynamic billboards: Billboards will periodically refresh in-game to match current [Camera <—> Tree] perspective. This allows for smoother [Tree <—> Billboard] transitions and accurate representation of distant trees. They can also perform a simple wind animation with desired intensity, to simulate wind even on distant billboard trees
    • Distance culling system for plants, tree animation, etc. [with controllable parameters]
    • Very fast tree generation & minimized drawcall count by using ‘FORMS’ (More in the documentation levels) instead of spline meshes
    • Animation based on GPU – sets parameters via blueprints, performs animation logic in material
    • Possibility to set animation FPS (Frames Per Second) value for every tree
    • Automatic animation FPS optimization: The closer to camera, the more animation FPS. (Distance variable is exposed to allow you to tweak the strength of this optimization effect)

    Other:

    • Godrays: Every tree can generate godrays (lightshafts) with desired amount & size. Direction & color is automatically picked from current Directional Light. It’s also possible to update godray direction in game, based on current light direction
    • Possibility to assign a ‘ground’ texture for every tree – it will blend between bark & ground texture on stump model to smooth out harsh mesh intersection
    • Trees naturally align themselves to any surface
    • Possibility to assign custom curves for tree wind/impulse animation (this way you can change the look of trunk/branch animation and customize it to your liking)
    • When creating a plant, you can set desired color of any plant element and hand-edit plant shape using splines.
    • ForestMaker actor: Forest generator with adjustable settings like min. between-trees-distance, max slope tolerance and more… It can be used to easily populate large area with desired set of trees & plants.

    The project comes with documentation levels that explain all the features.
    The system is made entirely in Blueprints.

    If you have any questions, feel free to ask here or on contact@unknown-origins.com
    Last edited by Slavq; 10-04-2016 at 03:15 PM. Reason: 4.13 Update

  2. #2
    0
    This looks exactly what I needed for my project, but I have one question: is there only 1 type of leaves per tree?

  3. #3
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by BardicKnowledge View Post
    This looks exactly what I needed for my project, but I have one question: is there only 1 type of leaves per tree?
    Edit: You can select any leaf type for any tree (I've posted an example in my post below) - the tool already has 20 different leaf types, and you can always add your own. You can also create your own tree preset and combine any bark texture/leaf type/(other parameters) there.
    Thank you!
    Last edited by Slavq; 01-08-2016 at 10:14 AM. Reason: Info correction

  4. #4

  5. #5
    0
    Quote Originally Posted by Slavq View Post
    For now it's possible to add more after editing one of the blueprints, but I see how this could be useful - possibility to add many leaf types on one tree, out of the box, will be added in the next update.
    Thank you!
    That's great to know, cause I need a lot of outlandish vegetation, but having the same leaves over and over would make them all look too similiar.

  6. #6
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by BardicKnowledge View Post
    That's great to know, cause I need a lot of outlandish vegetation, but having the same leaves over and over would make them all look too similiar.
    I'm not sure if I understood you correctly before, do you need to have e.g. two different types of leaves growing on ONE tree?
    If you want to break repetition, you can always change leaf type on any of your trees, to any leaf type you want. Here's an example, the same tree preset with different leaf types:

    Name:  differentLeafs.jpg
Views: 3852
Size:  286.3 KB

    In nature, one tree usually grows only one type of leaves - but I'll add a possibilty to override this

    @AlFlakky Thank you!
    Last edited by Slavq; 01-08-2016 at 07:41 AM.

  7. #7
    0
    Very interesting Asset Slavq, I liked!. For sure I'll buy it when I go to get my next payment, soom. Is a very good asset, thanks.

  8. #8
    0
    Quote Originally Posted by Slavq View Post
    I'm not sure if I understood you correctly before, do you need to have e.g. two different types of leaves growing on ONE tree?
    If you want to break repetition, you can always change leaf type on any of your trees, to any leaf type you want. Here's an example, the same tree preset with different leaf types:

    Name:  differentLeafs.jpg
Views: 3852
Size:  286.3 KB

    In nature, one tree usually grows only one type of leaves - but as I said, I'll add a possibilty to override this

    @AlFlakky Thank you!
    Oh yes I didn't mean different leaves on the same tree, I just wanted to know if there was just one type of leaves or more.

    Anyway what's the performance hit using this system? Can you make a forest on a landscape or it will kill the frame rate?
    Last edited by BardicKnowledge; 01-08-2016 at 06:41 AM.

  9. #9

  10. #10
    0
    Champion



    Join Date
    Mar 2014
    Posts
    670
    I am quite curious to the amount of drawcalls per decent tree/plant.
    Marketplace content:
    Luos's Modular Cave Pack - 500+ meshes! (try the free version!)
    4 Elements pack! - Both defensive and offensive!
    A Particle A Day project pack 1 - 28 particles, soon to be 56!

    Other content:
    A Particle A Day Project - Soon to be continued! (grr @ real life)
    2016 VFX Showcase & Rad Rodgers VFX Showcase!!

  11. #11
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by BardicKnowledge View Post
    Oh yes I didn't mean different leaves on the same tree, I just wanted to know if there was just one type of leaves or more.
    Sure, I've edited my first answer to your question

    Quote Originally Posted by BardicKnowledge View Post
    Anyway what's the performance hit using this system? Can you make a forest on a landscape or it will kill the frame rate?
    Quote Originally Posted by Luos View Post
    I am quite curious to the amount of drawcalls per decent tree/plant.
    With isometric/top down view performance hit is barely noticeable, but of course forests are usually an FPS killers in FPP games - so I've tested it from FPP perspective:
    I've just created a quite dense, large forest on a planar landscape (so all the trees on horizon are visible, not covered by any hill). It runs from ~45 to 60+ FPS (depending on where player is looking) with Epic quality settings, full dynamic lighting & 1080p - on i5 3570K, 8 GB RAM and GTX 760.
    FRESH INFO from the Big Update: Same scene now runs at 80-90 FPS with dynamic billboards turned on.

    The tool was originally designed for more top-down/isometric games, hence most of the optimization went into reducing overdraw (e.g. each leaf type has individually cut mesh shape, it significantly increased performance - I've attached an example below)
    Name:  BranchOptimizing.jpg
Views: 3729
Size:  86.0 KB

    About exact amount of drawcalls, I'll check this with single tree today and let you know what's the average value. I assume that it for sure generates more drawcalls than regular static mesh, due to its dynamic features - each single tree always remains adjustable, so e.g. every branch is a separate component. I suspect that most of the drawcalls will come from large amount of spline static mesh components, because they can't be instantiated.

    Update: Waiting for Merge Actors tool to be fixed: https://answers.unrealengine.com/que...rs-2-bugs.html
    - This will allow to convert any generated tree into a regular static mesh.

    ---------------------------------------------------------

    @macoll & @lunyBunny Thanks!
    Last edited by Slavq; 02-21-2016 at 09:29 AM. Reason: Fresh accurate info

  12. #12
    0
    Champion



    Join Date
    Mar 2014
    Posts
    670
    Quote Originally Posted by Slavq View Post

    About exact amount of drawcalls, I'll check this with single tree today and let you know what's the average value. I assume that it for sure generates more drawcalls than regular static mesh, due to its dynamic features - each single tree always remains adjustable, so e.g. every branch is a separate component. I suspect that most of the drawcalls will come from large amount of spline static mesh components, because they can't be instantiated.

    Thanks!
    Go to editor prefs > Experimental, enable actor merging.
    Then select your actors (your spline based awesomeness)
    go to window > Merge actors

    Now your spline based thingy is just one static mesh, ready to be placed around multiple times.

    Might be interesting once its out of experimental, to show how to do it. might be a big selling point later on!
    Marketplace content:
    Luos's Modular Cave Pack - 500+ meshes! (try the free version!)
    4 Elements pack! - Both defensive and offensive!
    A Particle A Day project pack 1 - 28 particles, soon to be 56!

    Other content:
    A Particle A Day Project - Soon to be continued! (grr @ real life)
    2016 VFX Showcase & Rad Rodgers VFX Showcase!!

  13. #13
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by Luos View Post
    Go to editor prefs > Experimental, enable actor merging.
    Then select your actors (your spline based awesomeness)
    go to window > Merge actors

    Now your spline based thingy is just one static mesh, ready to be placed around multiple times.

    Might be interesting once its out of experimental, to show how to do it. might be a big selling point later on!
    Thanks, I saw this feature yesterday on Twitch stream and already tried it, but for now it stretches all spline mesh components of merged trees in many weird positions + most of the tree parts disappear completely. I'll be trying to get it working though, because indeed it's really worth it. I'm on 4.10 now, maybe the finished version (after experimental phase) will be better. If I'll be able to get this working, I'll certainly post some info here.

  14. #14
    0
    Champion



    Join Date
    Mar 2014
    Posts
    670
    I'll be rooting for you
    Marketplace content:
    Luos's Modular Cave Pack - 500+ meshes! (try the free version!)
    4 Elements pack! - Both defensive and offensive!
    A Particle A Day project pack 1 - 28 particles, soon to be 56!

    Other content:
    A Particle A Day Project - Soon to be continued! (grr @ real life)
    2016 VFX Showcase & Rad Rodgers VFX Showcase!!

  15. #15
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    --- BREAKING NEWS --- The 'Big Update' is ready and should appear soon. List of included new features:

    - Automatic Billboard Generation: Every generated tree will automatically generate its billboard version + crop their billboard texture plane to match its bounds and minimize overdraw.
    - Dynamic Billboards: Billboards will periodically refresh in-game to match current [Camera <---> Tree] perspective. This allows smoother [Tree <---> Billboard] transitions and accurate representation of distant trees.
    - Distance culling system for plants, tree animation & collision, leaf material complexity, etc. [with controllable parameters]
    - Tree growth stages: Every tree automatically generates its own growth stages that can be switched dynamically in-game. From a seedling to fully grown tree!
    - New 'ForestMaker' actor: Forest generator with adjustable settings like min. between-trees-distance, max slope tolerance and more... + Naturally aligns trees to any uneven terrain.
    - Plants will react to any objects passing near them.
    - Godrays (lightshafts) generation matching current light direction or with fixed rotation.
    - Trees naturally align themselves to any surface.
    - New 'Impulse' actor feature: Possibility to change shockwave speed to achieve better effect (the further from impulse source, the later a tree/plant will react to it)
    - Branches can be automatically scaled to be thicker/thinner depending on their grow height, with adjustable scale factor.
    - New "Animate Branch Wind" switch.
    - Significant performance optimization feature for tree animation - culling based on camera frustum, with 3 adjustable variables in 'WindZone' actor.
    - Possibility to add randomized leaf scale variation.
    - Tidy-up of internal blueprints (to make it more clear for people who want to delve deep into the generator system)
    - Many performance optimizations & blueprint logic fixes.

    ---

    I'm creating a video with all the new features right now. I'll upload it here when I'm done.
    Last edited by Slavq; 02-21-2016 at 10:07 AM.

  16. #16
    0
    Champion
    Join Date
    Jul 2014
    Posts
    704
    It runs from ~45 to 60+ FPS (depending on where player is looking) with Epic quality settings, full dynamic lighting & 1080p - on i5 3570K, 8 GB RAM and GTX 760. FRESH INFO from the Big Update: Same scene now runs at 80-90 FPS with dynamic billboards turned on.
    @slavq
    Your plugin is on my "to buy" list. I don't see trees with lot of leaves, i mean covered with leaves on the upper part, do you have some example test ?

  17. #17
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by Galeon View Post
    @slavq
    Your plugin is on my "to buy" list. I don't see trees with lot of leaves, i mean covered with leaves on the upper part, do you have some example test ?
    Here, I've quickly made an upper-leafy tree + Shader Complexity view if you're curious: (You can see these individually-cut-minimizing-overdraw leaf planes in action)
    Name:  upperLeavesComplexity.jpg
Views: 3640
Size:  584.0 KB

    Of course you can add as many leaf-branches as you want, increasing leaf density even more - the generator allows to create almost any tree type (more in the first video). + The good thing is that obviously once it switches to billboard version, then any increased shader complexity coming from very dense leaves will disappear, since it'll be a simple plane with a texture

  18. #18
    0
    Quote Originally Posted by Slavq View Post
    • Possibility to add your own meshes/materials
    Does this mean i could add my own tree meshes?

  19. #19
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by unit23 View Post
    Does this mean i could add my own tree meshes?
    I'll try to explain it on an example: Trees are generated using random trunk sections, plants are generated using specified meshes for leaves/blossoms/etc. You can always add your own meshes - if you want to create a plant with a butterfly sitting on top then you just import your butterfly mesh, add it into plant generator as a plant element. For trees, there are trunk sections with hollows and bulges that appear randomly. If you want to have a trunk secion with a see-through hole, you can add a mesh like this into the generator and it will appear randomly when generating a tree.
    Same for materials, if you have some special leaf texture, you can add it and tree will generate using it. You can also add any tileable texture as a bark material. So e.g. if you want a tree with tileable kittens texture on trunk (because why not ), just add it as a material and specify to use this material when generating a tree. Bark materials also have separate moss textures that appear always on top of surface - you can add a snow texture instead of one of moss textures and then you have a tree covered in snow... And so on.

  20. #20
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Video with most of the new features in upcoming update:



    I'm doing last QA checks right now, I'll submit this update tomorrow.
    Full feature list of this update: http://unknown-origins.com/dev/trees-big-update/

  21. #21
    0
    Samaritan
    Join Date
    Sep 2015
    Posts
    111
    Great Może jakaś zniżka dla biedakow cebulakow?

  22. #22
    0
    Hello,

    Do the roots follow the shape of the mesh underneath them in real time?
    https://forums.unrealengine.com/atta...8&d=1456069468

    If yes, do they also follow the shape of the "landscape" as well?
    Redwood National Park, California, USA WIP https://goo.gl/nD7Xie

    HUGE BUG --------> https://answers.unrealengine.com/que...ance-drop.html

    Artstation

  23. #23
    0
    Extremely good update

  24. #24
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by Sadaleus View Post
    Great Może jakaś zniżka dla biedakow cebulakow?
    Thanks! <Polish ON> Postaram się zrobić jakąś zniżkę niedługo. Ta cena i tak jest już dość niska w porównaniu np. do jednego innego narzędzia w tej tematyce (2x droższe) które jest popularne... A mi samemu na cebulę nie starcza, więc jakoś muszę uzbierać </POLISH OFF>

    Quote Originally Posted by Maximum-Dev View Post
    Hello,

    Do the roots follow the shape of the mesh underneath them in real time?
    https://forums.unrealengine.com/atta...8&d=1456069468

    If yes, do they also follow the shape of the "landscape" as well?
    They align to any surface they encounter, landscape, static meshes, etc... And even if the auto-align is intended to use with in-editor drag&drop and for ForestMaker actor (to align trees after spawning), it also works in real time. I've added a function that can turn on/off realtime aligning. The effect is... Adorable. Meet surFacehugger:



    Quote Originally Posted by BTLRoach View Post
    Extremely good update
    Thanks!

  25. #25
    0
    That's great. Could you possible also include an option to align the mesh normals around the intersection area to the normals of the surface it intersects to? for terminating the lighting seams that is. This is what I mean:

    Redwood National Park, California, USA WIP https://goo.gl/nD7Xie

    HUGE BUG --------> https://answers.unrealengine.com/que...ance-drop.html

    Artstation

  26. #26
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    If I'm not mistaken, it's not possible to change mesh normals in Blueprints, and we can't do C++ for Marketplace yet, as far as i know.

  27. #27
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    I already submitted the update on monday, now waiting for response. Hopefully it will be available soon

  28. #28
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by Slavq View Post
    I already submitted the update on monday, now waiting for response. Hopefully it will be available soon
    The update is live!

  29. #29
    0
    I have 2 directional lights in my scene, one for the sun and one for the moon. It might be an idea to make you select a directional light to use with the god rays? Also, maybe a dumb question but, how can you make save a tree?

  30. #30
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by VariableArgument View Post
    I have 2 directional lights in my scene, one for the sun and one for the moon. It might be an idea to make you select a directional light to use with the god rays? Also, maybe a dumb question but, how can you make save a tree?
    By default, trees pick first directional light from a level to use it with godrays. You can also specify fixed rotation value. Possibility to pick specified directional light will come in the next update, but even now it's quite easy to achieve - if you need this before the next update, I can send you a modified blueprint fragment and guide you through the process.

    There are no dumb questions Saving trees (to reuse it in another map/project) is easy and it's explained in the 'BigUpdateFeatures' level - I'll paste the instructions from there:

    To save a tree, select it, click blue 'Edit Blueprint' button on the right and choose 'Create Child Blueprint Class'.
    (LOCK trunk/branches/fruits before doing it, it's under 'General' section)
    Then you can specify a folder to save and name your tree.
    Example saved trees are located in Blueprints\SavedTrees\ folder.
    Last edited by Slavq; 03-10-2016 at 02:08 PM. Reason: Grammar

  31. #31
    0
    Thx for the quick reply mate

    There is no dumb questions
    ... No but one can feel dumb when asking

  32. #32
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quick update: A small hotfix (+ new godray features) is live!

    Notes:
    - Possibility to pick specified DirectionalLight from a scene to use with godrays.
    - Godrays dynamic direction updating (to match current DirectionalLight direction) with adjustable time intervals
    - A few logic fixes and some fine-tuning

    Godrays: Light direction refreshing with secondary specified DirectionalLight preview: http://gph.is/1Uicn77

  33. #33
    0
    Quote Originally Posted by Slavq View Post
    Quick update: A small hotfix (+ new godray features) is live!

    Notes:
    - Possibility to pick specified DirectionalLight from a scene to use with godrays.
    - Godrays dynamic direction updating (to match current DirectionalLight direction) with adjustable time intervals
    - A few logic fixes and some fine-tuning

    Godrays: Light direction refreshing with secondary specified DirectionalLight preview: http://gph.is/1Uicn77
    You work fast kind sir! thank you for your quick service

  34. #34
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    I'm working on new features (more info soon!) & material improvements. Just semi-randomly achieved this: http://gph.is/1VAMAYA

    Happy little trees. Bob Ross approves.
    Maybe I should add some surreal effects like this to 'Extras' section, hm?

  35. #35
    0
    Quote Originally Posted by Slavq View Post
    I'm working on new features (more info soon!) & material improvements. Just semi-randomly achieved this: http://gph.is/1VAMAYA

    Happy little trees. Bob Ross approves.
    Maybe I should add some surreal effects like this to 'Extras' section, hm?
    If you refine these effects and add more variables to finetune the shapes your generator might be very useful for creating alien plants of all sort for sci-fi as well as fantasy games.

  36. #36
    0
    Hi @Slavq

    It is reserved. I plan purchaising it, imperatively, very soon!

    Because I prefer more your solution than SpeedTree subscription method!
    not that SpeedTree is expensive, but I do not like the subscription model adopted by IDV, $19.00 / month,
    for a lifetime. Prior, like Allegorithmic's method, would be much better!

    But anyway your Dynamic Tree & Plant Generator is a better solution for a real indie authoring, It has a more honest price.
    Does not needs a constant internet connection, and the generated trees can be considered as our own authoring.
    Since working in editing tileable textures, alpha images, and placeholder models from scratch is the same found in SpeedTree,
    or another procedural software, but with the difference of being our own original work.


    luny

  37. #37
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    @DarkS474
    Yeah, I'm thinking about adding an extra 'surreal' section for creating things like that in some future update.

    @lunyBunny
    Thank you! If you have any questions, feel free to ask here or on contact email.

    Dynamic Tree & Plant Generator is still 'growing' and new features will come, since I actively work on this along with my game, to implement many tree/foliage-related dynamic features. Stay tuned!

  38. #38
    0
    Hey Slavq,

    First nice work.
    Second, those interactive foliage are skinned/bones? because I tried to do it that way and it was generally a big red card for performance. Not sure if you have done it another way that'd be very efficient when there is a lot of it and player running through?
    Redwood National Park, California, USA WIP https://goo.gl/nD7Xie

    HUGE BUG --------> https://answers.unrealengine.com/que...ance-drop.html

    Artstation

  39. #39
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    Quote Originally Posted by Maximum-Dev View Post
    Hey Slavq,

    First nice work.
    Second, those interactive foliage are skinned/bones? because I tried to do it that way and it was generally a big red card for performance. Not sure if you have done it another way that'd be very efficient when there is a lot of it and player running through?
    Thank you!
    No, they're not skinned, plant interaction is based on actor/component rotation. I also try to optimize all the interaction animations by not every-ticking their rotators, but updating every like ~0.02s - it doesn't make a noticeable difference and saves a lot of performance when there is a lot of plants. I'm also considering adding another optional animation system for plants based on material vertex offset (maybe it'll appear in next update), but for now, the current system does the job.
    Of course I would not suggest to place these plants as dense as grass - for this it's better to use regular instanced grass/foliage meshes placed by Foliage tool and add interactive plants on top of that, as a decoration.

    Psst, sneak peek: New wind/impulse animation system overhaul for trees is almost done and will come with next update. More performant, more versatile, and less bug prone. More info soon!

  40. #40
    0
    Veteran
    Join Date
    Jun 2014
    Posts
    526
    New update for 4.10 and 4.11 will be submitted today. It will include overhauled wind/impulse animation system (more versatile & optimized) and some other new features & improvements - I'll post the update notes soon.
    Last edited by Slavq; 05-08-2016 at 06:16 PM. Reason: Bug fixed, deleted old info

Page 1 of 5 123 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •