This is a HUGE accomplishment as a pack. Thank you so much for taking the time to not only organize all the voice talent, but also the files in an easily understandable way. There's an amazing amount of variety here. Thanks very much for making it!
Feniks
Creator of
Recent community posts
The first one is really out of the scope of what I can help with for this tool. You can potentially look into nearrect for positioning the new screen appropriately, or style your buttons instead of opening a new screen.
For your second question, you can use buttons that have the Scroll action, if I understood you. Generally if they're using the mouse though, it won't make sense to have buttons which set focus elsewhere. You might be better served having a variable keep track of what button is "selected" and style it based off of selectedness rather than hover state. Then you can execute the appropriate button action based on which button is selected.
You're welcome to add back the navigation shortcuts via `key` or similar. You can also adjust the UI shown at the top to style it however you like in the screen itself. And yes, I understood you weren't looking for the name - hence the suggestion to make a dictionary so you can use the name to get a description, or a series of conditions. It's helpful to have the name so you know what image is displaying and can adjust the description accordingly.
Sure! A ZoomGallery has the method tap_toggle_UI which will hide/show the UI when tapped. It's the default value of the single_tap_event property. At its most basic, that method is just toggling self.show_ui = not self.show_ui. So, you too can make a button with the action ToggleField(zg, "show_ui") in your ZoomGallery.
For your second question, you're welcome to style the screen you set with zg.screen or similar however you like. If you'd like an easy way to get the name/variant number of the currently showing image, you can add the following to the ZoomGallery class (I put it around line 978):
def get_image_name(self):
"""
Get the name of the image currently being displayed by the
ZoomGallery.
"""
return self.unlocked_images[self.current_index].name
def get_image_variant(self):
"""
Return the index of the currently showing image variant.
"""
return self.unlocked_images[self.current_index].image_index
Then you can get the name you declared the image with via zg.get_image_name() and the index via zg.get_image_variant(). Mostly I'm envisioning you could use this information to make a dictionary of the descriptions you want for the images, or just a series of if/else statements.
For the RPA file - there's code at the end of the files that archives it. If you don't remove that, it'll package the files into an rpa file for release automatically.
Hey there! The bubbles assets are not included, but they are CC0 and you can find them at https://cassala.itch.io/bubble-sprites which is linked in the Credits section.
Ah, I'm sorry that happened! Itch sometimes has problems with this sort of thing. If there's another tool you're interested in a key to, I'm happy to send it to you! And it's no problem to initiate a refund when this happens either. But thank you very much for your kind words. I hope you find the tool helpful!
Thank you for your kind words! I hope you find the tool useful. Donations are turned off for this tool as it was enhanced by the wonderful contributions made by various artists in addition to my code. So to avoid any revenue splitting or conflicts of interest, there is no payment. Please check out the artists' work as well! Several have games out or may be open for commission if you'd like to contribute financially, and you're welcome to take a look at my other paid and free tools.
To be honest, I don't have much experience using Live2D in Ren'Py, so I'm unsure how it would work with the tool here. It should be recolourable though, since it'll be an image, but it might be trickier to split up the different parts for recolouring. You're welcome to test out how it works using the free version of the Colorize Tool, and see if it does what you're looking for! I'd also be interested in hearing about the results.
You can try changing the line xpos, ypos = self.offset[0] into
try:
xpos, ypos = self.offsets[0]
except IndexError:
## Didn't finish rendering/doesn't know where children are
renpy.redraw(self, 0)
return (0, 0)
and see what happens. I made some updates to ZoomViewport a while back that might have addressed this problem though - I'll get in touch on Discord to test things out!
Hey there! Did you pick up the common image tools code? It's required for this one to work: https://feniksdev.itch.io/image-tools-for-renpy
I'm not sure I understand what you're asking - I think perhaps your expectations are incorrect? This tool will handle if_all/if_any/if_not and the newer when equivalent, but I don't eliminate attributes you've chosen from the grid just because adding that attribute means it's no longer a valid combo. As this is a dev tool, it's expected that you're picking attributes that make sense to combine. But, for example, if you had two "hair_front" attributes, one that only shows up if the character is in a work outfit (if_all "work_outfit") and one that shows up if the character is not in a work outfit (if_not "work_outfit"), then the correct hair_front will be shown based on whether the work outfit attribute is present or not. If I've misunderstood and you have a compelling use case + example of what your expectations are, I can add a feature request to my to-do, however!
I haven't downloaded that extension to check, but you should be able to make an ATL transform that handles it. For example, the following code will apply the highlighting to the layered image:
transform highlight_mask(child, crop=(0.0, 0.0, 1.0, 1.0), zoom=1.0, who='eileen'):
crop crop zoom zoom
function SpriteFocus(who)
image fen mask_highlight = LayeredImageMask("feniks", highlight_mask(crop=(0.2, 0.2, 0.5, 0.5), zoom=0.7, who="fen"), mask=..., foreground=...)If you want the highlighting to apply to the background/foreground too, then you should be able to use At(), so like, background=At("whatsit.png", highlight_mask(who="fen")) and that in theory should highlight the background too.
Hope that works!









































