Tweaking Umineko Wiki

Photoshop Actions for Resizing(Lib)[]

Photoshop Actions[]

First, let me teach you how to use Photoshop "Actions." Actions let you record your process, and apply them automatically without having to do the same thing over and over again. For example, I make a new Action, and I press record. I open one sprite, resize it accordingly, save it, and close it. When that's done, I stop the Action recording. Next time I open a different sprite, instead of doing the resizing process all over again, I go to the Action that I just made, press play, and it does it for me automatically. This is extremely helpful when resizing multiple images.

To do this in batches, go to File>Automate>Batch. Select the Action you made in the Action drop-down menu. Then choose the Source folder (the folder with all the images you want to resize) and click OK. Photoshop will begin automatically resizing every image located in the source folder.

Note: I recommend copying the folder with the original res sprites and working on those, instead of the original files so you don't accidentally edit the originals.

Photoshop Actions are located in the same window as the Layers, Channels, etc. If you can't find them, just go to Window>Actions

How to Resize the In-game Sprites[]

In order to resize the in-game sprites properly, you need to find the tallest sprite. In this case, it's the Goats.

Note: These instructions are if you've downloaded the original sprites from the deadfrog torrent website and are not using our set.

1. Open any Goat in-game sprite.

2. Go to Image>Image Size. Change the height to 480 pixels. Do NOT press OK. Instead, under Document size, change the Height to Percent. This should give you a number, and you will use this number to resize all the other sprites, so write it down.

3. Close the Goat sprite.

4. Open any other in-game sprite

5. Begin a new Photoshop Action, and press record.

6. Open Image>Image Size. Under Pixel Dimensions, change it to Percent, and copy the number we got from Ronove, and press OK.

7. Open Image>Canvas Size. Change it from Inches to Pixels. Make the height 480, and in the Anchor make sure the very bottom center square is chosen. Press OK.

7. Save it, and close it, and stop the Action recording.

8. Go to File>Automate>Batch, choose the Action we just made and choose the source folder with the sprites. Press OK, and it will begin resizing them. If all your sprites are in seperate folders, make sure to check off in the box that says Include All Subfolders.

Note: When you save them, make sure you save them as PNGs.

Note: Whenever making your Photoshop Action, it MUST end with you saving AND closing it. If you end the recording without closing the image, Photoshop won't know to close the image after it's resized, and it will end up opening hundreds of images at once, which will most likely freeze your computer.

Resizing system sprites is a little trickier and more involved. They are easier to resize, but all the widths are different. I will use Beatrice for example.

In order to resize them, you need to first crop out the extra space. To do this:

1. Open Photoshop, and begin a new Photoshop Action, and begin recording.

2. Open one system sprite. Go to Image>Trim..

3. Based On should have Transparent Pixels chosen. Under Trim Away, make sure they are all checked EXCEPT Top. Press OK.

4. Save, and close. Stop your Action recording.

5. Go to File>Automate>Batch.. etc.

To resize them afterwards:

1. Have both your PC sprites and PS3 sprites opened in seperate folders.

2. Look at the characters PC sprite's width. Divide it by two, since it's most likely alpha masked which doubles the width.

3. Open the same character's resized and cropped PS3 system sprites in Photoshop.

4. Go to Image>Canvas Size. Change the width to the divided width you got earlier from the PC sprite. The Anchor should be set to default, which is the center square. Press OK.

5. Make sure the newly size PS3 sprite is the same height and width as the PC sprite.

You can make Actions for this process, but you'd have to keep changing it because not all the characters have the same width. What I did was seperate each character's system sprites into their own folders, and would make and modify the Actions for each character (by double-clicking the Action and changing it). Afterward, I would seperate them back into what folders they would be in by using the cha_tati folder as a reference.

Alpha Masking using Photoshop Actions and bw2aconv(Eve)[]

Preparing the sprite for bw2aconv[]

Before using the Photoshop Script Below, use this time saving method(Hanyuu)

1. Open a random sprite

2. Start Recording an Action

3. Go to canvas size of the sprite

4. Anchor the picture to the bottom of the canvas and increase vertical size by a generous amount. Going to 600 from 480 is usually a safe bet.

5. Close the Sprite and Stop Recording(in that order).

6. Use this Action on all sprites that are being prepared for masking.

The best way to do this is to record an action(see Libs tutorials above), I've recorded one that should work on any system provided you have the following to folders: C:\BW\B and C:\BW\W. In other words you need to have a folder in your C drive called "BW" which contains a folder named "B" and a folder named "W".

The script, for those who are interested, does the following:

  1. Creates a new layer(layer>new Layer)
  2. Moves the layer to the back of the file
  3. Creates a white cube in the upper left corner(so that bw2aconv doesn't clip the sprite, cutting of the extra pixels you just added)(might need to be adjusted depending on sprite)
  4. Uses the paint can to fill the back layer with black
  5. Saves in BW\B
  6. Uses the paint can to fill the back layer with white
  7. Saves in BW\W
  8. Closes the file

The next step is to rename the two pictures[]

I would recommend you get a hold of a bulk renaming utility for this part. try this one

  • "Picture copy.bmp" in BW\B needs to become "Picture_b.bmp"
  • "Picture copy.bmp" in BW\W needs to become "Picture_w.bmp"
  • Copy both "Picture_b.bmp" and "Picture_w.bmp" into C:\BW

Running Bw2aconv[]

  1. Download the nscr-sdk, which contains Bw2aconv; find it here
  2. Run bw2aconv
  3. Navigate to and select C:\BW and hit enter

You should now have an alpha masked sprite in the BW\out folder; all that's left is to remove the white square on the top left and it's black counter-part on the top left of right half of the picture.(An easier way to remove it is to follow Hanyuus procedure listed above and continued below)

(Hanyuu's cont.)

1. Open a random finished sprite.

2. Start Photoshop Actions and go to Canvas size.

3. Anchor the Picture at the bottom and decrease vertical canvas size back down to 480.

4. Close the pic and stop recording, in that order.

5. Use that action on C:BW/output

dwave command and voice implementation(Eve)[]

Alias definition[]

First thing you want to do is to define an alias, using the "stralias" command for each voice file. The format for this command is "stralias alias-string, "path to file"". The way the alias strings have been named so far is "character_Ep#evoice#", though you don't have to follow this, it's better to be consistant.

  • For example, Rudolfs first voice clip is defined like this "stralias rud_1e1,"voice\08\11200001.ogg""
  • Kinzo's third is "stralias kin_1e3,"voice\01\11500001.ogg""

Type out this alias definitions in the definition block, by all the other voice alias definitions. Just search for either of the strings and you'll find the part of the script I'm talking about.

dwave command[]

The next step is actually adding the voice clips into the game script so they play as the text comes up on screen. The way to do this is to call the dwave command before the text in the voice clip is written out in the script.

  • ie. dwave 0, but_9e224`Slice up your cow tits and make me a sandwich.

The dwave command has two input fields; the mix channel(in the case above the "0") and the voice clip file, "but_9e224" has already been defined as "voice\w.e\20970q973320.ogg" so we don't need to type out the whole path.

It's also important to note that "@" in the script means "wait for mous click"; if you're adding voices to a big block of dialogue make sure you place the dwave commands after the "@"