Tokei

Script Editors: Act Editor

Recommended Posts

ePWmae3.png

Do you have any idea if your software could fix this? I tried messing with the anchors and had zero luck.

Basically if you zoom out enough, both the stand-by animation on the Rebellion sprite and the attacking one push the bottom part of the head behind the sprite.

 

Well, this is a typical Z-order bug : the head layer should have been drawn on top of the body layer. My software cannot fix this, as this is neither related to the sprite nor the act file, but rather the rendering system used by the client. To my knowledge, the only things that can interfere with it are the lua files (which would be doubtful), the imf file (doubtful as well) or simply the client version. You should forward this issue on the Client-side Support board and mention what steps you've taken to try and fix the issue (changing the sprite for another one, disabling the effects, putting a headgear on, etc).

 

On a side note, I tested the sprite ingame to confirm, and I do not have any trouble with the order.

Share this post


Link to post
Share on other sites

Thanks for the help! :] Which client version are you using by the way? Just to see if that might be the issue. And lastly just to confirm, you zoomed out quite far yes?

Edited by Nova

Share this post


Link to post
Share on other sites

Thanks for the help! :] Which client version are you using by the way? Just to see if that might be the issue. And lastly just to confirm, you zoomed out quite far yes?

 

I'm using 2012-06-20. Yes, I've zoomed to both extremeties. Have you tried messing with your graphic settings (updating your drivers, DirectX, etc)? If zooming in and out is a big factor of the issue, it is more likely to point towards the depth buffer not being precise enough (although it would affect other jobs/sprites). I'm afraid I can't help you more than that.

Share this post


Link to post
Share on other sites

anyone can explain to me how to move sprite position on the character body?

 

For example i  have some headgear which i want to move a little bit to the ground.

How can i do that?

Share this post


Link to post
Share on other sites

There are multiple ways to do that. Open the headgear you want to edit, then show up the anchors with Anchors > Show anchors. Show the Body and Head reference sprites to make it more convenient. The yellow cross indicates where the headgear gets attached on the body sprite. To edit it, use Ctrl-K (or Anchors > Edit frame anchor position), you'll be able to change the attach position for the current frame. Example :

 

VI03tCi.gif

 

That being said, this process is rather tedious if you only want to lower the headgear, and that's when scripting makes your life easier. The following script will lower the headgear by 10 pixels (I'm assuming the act file is properly made). Copy and paste it in Scripts > Script Runner.

foreach (var anchor in act.GetAllFrames().SelectMany(p => p.Anchors)) {
    anchor.OffsetY -= 10;
}
  • Upvote 1

Share this post


Link to post
Share on other sites

Is it possible to extract with ActEditor all "inventory" images (they are small) from GRF's via numbers?

 

Example:

Apple of Archer:

 

BvX9.png2285.png

 

In few words:

 

  1. I want grab from my project all items small images from GRFs and put them all in one folder for feature using.
  2. I need to grab it automaticly and store in any image forman with ID.png or ID.gif
Edited by Anacondaqq

Share this post


Link to post
Share on other sites

Is it possible to extract with ActEditor all "inventory" images (they are small) from GRF's via numbers?

 

Example:

Apple of Archer:

 

BvX9.png2285.png

 

In few words:

  • I want grab from my project all items small images from GRFs and put them all in one folder for feature using.
  • I need to grab it automaticly and store in any image forman with ID.png or ID.gif

 

Hmm, well that's possible but it doesn't have anything to do with Act Editor. There are no lua parsers available in Act Editor, so I'll use a .txt file instead. If you don't have a idnum2itemdisplaynametable.txt, you can convert it from your ItemInfo.lua/lub using SDE or CDE.

// Requires Act Editor v1.0.5
// The following code will temporary freeze the application
var grfPath = @"C:\RO\RO\data.grf";
var grfInventoryPath = Utilities.Services.EncodingService.FromAnyToDisplayEncoding(@"data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item\");
var idResourcePath = @"C:\RO\idnum2itemdisplaynametable.txt";
var outputPath = @"C:\RO\output\";

Directory.CreateDirectory(outputPath);

using (var grf = new GrfHolder(grfPath)) {
    foreach (string line in new LineTextReader(idResourcePath, Utilities.Services.EncodingService.DisplayEncoding).Lines) {
        var values = line.Split('#');
        
        if (values.Length < 2) continue;

        var id = values[0];
        var resource = values[1];
        var entry = grf.FileTable.TryGet(GrfPath.Combine(grfInventoryPath, resource + ".bmp"));

        if (entry != null) {
            GrfImage image = new GrfImage(entry.GetDecompressedData());
            image.MakePinkTransparent();
            image.MakeFirstPixelTransparent();
            image.Convert(GrfImageType.Bgra32);
            
            image.Save(GrfPath.Combine(outputPath, id) + ".png");
            //image.Save(GrfPath.Combine(outputPath, id) + ".gif");
        }
    }
}

This will produce the following result : 

ks6YFyM.png

 

If this isn't what you were looking for, please clarify!

Edited by Tokei
  • Upvote 2

Share this post


Link to post
Share on other sites

Why the last version I can't edit palletes? The option are not click able

 

And thanks and congratulations again for this!

 

@edit

 

Nevermind, I reinstall and now works

Edited by Zell

Share this post


Link to post
Share on other sites

Do you have a script for make spr to Animated gif?

 

unbenannt6jkziv7mg5.png

Share this post


Link to post
Share on other sites

Do you have a script for make spr to Animated gif?

 

unbenannt6jkziv7mg5.png

 

Sure! You could try to choose needed position/side, then "File->Save as" gif.

Edited by CandyCandy

Share this post


Link to post
Share on other sites
On 6/18/2015 at 4:37 PM, EL Dragon said:

Do you have a script for make spr to Animated gif?

 

Yep, as CandyCandy mentionned, that's how you save as animated gifs. If you want your gif to include the reference sprites (the soul linker/stalker body for instance), you'll have to update to 1.0.8.

 

Edit : the new version contains the following updates :

  • When selecting a reference sprite, you will be able to select from GRFs as well.
  • Created gifs will now also show the referenced sprites.
  • Ability to change the background to a custom image.
  • Ability to clear/reset the sprite palette from the menu.
  • Core libraries updated.
  • Other minor bugfixes.
Edited by Tokei
  • Upvote 2

Share this post


Link to post
Share on other sites

thx, I still had the old version

Share this post


Link to post
Share on other sites

hi tokei i love this tool you release but how to save sprites into gif with body and head sprites because i'm doing an animated weapon and i manage to save only the weapon with no body & heads thanks =)

Share this post


Link to post
Share on other sites

hi tokei i love this tool you release but how to save sprites into gif with body and head sprites because i'm doing an animated weapon and i manage to save only the weapon with no body & heads thanks =)

 

Heya, you need version 1.0.8+ for the reference sprites to be saved with the generated gif. Then simply save the gif normally : File > Save as... > yourSprite.gif >

zHbNDO7.gifa5ZcAWv.gif

 

If you're having issues, let me know or give me more details on what you're doing exactly xD

  • Upvote 2

Share this post


Link to post
Share on other sites

 

hi tokei i love this tool you release but how to save sprites into gif with body and head sprites because i'm doing an animated weapon and i manage to save only the weapon with no body & heads thanks =)

 

Heya, you need version 1.0.8+ for the reference sprites to be saved with the generated gif. Then simply save the gif normally : File > Save as... > yourSprite.gif >

zHbNDO7.gifa5ZcAWv.gif

 

If you're having issues, let me know or give me more details on what you're doing exactly xD

 

Thanks i'll try it again =)

EDIT: Superb and many thanks I managed my presentation of sprites to my customers more power Tokei!

2eqbes6.gif

ohn3vt.gif

Edited by Yonko

Share this post


Link to post
Share on other sites

 

 

hi tokei i love this tool you release but how to save sprites into gif with body and head sprites because i'm doing an animated weapon and i manage to save only the weapon with no body & heads thanks =)

 

Heya, you need version 1.0.8+ for the reference sprites to be saved with the generated gif. Then simply save the gif normally : File > Save as... > yourSprite.gif >

zHbNDO7.gifa5ZcAWv.gif

 

If you're having issues, let me know or give me more details on what you're doing exactly xD

 

Thanks i'll try it again =)

EDIT: Superb and many thanks I managed my presentation of sprites to my customers more power Tokei!

2eqbes6.gif

ohn3vt.gif

 

 

Great :3 mind to showcase your sprites you've made i loved to see them :3

Share this post


Link to post
Share on other sites

 

 

 

hi tokei i love this tool you release but how to save sprites into gif with body and head sprites because i'm doing an animated weapon and i manage to save only the weapon with no body & heads thanks =)

 

Heya, you need version 1.0.8+ for the reference sprites to be saved with the generated gif. Then simply save the gif normally : File > Save as... > yourSprite.gif >

zHbNDO7.gifa5ZcAWv.gif

 

If you're having issues, let me know or give me more details on what you're doing exactly xD

 

Thanks i'll try it again =)

EDIT: Superb and many thanks I managed my presentation of sprites to my customers more power Tokei!

2eqbes6.gif

ohn3vt.gif

 

 

Great :3 mind to showcase your sprites you've made i loved to see them :3

 

I have a thread of my showcase but sadly its not updated and i putted worst of my sprites there lol btw that stuffs is the sign of my return of spriting haha =)

Share this post


Link to post
Share on other sites

Hello Good Day how I can add Sound in Act Weapon Sprite?

Share this post


Link to post
Share on other sites

Hello, I am looking for a script to change sprite all 0 to 6

Share this post


Link to post
Share on other sites

Heya,

Just wanted to highlight some of the changes in 1.1.0.

  • New gender option for reference sprites:
    UP69Z2v.png
  • Animation > Setup Headgear... allows you to create a full headgear by positioning the sprite on a single head, saving a ton of work. It's relatively new and might have errors, but from what I've been testing it's been working out pretty well. It's fairly limited at the moment, but if it's requested I don't mind expanding on it. (It also fixes all the anchor positions to make the head stick better.)
    SZPmcdR.png
  • Holding down Alt and then moving the sprite will move all the layers in the current action. It's usually meant for a single sprite though.
  • Added basic utilities to the Palette editor tool. You can now use a Pen, a Bucket, an Eraser and a Stamp-ish tool. The Stamp's brush size can be increased with + and - on the numpad. Also, I've combined both edition modes (Single edit and Gradient edit) in a single screen and removed the adjust mode which wasn't really useful and quite buggy anyway.
    6VOORpD.png
    (I forgot to add preset/saved gradients; will add it for the next update ;O.)

 

  • Upvote 1
  • Love 1
  • MVP 1

Share this post


Link to post
Share on other sites
--------------          Message          --------------
The main UI thread has thrown an exception.

Could not load type 'Utilities.AbstractCommand`1' from assembly 'Utilities, Version=1.2.6553.17521, Culture=neutral, PublicKeyToken=null'.
--------------        Stack trace        --------------
   at GrfToWpfBridge.Application.DefaultErrorHandler._reportAnyManagedExceptions(String message, Exception exception, ErrorLevel errorLevel)
   at GrfToWpfBridge.Application.DefaultErrorHandler.Handle(Exception exception, ErrorLevel errorLevel)
   at TokeiLibrary.ApplicationManager._current_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e)
   at System.Windows.Threading.Dispatcher.CatchException(Exception e)
   at System.Windows.Threading.Dispatcher.CatchExceptionStatic(Object source, Exception e)
   at System.Windows.Threading.ExceptionWrapper.CatchException(Object source, Exception e, Delegate catchHandler)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at ActEditor.GRFEditorMain.Main(String[] args)

--------------         Exception         --------------
System.Exception: The main UI thread has thrown an exception.

Could not load type 'Utilities.AbstractCommand`1' from assembly 'Utilities, Version=1.2.6553.17521, Culture=neutral, PublicKeyToken=null'. ---> System.TypeLoadException: Could not load type 'Utilities.AbstractCommand`1' from assembly 'Utilities, Version=1.2.6553.17521, Culture=neutral, PublicKeyToken=null'.
   at Scripts.Script.Execute(Act act, Int32 selectedActionIndex, Int32 selectedFrameIndex, Int32[] selectedLayerIndexes)
   at ActEditor.Core.ScriptLoader.<>c__DisplayClass37.<_generateScriptMenu>b__34()
   at ActEditor.Core.ScriptLoader.<>c__DisplayClass37.<_generateScriptMenu>b__36(Object s, RoutedEventArgs e)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   --- End of inner exception stack trace ---
--------------          Message          --------------
Could not load type 'Utilities.AbstractCommand`1' from assembly 'Utilities, Version=1.2.6553.17521, Culture=neutral, PublicKeyToken=null'.
--------------      Inner exception      --------------
System.TypeLoadException: Could not load type 'Utilities.AbstractCommand`1' from assembly 'Utilities, Version=1.2.6553.17521, Culture=neutral, PublicKeyToken=null'.
   at Scripts.Script.Execute(Act act, Int32 selectedActionIndex, Int32 selectedFrameIndex, Int32[] selectedLayerIndexes)
   at ActEditor.Core.ScriptLoader.<>c__DisplayClass37.<_generateScriptMenu>b__34()
   at ActEditor.Core.ScriptLoader.<>c__DisplayClass37.<_generateScriptMenu>b__36(Object s, RoutedEventArgs e)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Happened when I tried to use ctrl+shift+G.

Also, please expand the Setup Headgear feature, I'm having a blast with it.
Be able to access the specific angle/mirror for the sprite would be awesome.

Another feature I really wanted, and would help a lot would be an option to see a sillhoette of the previous frame to help aligning things, specially for animated headgears.
Last thing, to speed up in-bulk processes (like saving recolours), ctrl+shift+S to Save As.

Thank you for your time.

Edited by Haziel

Share this post


Link to post
Share on other sites
3 hours ago, Haziel said:

...

Be able to access the specific angle/mirror for the sprite would be awesome.

Wouldn't these always be the same as the reflection of the non-mirror face?

Updated to 1.1.1:

  • Forced all scripts to be recompiled.
  • Ctrl-Shift-S added.
  • Added adjacent frames/actions from Edit > View > Show the adjacent frames (Ctrl-Shift-F). This option also works in Setup Headgear.
  • Upvote 1

Share this post


Link to post
Share on other sites
12 minutes ago, Tokei said:

Wouldn't these always be the same as the reflection of the non-mirror face?

 

I mean, on the setup Headgear interface, being precise only with mouse shortcuts is kinda tricky. :)
As far as I could test, no more bugs were found so far.

Thank you for adding all the stuff so fast, it certainly will help a lot.

Edited by Haziel

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.