Actor
The Actor plugin/library allows you to create "Actors" which playback pre-recorded actions as an NPC. Great for Machinima or for making your NPCs do exactly what you want. Actors can currently playback exact recordings of the following actions:
- Walking / Movement
- Block Placement / Removal
- Current Item selection
- Chatting
Multiple actors can be active at once. Scenes of actors can be saved to disk and loaded later. Actors can be dubbed into a translated position for crazy effects. See video.
Latest version notes: V0.10
Troupes! Now you can record more than one player at a time. If you have 'troupe' permission you can...
- /actor troupe add playername - add player to your troupe (they will be asked for confirmation and must type 'yes' in response)
- /actor troupe remove playername - remove player from troupe
- /actor troupe show - shows the current players in your troupe
Once your troupe is defined, use '/actor record' like normal but you will now be recording everyone in the troupe. '/actor hire' will hire an actor for every recorded troupe member.
Also in this release:
- /actor rename actorname newname - renames an actor
- minor bug fixes
Demo
Typical Usage / Getting Started
Typically the usage goes like this:
- /actor record <run around - place blocks, remove blocks, chat, etc>
- /actor cut
- /actor hire actorname
- /actor action <watch the actor do what you just recorded>
- /actor reset
- /actor actionrec <you are now playing back the actor and recording at the same time>
- /actor cut
- /actor reset
- /actor action <You now see both actors in the scene together>
- /actor savescene scenename
Installation
Put the ActorPlugin.jar into plugins on your server. The first time it is loaded it will create an Actor folder in your plugins dir where all your saved actors and scenes will be created.
Dependencies
Vault (optional)
Commands
In addition to being a library for use in other Bukkit mods, the Actor plugin provides commands to demo the basic functionality itself. Full table of commands and associated permission nodes can be found on this page. The following sub-commands have /actor as the root command:
- record:
Start recording into buffer.
- cut:
Stop recording and stop playback on all actors
- hire:
Spawn new actor using recording in buffer
usage: /actor hire [name]
- dub:
Duplicate one or all actors with a translation
usage: /actor dub [name|all] x y z
- fire:
Fire an actor (this means they are removed from the world). Name can be "all".
usage: /actor fire [name]
- action:
Playback actor or all actors
usage: /actor action [actorname]
- actionrec:
Playback actor or all actors and record
usage: /actor actionrec [actorname]
- loop:
Set an actor (or "all") to loop
usage: /actor loop [on|off] [actorname]
- reset:
Rewind actor or all actors
usage: /actor reset [actorname]
- remove:
Remove an actor. Alias for "fire".
usage: /actor remove [actorname]
- troupe:
Manage your troupe of actors. Subcommands: add, remove, show
usage: /actor troupe add [playername] - add player to troupe
usage: /actor troupe remove [playername] - remove troupe member
usage: /actor troupe show - list the current troupe members
- saveactor:
Save an actor's recording to a file
usage: /actor saveactor [actorname] [filename]
- savescene:
Save all actor recordings to dir/actorname
usage: /actor savescene [scenename]
- loadactor:
Spawn an actor with the give recording file
usage: /actor loadactor [actorname] [filename]
- loadscene:
Load and spawn all actor recordings from dir
usage: /actor loadscene [scenename]
The above list can be found in-game by using /actor. In-game list is based on the user's permissions.
Configuration
API
Actor is a libray which can be used in other plugins. View API here. Use the public "getInstance()' method on the ActorPlugin class which gives you access to the API commands. For example:
ActorPlugin.getInstance().record(player);
Beta Release
Currently in Beta this plugin will be revised to fix bugs and add features. Feel free to contribute.
GPL Licensed
The Actor Library is released under the GPL License.
Source
Image Credit
Thanks to Stugace for creating the RomeCraft texture pack used in the video: http://www.planetminecraft.com/texture_pack/romecraft/
Thanks to WLhokies for creating the Roman Villa used in the video: http://www.planetminecraft.com/project/roman-villa---villa-syndexioi-world-save-schematic/
Thanks
Thanks to Mitsugaru for adding permissions, maven, cleaning up the code, etc.
@Fizzyjoe908
It is spout. Tested on a server without it. You should put on this page, not compatible with spout.
@brickshot
Yes, just tested it. I am running Spout, could that be an issue?
@Fizzyjoe908
Does that also happen if you use 'all' for the actorname?
Whenever I try to do /visible on <actor-name>, the actor just disappears and isn't visible to anyone. When I do /visible off <actor-name>, it reappears, but only to me. Issue?
Great plugin. Many thanks. :D
Still same error.
@All_Power
Hey - I just posted a new version (v03) which should fix this problem without you needing to install apache-commons-io at all. Let me know if it works for you. thanks
-josh
Hmm don't seem to have a libs folder at all. Do you need a server.jar file?
@All_Power
OK I think the problem is that I forgot to mention you need the Apache Commons IO library in your libs folder for the server for the loading/saving to work. The library is here:
http:commons.apache.org/io/download_io.cgi
Just put the commons-io-2.1.jar in your craftbukkit/libs folder and that should fix the saving problems. I'll update the description. Thanks
Sorry misread your comment. It did created actorplugin folder and subsequent sub folders, it just wouldn't save thats all.
Okay. I did a test run to see how it would work.
1)Recored something and said test. 2)Created an Actor called 'Test' 3)Test ran my action. Perfect 4)Attempted to save actor/scene. Yet when I attempted both commands, it kept saying 'An internal error has occured while trying to perform this task'
And no it did not create the folders you mention.
Otherwise great plugin.
What file do you save the actor under and how? I typed /save Jim (what do I put here?)
I also tried typing /saveactor Jim (still no idea what to put here) and I got errors.
hehe i'm prolly just stupid, help please? :)
@rolecraft
I'm sure there is something which does that but I'm not sure what. Try asking on the IRC channel maybe?
this might not be the right thing ot ask as you make your own plugin, however do you know (currently) a plugin which works on area trigger/interact ? If you dont wish to say no worries :>
Also the saving issue is the exact same thing i get, just an internal error nothing more
@All_Power
Hmmm I'll have to look at the saving problem. When the plugin starts it should create a sub folder under plugins called ActorPlugin - did it make that? And what exactly is the error you get? Thanks
-josh
@rolecraft
Yeah I can see that my command names are kind of a problem. I'll change them in the next update. And you're right it shouldn't broadcast the chat message to everyone on the server. I'll fix that too.
I like your idea about having the player react with a different recording when you click on them - but the problem is it's kind of difficult. The recordings store the actual absolute coordinates of the player when you create the recording so having the actor stop in the middle and start another recording would mean the new recording would have to match the xyz coord at the point you clicked on them... Some things would be easy like making the actor stop or start but it could get tricky past that. I'll think about it. thanks for your input.
same her epower
Liking this plugin alot. Having fun on my private server. Only problem is that I can't seem to save neither actor nor scene. it keeps saying internal error. Am i doing something wrong?
Nice plugin however i got an issue, i cant remove the actor as i am running alot more plugins and /remove actorname conflicts with one of them ( in this case its worldedit )
so my request is : can i remove the actor with a different command? can you implent one? ( Ex removeactor actorname )
Also the /stoprec is kinda dangerous.. Permissions dont fully work for my server yet and if an OP uses like /stopre or /stopreco then the entire server stops.. Could there be a alternate command for that ?
can you as well make it so if a person right clicks on it that it basicly reacts with a certain recorded action? This could be great for my server so i can basicly make a toturial (interaction related particly) for new players
And i just made a 'test1' character, he said "lal" and the entire server heard that:p Is there an option that only people in a certain radius or 1 person who interacts with it gets to see the "lal" part?
@iJayceon
Ahh sorry I guess I have to resubmit the project for approval when I upload a new jar. When they approve it you should be able to dl ActorPlugin_v02.jar and it should work.
I guess I need to use a repository and git. I'm already on github... Actually if you're really impatient you can get the source and build it from there. Anyway, enjoy.
-josh