Announcement

Collapse
No announcement yet.

Papyrus (working title) Complete Documentation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    I've been putting a lot into design, but this weekend I wanted to jump into art. This is my first WIP of the art style. I still have a lot to figure out in the palette, shapes and a ton more interesting objects before I nail it down. Right now, I'm exaggerating a lot of thing, going big and wacky like a casino or mmo level, but with a spooky touch.

    This is all pretty rough, test bakes, extremely low base meshes, etc. just a place to figure things out.

    [shot]http://chrisholden.net/udk-pap-artwip-01.jpg[/shot]

    [shot]http://chrisholden.net/udk-pap-artwip-02.jpg[/shot]

    Be sure to WATCH THE VIDEO!

    The materials have a lot of life to them, and the still images do little justice.

    Still a lot of blank space in the scene. I've got some wild ideas, but not sure I'll tackle them all.

    Leave a comment:


  • replied
    Hey, in your last video (one with lasers that kill you & timed trigger,) you might want to remove shadow/AO on the lasers, I think that a light producing thing would not cast a shadow... imo

    Leave a comment:


  • replied
    Getting back in action with a new PC, I wanted to cover something rarely talked about around here; SOUND!

    To start, if you know nothing of sound and music, that's OK. There are several royalty free audio sites out there. Audacity is a free sound editing tool. If you can spend some money, I purchased a good, cheap radio shack microphone and Casio keyboard. With these tools, I've been able to record custom audio, and export to .wav ready to go in Unreal.

    When importing a sound file, it will ask if you want to Auto Create Cue. I suggest auto generating the Sound Cue, and will explain why later in the document.




    In the Content Browser, you can play the sound by double-clicking on it or Right Click > Play Sound. You can stop it right clicking, and selecting Stop Sound.




    You can drag sounds directly in to the scene from Content Browser. This will add the sound to the scene as an AmbientSoundSimple. However, there are several other options such as moveable, toggleable, non-looping, etc. available by right clicking and choosing Add Actor.




    Sound properties are straightforward. Radius and Volume will probably get most attention, but Pitch adjustments can be fun for variety.




    You can also play and activate sounds in Kismet. If you use the options of Play Sound or Play Music Track, these require a Sound Cue. Play Announcement can play a sounds without a cue. There is also the Toggle for AmbientSoundToggleable.




    Right click in Content Browser to create a New Sound Cue. I suggestion doing this automatically when you first import your sound because it creates a nice template, time is wasted manually creating them, and you can just delete them if not necessary. Unreal SoundCue Editor uses the same flow chart style you should be familiar with.




    With the sound file selected in Content Browser, right click to add SoundNodeWave for it. You can plug this right in, or setup a few options. Again, plenty to play with here to make things more unique and dynamic.



    Stay posted for more!

    Leave a comment:


  • replied
    wookash_b: afaik, in kismet every active sequence is checked each frame. Some things are going to end up being more expensive than others. As with all features, optimization is important, make sure things aren't running if they don't need to be. etc. The UDK Mobile section has a thread discussion the issue of too many kismet sequences which may give more details on kismet performance.

    Leave a comment:


  • replied
    This is a great thread. Thanks for sharing your ideas. I wanted ask if there is a way to tell how one Kismet sequence is more 'expensive' than another when they both do the same thing. Take the example of the laser door and two approaches presented by Max Power and wasabimilkshake (cool nickname BTW ). How can I tell which one costs more processing power, resources etc?

    Leave a comment:


  • replied
    Thanks for the info, wasabimilkshake. Absolutely applicable.

    I've been real busy crunching for work, if you're interested in seeing what I do, check out this link http://kotaku.com/5805322/nexuiz-is-...never-heard-of

    To keep things moving forward here, I'm dropping a variation of the laser door, it's the timed laser floor (the floor is lava!)

    The idea: hallway has a security system the player can't move through. However, using a trigger deactivates it for a short amount of time.

    Video!
    http://www.youtube.com/watch?v=UHVjuGAUu5Q

    Using InterpActors for the beams, a Dynamic Trigger Volume for the teleportation, and some Point Lights Toggleable. I set a trigger to Toggle them, and also a Delay to reactivate them. Simple stuff, but highly effective, especially in a situation you don't want to player to immediately backtrack.

    [shot]http://chrisholden.net/udk-pap-laserfloor01.jpg[/shot]

    [shot]http://chrisholden.net/udk-pap-laserfloor02.jpg[/shot]

    Video!
    http://www.youtube.com/watch?v=UHVjuGAUu5Q


    Looking forward to getting more time to sink my teeth into some in-depth design and art style documentation.

    Leave a comment:


  • replied
    These are great tutorials. I just want to point out something very minor about your laser door: you don't need to use a DynamicTriggerVolume. A DynamicTriggerVolume can be moved around where a TriggerVolume can't, but the events for either can be toggled on and off just as easily.

    Here's how I'd do it with a regular, static TriggerVolume:


    Toggling the event instead of the trigger gives you the same result, but it's (arguably) cleaner and it allows you to use a static TriggerVolume instead of a DynamicTriggerVolume. The difference in cost is probably negligible, but it's good practice nonetheless. Of course, if your beams animated from off to on instead of simply disappearing, a DynamicTriggerVolume might be a good call, since you could move it in Matinee to match the animation of the beam mesh.

    Speaking of Matinee, you could also use a looping Matinee sequence to implement the same thing as above:

    It's mostly a matter of personal style, but imo the concept of a looping sequence is clearer as a Matinee sequence than a bunch of daisy-chained delay nodes. It'd also make it easy to add sounds, emitters, animations to that self-contained sequence.

    Once again, really nice tutorials. Keep up the good work.

    Leave a comment:


  • replied
    Thanks so much for this thread. Interesting and very helpful!

    Leave a comment:


  • replied
    Maintenance Bot

    This gets a little more advanced.

    InterpActors (Movers) with collision can push KActors with ease. A block can be too heavy for the player to move, but no problem for movers. The orbs moving around inside the rotating hall are a good example.

    While experimenting with creating a shield, I noticed this also works with InterpActors attached to the player. In this early example, I attached a box to the front of the player that has collision. The stone is immobile normally, but by pushing it with a mover, this is no problem.



    Pushing things around is great, but that wasn't the original plan for the maintenance bot so much as a happy accident. The bot's first purpose was to allow the player to traverse tight, compact areas.

    First, I modeled a simple placeholder robot shape, and built collision around it. In this case, I modeled it to be around the player as though this is a vehicle.



    The Kismet is pretty simple. Starting by using a changesize and setspeed console commands to shrink the player down so they can fit in small spaces, Attach the bot model and 3rd person camera, set the camera, teleport the player to the bot's location and finally set the bot meshes' rotation just in case it was oddly rotated. I will likely give this more features as the level develops, but this works for now.

    In the level, I placed the interpactor of the bot, a pathnode to teleport the player to, and a camera to achieve third person view while playing as the maintenance bot. I also placed a trigger to switch between the two forms, and a pathnode to teleport the player back to "normal". It's represented more like remote controlling the bot.

    The Kismet for switching back starts by setting the location of the maintenance bot mesh. This effectively detaches the model. Teleport the player back, use console commands to reverse size & speed changes, and set the camera back to first person.

    Using a switch on this trigger allows me to toggle control between the normal player character and the maintenance bot.

    [shot]http://chrisholden.net/udk-pap-mbot03.jpg[/shot]

    Screen grab as it appears in the editor. A KActor block falls, blocking the path. The player controls the bot to put it out of the way.



    Check out the video to see how it all works:

    http://www.youtube.com/watch?v=jgCA7na7oVU

    Who know's what's next!

    Leave a comment:


  • replied
    Great.., I like the starting idea, continue and good luck

    Leave a comment:


  • replied
    Originally posted by merc-ai View Post
    ...your "teleport back" Kismet part is a real blessing for creating checkpoint-based puzzle adventure (with no reloading level).
    That's exactly why I love them.

    Also, if anybody wants to kill the player this teleport can be changed to a Modify Health OR you can replace the trigger with a Dynamic Physics Volume that's pain causing (setup in properties).

    Next up...

    Rotating Physics

    Any interpactor can have it's physics set to rotating in it's properties. The Rotation Rate sets the speed. The pitch, roll and yaw represent rotation on different axis.




    This can be used for all sorts of interesting gameplay and art.

    A basic example is rotating platforms. In max, I modeled three sets of boxes all with the same, center pivot point. Placed in UDK with rotation applied, these all spin around the centerpiece to create a navigation/timing puzzle.








    Let's look at something more complicated. This is an interior hallway that is rotating. It also has laser beams, as above, only rotating instead of toggling. This hall also has three doors on it as well as some KActor sphere to roll around and add to the effect. (The KActors are sphere static meshes, converted to KActors after being placed, and checked to Wake On Level Start in their properties).



    Maintaining the doors in their position was as easy as attaching them to the hall. They open and close, keep collision, etc. This works great for elevators, subways, lifts, etc.

    The Kismet work here is mainly attachments. For now, the doors are set to automatically open after a delay (for show) until their proper activation is setup in the level.

    [shot]http://chrisholden.net/udk-pap-rotation05.jpg[/shot]


    VIDEO!
    http://www.youtube.com/watch?v=hRyE3NzDFwU


    More to come! Including taking control of a maintenance bot that pushes around these balls.

    Leave a comment:


  • replied
    Max Power, thanks for this thread and actual Kismet sequences.
    I already had laser beams implemented via uscript, but your "teleport back" Kismet part is a real blessing for creating checkpoint-based puzzle adventure (with no reloading level).

    Please, keep 'em coming

    Leave a comment:


  • replied
    Great stuff, this will help me and alot of other people too!

    Leave a comment:


  • replied
    Thankyou so much for doing this, this will help me so much later on

    Leave a comment:


  • replied
    Killer Light! aka Searchlight

    This is similar to the Laser door, so I wanted to keep them together. The idea behind this is creating a search light that activates when the player walks into it.

    Setup a Spotlight Moveable however you'd like it to look. I used a Cylinder Brush for the Dynamic Trigger Volume to mimic the spotlight's round shape.



    Matinee is then used to animate the light around the room. With the light selected, hold M and click in kismet to make a Matinee. Double click it to open it



    Right click outside of the track editor and add a new Empty Group, to represent the light. Right click on this new group and add Movement Track. With the movement track selected, move the time slider where ever you want it, move the light around, and hit Enter back in Matinee. This places a keyframe, which is (in this case) basically location/rotation coordinates for an object over time.

    For this light, I wanted it to move to one side of the room, wait a second, return and repeat. So I placed three keys. 1 to move, 2 to wait, 3 to move back and an additional second after that to wait. In the Matinee's properties checked Looping.




    Use an Attach to Actor to attach the Dynamic Trigger Volume to the light. And as before, used a teleport for the trigger. This will most likely be placeholder. As the design progresses into the actual scene where something like this is used, it can be incorporated to a much more elaborate chain of events. The teleport is a placeholder.



    Here's a video of that
    http://www.youtube.com/watch?v=3m1MTy86oLA

    Leave a comment:

Working...
X