Jump to content

Recommended Posts

Thanks for the votes of confidence; progress is going well!

 

First, the good news is that I have FINALLY figured out how to structure the quests/actors efficiently via aliases, which will provide clarity and simplify scripting and stages later on.

 

It took a little up-front work to get this working... I bashed my head against a wall for about 8 hours. Sucked. But eventually it worked. For reasons unknown to me, the creation kit has multiple layers to... everything.

 

For example, to get an actor to wear a piece of clothing, you have to: 1)Make an "ARMA" with your .nif 2)Make an "ARMO" that references the "ARMA," and also reference your .nif for some reason. 3)Make an "OTFT" which you drag your "ARMO"s into, and then go to your NPC and edit the base, go to the inventory tab and find your outfit from the default outfit dropdown tab.

 

Holy hell, just wear your catsuit already!

 

Wait, shoot, this is supposed to be the good news... the takeaway is that once I do something once, I usually remember how to do it. See the attached pic--clothing is coming along well.

 

The bad news: I have NO IDEA how to script. The papyrus language is silly and poorly documented, especially for beginners. I'm browsing other people's scripts, some of which are helpfully notated... so I'll get there. 

 

For example, if I want to tell the warden to walk to her chair after she's done speaking?

 

it'll be something simple like:

 

If (stage 10 of quest RR_Introductions)

Then (RR_Warden walk to and sit in RR_Warden_Chair)

 

What does this look like in papyrus? I have no idea, but hopefully I can shamelessly plagiarize something. Ironic that plagiarism is an EXTREMELY effective learning tool.

 

So right now, before I can add more dialog and action, I need to figure out to how do some basic pathing and interaction scripting, but that will come soon since it's the last major obstacle to really telling a story here.

 

edit: Also, a nurse. It seemed an like an obvious addition.

post-269220-0-50301500-1479698394_thumb.jpg

Link to comment

Outfits look great! Glad to hear you are making some progress. Wish I could help, but I can't even figure out how to add armor rating to an outfit I like. :@

 

It's not so hard!

 

In the object window, go to "all" at the bottom, search for the armor name, edit the "armo" file, and there's a field for the armor value that you can modify.

post-269220-0-19718400-1479714679_thumb.jpg

Link to comment

 

If (stage 10 of quest RR_Introductions)

Then (RR_Warden walk to and sit in RR_Warden_Chair)

 

What does this look like in papyrus? I have no idea, but hopefully I can shamelessly plagiarize something. Ironic that plagiarism is an EXTREMELY effective learning tool.

 

So right now, before I can add more dialog and action, I need to figure out to how do some basic pathing and interaction scripting, but that will come soon since it's the last major obstacle to really telling a story here.

 

The simplest way to do something like this is using a scene which can be started via a script. A scene basically allows you to chain multiple dialogues and actions (AI-Packages) of actors together and let them be played in a sequence. 

 

If you really just want her to sit down after a normal dialogue you would just have an AI-Package on your Quest Alias of that actor with a condition that is true once the dialogue is finished. But for anything more complex than this (like having a couple of different sentences to say at different places in a room) a scene is the way to go.

 

Just in case you don't already know, all "pathing" is done via AI-Packages.

Link to comment

Would be super neat of you to use a single catsuit mesh so I can easily replace it later on with Cursed Loot's BodySlide-generated UUNP one.

I just had a bit of an epiphany... I've been duplicating and retexturing each suit in Nifskope, but you CAN do texture replacements in CK and recycle the same mesh, can't you? In that case, yes. I'll learn about texture sets in a bit, and go grab those nifs. I've never been a huge fan of the ultra-buxom default body of the catsuit myself. And not needing a new mesh for every variant will save me time and keep the mod smaller.

 

Thanks for the suggestion!

Link to comment

 

Outfits look great! Glad to hear you are making some progress. Wish I could help, but I can't even figure out how to add armor rating to an outfit I like. :@

 

It's not so hard!

 

In the object window, go to "all" at the bottom, search for the armor name, edit the "armo" file, and there's a field for the armor value that you can modify.

 

 

Thanks. I know the theory behind it, and if I had tried a regular outfit it probably would have worked right. I was trying to do one of Angeli's outfits, but with the DD scripts and stuff it gets me all screwed up. I had some help from another mod author, but it turned out to just be too much of a pain in the butt. :D

Link to comment

 

 

If (stage 10 of quest RR_Introductions)

Then (RR_Warden walk to and sit in RR_Warden_Chair)

 

What does this look like in papyrus? I have no idea, but hopefully I can shamelessly plagiarize something. Ironic that plagiarism is an EXTREMELY effective learning tool.

 

So right now, before I can add more dialog and action, I need to figure out to how do some basic pathing and interaction scripting, but that will come soon since it's the last major obstacle to really telling a story here.

The simplest way to do something like this is using a scene which can be started via a script. A scene basically allows you to chain multiple dialogues and actions (AI-Packages) of actors together and let them be played in a sequence.

 

If you really just want her to sit down after a normal dialogue you would just have an AI-Package on your Quest Alias of that actor with a condition that is true once the dialogue is finished. But for anything more complex than this (like having a couple of different sentences to say at different places in a room) a scene is the way to go.

 

Just in case you don't already know, all "pathing" is done via AI-Packages.

I didn't know! I'll look into that.

 

I thought AI packages controlled generic behavior, and the only one I have been using so far is DefaultHomeOwner for wandering/sitting/eating within an area.

 

I'll also look into scenes.

Link to comment

I thought AI packages controlled generic behavior, and the only one I have been using so far is DefaultHomeOwner for wandering/sitting/eating within an area.

They do. Basically everything that an actor does is controlled by an AI package. It's one of the things that are difficult to grasp when you start out (at least it was for me): The papyrus API for controlling characters is very limited. You have to use packages for almost everything you want an actor to do. And packages are basically black boxes. Either they work they way you want them to or they don't. And if they don't work, it's very difficult to find out why. You can't debug them like regular papyrus code. It's one of the fun things about Skyrim modding. :-/

 

The suggestion with the scene is valid, but let me add a little caveat: An actor can only ever be in one scene at a time. So if you start another scene with the warden, it will either wait until the "sit in chair" scene is finished (and if that scene doesn't finish, it'll wait forever). Or, if you mark the sit scene as interruptible, it will... well, interrupt that scene (meaning the warden will do something else because the packages of the scene no longer apply).

 

Also, scenes run until they end. And if you add a package to a scene that does not end, the scene will be stuck in that phase. Meaning: If the quest advances to stage 20, the scene won't automatically stop. You'll have to terminate it yourself, if you want that to happen.

 

If you just want the warden to "idle" in the chair for exactly the time that the quest is in this stage, I would simply make it an AI package attached to the alias. Use SitTarget as package template, set the chair as the target, add the condition (GetStage RR_INTRODUCTIONS == 10), and you're done.

 

Once the quest reaches stage 10, it may take a few seconds until the actor's AI updates to the new package. If that's a problem, add "Alias_Warden.TryToEvaluatePackage()" to the quest stage script fragment. If you don't have an alias but only an actor reference, the command is: "ActorRef.EvaluatePackage()". That will make the actor update their AI immediately.

 

 

Rule of thumb: If you want an actor to go through a series of single, well-defined actions, each with a clearly defined ending (like: walk there, take that, walk over here, use this, etc.) then use scenes. If you want an actor to keep doing one specific thing indefinitely (or while certain conditions are met), use alias AI packages.

Link to comment

More and more I'm thinking I should have done those damn "Bendu" mod tutorials!

Once again, thanks for explaining. It's extremely relieving that scripting isn't needed for basic tasks. If scenes are intuitive, I can work with that, and AI packages I at least have a basic understanding of, now.

Very nice to hear that papyrus scripts aren't required everywhere. I should have assumed there was a more elegant and accessible tool.

I'll start looking at scenes later today.
Probably have a new release this weekend.

 

edit: "if scenes are intuitive." have I learned nothing about creation kit?!

Link to comment

This is too funny not to share -- for some reason, any NPC who has been given the GenericHomeOwner AI package eventually decides they NEED to get on the conveyor belt. They path to a corner of the vacbed room and bang themselves against the metal cage until they pop through, then calmly ride it to the drop-off at the end.

 

I wonder what they want. There's no idle marker, furniture, etc. Guess I'll just have to delete the navmesh or throw up a collision plane.

post-269220-0-41606500-1479869282_thumb.jpg

Link to comment

This is too funny not to share -- for some reason, any NPC who has been given the GenericHomeOwner AI package eventually decides they NEED to get on the conveyor belt. They path to a corner of the vacbed room and bang themselves against the metal cage until they pop through, then calmly ride it to the drop-off at the end.

 

I wonder what they want. There's no idle marker, furniture, etc. Guess I'll just have to delete the navmesh or throw up a collision plane.

 

How can you blame them!?!? It's a fun ride!! :D

Link to comment

I now have AI packages figured out... mostly. The warden was pathing to her chair reliably for awhile, but is now broken again. Though a console disable/enable teleports her there, so, she's at least aware of the goal... I'll check things like the navmesh and if "use preferred path" matters. That and forcing the warden to evaluate her packages via script.

 

Ref aliases are now filling reliably.

 

I've largely rebuilt the dungeon with dwemer room types to replace the crappy generic set I started out with.

 

Lighting should be WAY better. I thought I was using dwarven "omnilights" but I had accidentally begun using "sunlight bounce" light sources that were acting extremely weird.

 

Dialog is progressing nicely... so far I'm filling out NPC introductory small-talk and haven't progressed a main quest yet. One of the two prisoners now has a detailed story.

 

Texture sets are a go for the cursed loot variety of the MWX catsuit, reducing the number of meshes needed. I'm having a slight hiccup with the Mip Maps of some sort, but it doesn't seem to matter much.

 

There is a Bermuda triangle of sorts--a place in the dungeon where characters, NPC and player alike vanish while standing in it. I cannot troubleshoot its cause and might have to literally build around it, but its presence disturbs me and I fear it might spread like a disease.

 

I hope to release a new version tomorrow.

Link to comment

Thanks! Well, 1.0 is very far off. I'll call this next one 0.50, which is a milestone in itself if I can get everything to work properly... seeing how it's a fairly thorough restructuring of how the mod operates. Ostensibly so it operates more smoothly.

 

Which isn't what I'm seeing at the moment.

 

There's no clear cause and effect. Undoing something I did which broke an event... doesn't make the event work smoothly again. Adding a new clothing texture for a new character broke an old texture for an old character, and they have nothing in common! It's a little frustrating.

 

Anyway... I should be like every other modder and make no promises on release dates. I think I know why they do that, now.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use