ALICE 1.1 Released

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Message
Author
brigid
Newbie
Posts: 18
Joined: Sun Mar 16, 2008 12:59 pm
Contact:

Re: ALICE 1.1 Released

#61 Post by brigid »

Wait, I'm confused. @.@ How do you make dolls for ALICE? And what are these layers? Is there a file naming system that has to be used? Is there a manual to go with this program?

Ren

Re: ALICE 1.1 Released

#62 Post by Ren »

I didn't update my set with the newest changes I've made to it.To use the doll I made for example you need something like Photoshop(or Gimp if you don't have that) and play with the layers.
You can download it from my signature :3

brigid
Newbie
Posts: 18
Joined: Sun Mar 16, 2008 12:59 pm
Contact:

Re: ALICE 1.1 Released

#63 Post by brigid »

Thanks. I'll look at that.

I have Photoshop. So that's what the layers are referring to? I have to name the layers particular things?

Edit: I can't seem to be able to download the file. >.>

Ren

Re: ALICE 1.1 Released

#64 Post by Ren »

Sorry to hear that...please try this one :3 *click*

brigid
Newbie
Posts: 18
Joined: Sun Mar 16, 2008 12:59 pm
Contact:

Re: ALICE 1.1 Released

#65 Post by brigid »

Yay! Worked! Thanks! :mrgreen:

Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

ALICE Reborn?

#66 Post by Criptych »

It's been a long time since I checked in here...
At any rate, I recently came across my RenPy folder again, and (after updating of course :P) have since been dreaming up a "better," or at least "re-imagined," ALICE, tentatively called ALICE.NET. While PyTom says he's not much of a GUI programmer, I fancy myself a fair hand, so that's one of the biggest improvements I'm trying to make.

Some other planned (and some partially-implemented) features are:
  • XML-based doll and coordinate formats
  • Uses plain PNG image sources
  • Import/export original ALICE dolls
  • Render to PNG or masked JPG
  • Plug-in support (maybe)
And of course many of the features from the original ALICE, like scaling and recoloring.

This is still a work in progress, really more like a mock-up. Right now ALICE.NET can only display one layer/coordinate at a time, and... that's about it; most of the work so far has been on the back end, structures and formats and whatnot, although it can save and load XML dolls. I've attached a couple screen shots so you can see what it looks like. Questions, comments, and suggestions welcome.

P.S. Many thanks to Ren for her wonderful artwork. :D
P.P.S. No, I'm not keeping the Office 2007 look, I was just trying out a new control.
Attachments
screen02.png
screen01.png
Computers are useless. They can only give you answers. —Pablo Picasso

Image

Ren

Re: ALICE 1.1 Released

#67 Post by Ren »

I'm glad to see you're reviving the project^_^
Until now it looks good, I hope you'll somehow mimic the way layers and folders work in Photoshop since it's really practical(especially for the way I organized the hair...).

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: ALICE 1.1 Released

#68 Post by PyTom »

Looks good. I'm always somewhat ashamed I never did more with ALICE, so I'm glad that someone else has picked up the ball.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: ALICE 1.1 Released

#69 Post by Criptych »

Ren wrote:I'm glad to see you're reviving the project^_^
Until now it looks good, I hope you'll somehow mimic the way layers and folders work in Photoshop since it's really practical(especially for the way I organized the hair...).
I hadn't really thought about that. Somehow ALICE's method actually made more sense to me, but I'll see what I can do. Perhaps some sort of compromise...
PyTom wrote:Looks good. I'm always somewhat ashamed I never did more with ALICE, so I'm glad that someone else has picked up the ball.
Thanks. :) I hope I can make it live up to the standard you set, though. :oops:
Computers are useless. They can only give you answers. —Pablo Picasso

Image

Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: ALICE 1.1 Released

#70 Post by Jake »

Criptych wrote:
Ren wrote:I hope you'll somehow mimic the way layers and folders work in Photoshop since it's really practical.
I hadn't really thought about that. Somehow ALICE's method actually made more sense to me, but I'll see what I can do. Perhaps some sort of compromise...
How does ALICE do it currently? I don't think I've ever looked at the metadata...

I'd have thought that the ideal solution would be a tree structure of some sort in the config file, with different combiner options - so at any node in the tree, one could configure it to draw all of the child nodes, or just one of the child nodes, or whatever.

So for a simple example the top level could be 'Character', which draws 'Body' then 'Hair' then 'Costume'; 'Hair' might be a simple selection and draw 'Ponytail' or 'Crewcut' or 'Middle-Parting', but 'Costume' might be a composite like the 'Character' node, and be comprised of 'Costume Top', 'Costume Bottom', 'Hat' and 'Shoes', where each of those items might be a composite or a selection-from-many as well.
Server error: user 'Jake' not found

User avatar
rioka
Royal Manga Tutor
Posts: 1255
Joined: Fri Jul 16, 2004 12:21 pm
Completed: Amgine Park, Garden Society: Kykuit, Metropolitan Blues (art)
Location: somewhere in NY
Contact:

Re: ALICE 1.1 Released

#71 Post by rioka »

I'm also glad to see ALICE being revived. Coincidentally, I was cleaning up a day or so ago and I found my folder of ALICE drawings. I placed it away again for another time for me to pursue it but with this post, maybe it's a sign for me to get back to it. ;D

User avatar
mikey
Lemma-Class Veteran
Posts: 3249
Joined: Sat Jan 10, 2004 6:03 am
itch: atpprojects
Contact:

Re: ALICE 1.1 Released

#72 Post by mikey »

eclipse wrote:I'm also glad to see ALICE being revived.
I didn't mention it in this thread, but I used your doll in White Nights, back in 2007. So thank you for making it! :)

Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: ALICE 1.1 Released

#73 Post by Criptych »

Jake wrote:
Criptych wrote: I hadn't really thought about that. Somehow ALICE's method actually made more sense to me, but I'll see what I can do. Perhaps some sort of compromise...
How does ALICE do it currently? I don't think I've ever looked at the metadata...
Actually, I meant the way layers were selected in the GUI, though reading through some of the old posts, I see that checkboxes were suggested, so that's another possibility.

As for metadata, I agree that a tree structure makes sense. In fact, the current doll format looks something like this (fully implemented):

Code: Select all

<AliceDoll Version="1.0" Name="Betty" Creator="Ren">
  <Group Name="Body">

    <Layer Name="Base" Image="body/base.png" Z="0" />
    <Layer Name="Arms" Image="body/arms.png" Z="50" />

    <Group Name="Face">
      <!-- with subgroups for eyes, mouth, etc. -->
    </Group>
    <Group Name="Hair">
      <!-- back, bangs -->
    </Group>
  </Group>

  <Group Name="Clothing"><!-- tops, skirts, swimsuits --></Group>
</AliceDoll>
Coordinates look like this (implemented saving):

Code: Select all

  <Coordinate Name="Uniform">
    <Layer Name="Clothing:Uniform:Skirt" />
    <Layer Name="Clothing:Uniform:Blouse" />
    <Layer Name="Clothing:Uniform:Kerchief" />
  </Coordinate>
Of course, Groups and Layers can be named just about anything, they don't have to follow that organization (you could create a "house" doll with different roofs, windows, doors, etc). And the order of layers in a Coordinate doesn't matter, since they're sorted by Z-order when rendering.
Jake wrote:So for a simple example the top level could be 'Character', which draws 'Body' then 'Hair' then 'Costume'; 'Hair' might be a simple selection and draw 'Ponytail' or 'Crewcut' or 'Middle-Parting', but 'Costume' might be a composite like the 'Character' node, and be comprised of 'Costume Top', 'Costume Bottom', 'Hat' and 'Shoes', where each of those items might be a composite or a selection-from-many as well.
I hope this isn't too complicated, but here's how I think of it:
Each Layer consists of a single Image at a particular Z-order, or "depth." You can combine Layers into a Coordinate, like an outfit or hairstyle. Then you can combine Coordinates and/or single Layers into a Pose ("configuration"), and render any or all of the Poses. Once recoloring is supported, my plan is to have recoloring data stored with the Coordinate/Pose, so you can have several Coordinates with the same Layer in different colors (like different schools' uniforms). I haven't decided yet whether to save Coordinates with the Doll or the Poses, though; maybe some in each.

... Oh, dear, I think I'm rambling. :oops:

Anyway, here's a quick example (this format isn't implemented yet):

Code: Select all

<AliceProject Version="1.0">
  <Coordinate Name="Betty">
    <Layer Name="Body:Base" />
    <Layer Name="Body:Arms" />
    <!-- face and hairstyle -->
  </Coordinate>
  <Coordinate Name="Uniform 1">
    <Layer Name="Clothing:Uniform:Skirt" />
    <Layer Name="Clothing:Uniform:Blouse" />
    <Layer Name="Clothing:Uniform:Kerchief" />
  </Coordinate>
  <Coordinate Name="Uniform 2">
    <Layer Name="Clothing:Uniform:Skirt" Hue="240" Sat="0.10, 0.90" Lum="0.10, 0.90" />
    <Layer Name="Clothing:Uniform:Blouse" Hue="240" Sat="0.00, 1.00" Lum="0.00, 1.00" />
    <Layer Name="Clothing:Uniform:Kerchief" Hue="240" Sat="0.00, 1.00" Lum="0.00, 1.00" />
  </Coordinate>

  <Pose Name="Uniform 1">
    <Coordinate Name="Betty" />
    <Coordinate Name="Uniform 1" />
  </Pose>

  <Pose Name="Uniform 2">
    <Coordinate Name="Betty" />
    <Coordinate Name="Uniform 2" />
  </Pose>

  <Pose Name="Uniform 3">
    <Coordinate Name="Betty" />
    <Coordinate Name="Uniform 1" Hue="120" Sat="0.00, 1.00" Lum="0.10, 0.90" />
  </Pose>
</AliceProject>
Computers are useless. They can only give you answers. —Pablo Picasso

Image

Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: ALICE 1.1 Released

#74 Post by Jake »

Criptych wrote: In fact, the current doll format looks something like this
I would suggest adding at least one thing to this - conditional switching for layers. For example:

Image

Currently, I don't see any way that I can move from the top-right to the bottom-right image in one transition; I'd have to change the body pose and the clothing pose separately, which would get pretty annoying if I was having to change eight or nine different layers. Not to mention that for any one body pose, I'd have the option of selecting many costume options which just didn't fit whatever I'd selected for the base body pose. Or worse still, I might have to the two poses defined as totally different AliceDoll documents so that if I want to have a character who has multiple poses than I have to switch between several different dolls to render all the poses out.

So if you - say - set up a case-style conditional structure in your AliceDoll document, you could do something like this:

Code: Select all

<AliceDoll Version="1.0" ... >
  <Group Name="Body">
    <Option Name="Assured">
      <Layer Name="Body-Assured" Image="body/assured.png" Z="0" />
    </Option>
    <Option Name="Nervous">
      <Layer Name="Body-Nervous" Image="body/nervous.png" Z="0" />
    </Option>
  </Group>

  <Group Name="Clothing">
    <Option Name="Hakurei">
      <Case Select="Body:Assured">
        <Layer Name="Hakurei-Assured" Image="clothing/hakurei-assured.png" Z="10" />
      </Case>
      <Case Select="Body:Nervous">
        <Layer Name="Hakurei-Nervous" Image="clothing/hakurei-nervous.png" Z="10" />
      </Case>
      <DefaultCase>
        <!-- I'm sure no-one will mind her having no clothes if she doesn't have a body selected -->
      </DefaultCase>
    </Option>

    ...
  </Group>

  ...
</AliceDoll>
(I didn't see anything in your example document for selectable options, so I had to guess. ;-))
Criptych wrote: Coordinates
I'd suggest a different name - perhaps "composites" or even something as usage-specific as "costumes". Usually, when people talk about 'coordinates' in a graphics sense they mean positions along coordinate axes.

Speaking of positions along coordinate axes, though: I'd also suggest adding optional offset coord attributes to the 'Layer' elements in the AliceDoll document, if you don't have something like that already - in case people don't want to save huge full-extent-of-character PNGs out for every single tiny accessory.
Criptych wrote: Then you can combine Coordinates and/or single Layers into a Pose ("configuration"), and render any or all of the Poses.
I'd also recommend not calling those 'poses', since to an artist the 'pose' is what the base naked character is in; individual costume elements (such as those in my example image above) may be specific to a pose, but changing someone's hat doesn't change their pose.
Server error: user 'Jake' not found

Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: ALICE 1.1 Released

#75 Post by Criptych »

Jake wrote:I would suggest adding at least one thing to this - conditional switching for layers. [...] Or worse still, I might have to the two poses defined as totally different AliceDoll documents so that if I want to have a character who has multiple poses than I have to switch between several different dolls to render all the poses out.
I did give this some thought before drafting the format, but this is also part of the idea behind the Coordinates. You can have all your differently-posed bodies, clothing, etc. in a single Doll, and simply select the one that you need when creating Coordinates and Poses.
EDIT: Based on your example, this might look like:

Code: Select all

  <Group Name="Body">
    <Layer Name="Base" Image="body/base.png" Z="0" />
    <Layer Name="Arms (Assured)" Image="body/arms.assured.png" Z="50" />
    <Layer Name="Arms (Nervous)" Image="body/arms.nervous.png" Z="50" />
    ...
  </Group>
  <Group Name="Clothing">
    <Layer Name="Hakurei (Assured)" Image="clothing/hakurei.assured.png" Z="100" />
    <Layer Name="Hakurei (Nervous)" Image="clothing/hakurei.nervous.png" Z="100" />
    ...
  </Group>
If that's too complicated for normal use, I can see about having a way to associate layers in ways besides their Group (see below).
Jake wrote:I'd suggest a different name - perhaps "composites" or even something as usage-specific as "costumes". Usually, when people talk about 'coordinates' in a graphics sense they mean positions along coordinate axes.
[...]
I'd also recommend not calling those 'poses', since to an artist the 'pose' is what the base naked character is in; individual costume elements (such as those in my example image above) may be specific to a pose, but changing someone's hat doesn't change their pose.
Shakespeare wrote:What's in a name? That which we call a rose
by any other name would smell as sweet.
:wink: Seriously, though, the name "Coordinate" hails from similar tools/games in Japanese, referring to a "coordinated" set of (usually) clothing. I had originally used "Outfit," but I thought the current name sounded more general. "Composites" might work.
In the case of Poses, I was thinking in terms of the Coordinates, above, in that you could select a posed body and add Coordinates to it. I guess it really could cause some confusion... but I can't think of a good alternate name right now.
Jake wrote:Speaking of positions along coordinate axes, though: I'd also suggest adding optional offset coord attributes to the 'Layer' elements in the AliceDoll document, if you don't have something like that already - in case people don't want to save huge full-extent-of-character PNGs out for every single tiny accessory.
I do recall this is how ALICE worked, using cropped images with the SPNG extension, but I hadn't really considered it yet for two reasons. One, I haven't done a lot of imaging in C#, so I wasn't sure how to implement it: finding the edges can be an expensive process unless there's a built-in function for it. Second, using full-size images for each layer removes the need for the offset, and reduces the chance of misalignment. And with a decent PNG encoder, cropping the image probably won't save more than a few KB, depending on the resolution. However, if I can work around reason #1, I might put something like this in.

That said, thanks a lot for your suggestions. I'll see what I can use. :)



EDIT: I've thought of two possible alternatives for pose selection, using an additional "Pose" attribute.
Option 1:

Code: Select all

    <Layer Name="Arms" Pose="Assured" Image="body/arms.assured.png" Z="50" />
    <Layer Name="Arms" Pose="Nervous" Image="body/arms.nervous.png" Z="50" />
...
    <Layer Name="Hakurei" Pose="Assured" Image="clothing/hakurei.assured.png" Z="100" />
    <Layer Name="Hakurei" Pose="Nervous" Image="clothing/hakurei.nervous.png" Z="100" />
Option 2:

Code: Select all

    <Layer Name="Arms" Z="50">
      <Image Pose="Assured" Source="body/arms.assured.png" Z="50" />
      <Image Pose="Nervous" Source="body/arms.nervous.png" Z="50" />
    </Layer>
...
    <Layer Name="Hakurei" Z="100">
      <Image Pose="Assured" Source="clothing/hakurei.assured.png" />
      <Image Pose="Nervous" Source="clothing/hakurei.nervous.png" />
    </Layer>
In both methods, the Pose attribute is used to select between layers with the same name. Upper layers (higher Z) must either have the same Pose as a lower layer, or omit the Pose attribute.
Option 1 is similar to, and more compatible with, the example at the top, with the name of the pose removed to another attribute.
Option 2 is more obvious, but the extra organizational level would play havoc with my existing code (not prohibitively, but annoyingly), and is unnecessary for Layers with only a single Pose.

Going along with this, I'm considering removing the Pose structure and simply allowing nested Coordinates (or whatever they become). That is, you could create a Coordinate, then incorporate it into others ("Body & Arms" + "Happy Face" + "Uniform" => "Uniform - Happy"). This idea is partly because I'm already implementing Coordinates as a special type of Layer, and to reduce confusion with actual "poses" and the Pose attribute.

By the way, she's cute. Is she making any appearances soon? :D
Computers are useless. They can only give you answers. —Pablo Picasso

Image

Post Reply

Who is online

Users browsing this forum: Google [Bot], henne