"Mirror Portraits" in Coversation plugin (WW|Converse)

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
TLDR:
  • Can display "talking heads" portraits on the right side of the box
  • Can miror-flip portraits to face the other way
  • Simple and small plugin that should require less work than cutting direction-facing images
  • YANFLY MesageCore compatible

Long Read:

Dear Maker-colleagues,

My sincere apologies if similar tech was already posted. And I am sorry if I have dropped this in the wrong woods.
I am rather shy of sharing my work, but hopefully this works out for someone else as it did for me.

So first of all I feel silly sharing "yet another plugin" for conversation, but for all my searching I have found no simple way to rotate character portraits, displaying them on the right side of the conversation box... And definitely have not seen any plugins that would allow for a quick-mirror-flip of portraits in conversions.
Yes, you can have many different faces to use, cut to occasion, facing every which way... but I wanted something that would work with "defaults" - MV generated images (Blondie is an MV-tool generated face), default NPC faces (redhead girl is in "Evil" standard package). Also without having to load many different files for the "same" face in the game.

And I wanted an effect of two (or more) people talking - they look at one another from two sides of the conversation circle, with the protagonist being always on the left, facing right. And sometimes someone needs to "look away" from a conversation for extra dramatic effect or to look "distracted" from conversation.
This is also intended to be rather lightweight, quick and dirty solution. I am sure a much more robust solution could be implemented, but this has filled my need pretty well.

So without further ado, here it is.



This works for me with YANFLY MessageCore - colors and even portrait of-first-party-character displays have worked just fine.

This does modify Window_Message functions:
- drawMessageFace
- newLineX
There is, unfortunately, no way (that I found) to make theses work with other plugins that overwrite the same function, since these two functions are essential to mirroring works.
There might be another way, but it would not fit the "simple and lightweight" description I was going for for my project.

How to use:

- This is for RPG Maker MV
- Put the plugin somewhere at the bottom of the "conversation UI" plugins
- Set some settings (Kept it as simple and as straightforward as possible)
- Add some "plugin" lines to your conversation stack

Full list of command lines are as follows
:
  • "ww|CONVERSE right" - Next speaker will be drawn on the right side
  • "ww|CONVERSE right mirror" - Next speaker will be drawn on the right side and face image will be mirrored horizontally
  • "ww|CONVERSE right cont mirror cont" - Speaker will be drawn on the right side and face image will be mirrored horizontally (And this will continue until "reset" is called. Great if the character has a long speech, so you don't have to call function over and over)
  • "ww|CONVERSE reset" - resets all options to default: no mirror or placement
Versions:
1.3.2 - Update to detect "special size cases" for YEP MessageCore. More detailed description in the thread. (per @JohnOminae)
1.3.1 - Fix issue with not working plugin parameters (thanks @keizz )
1.3.0 - Added option to overwrite/set MessageBox width (per @JohnOminae and @Gregaur Thanks for heads up, mates.)
1.2.2 - Initial post, after I've worked out the first kinks (or so I think)

Terms of use:
- If you want to use it for your game, regardless of it is commercial or free - feel absolutely free to do so.
- If you want to post here to PM me about the game you use my code with - that's grand, but not required. (I just like seeing what other folks are capable of)
- One thing I ask is PLEASE do not rip off my code. If you have ideas - let me know. If you absolutely need to rip off my code, I guess that can't be helped... But give me a note of thanks in your plugin description and link to the original. You don't have to, but its always nice. Maybe I will feel good about my work and make something else that's interesting to someone. =)
- Have a case that's not in the bullet-point above? Feel free to PM me.

Thanks for looking. I am open to comments, questions and suggestions.

How to get:
Full GitHub
Latest Version on Github (1.3.1)
 

Attachments

Last edited:

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
14,660
Reaction score
8,092
First Language
English
Primarily Uses
RMMV
This actually looks really great. I'll have to test it out some time.
 

Moe_Lester13

Veteran
Veteran
Joined
Nov 22, 2015
Messages
72
Reaction score
11
First Language
English
Looks awesome, and it's just what we need to bring more life to our conversations. One question though...
Would it be possible to shorten the command text? Having to input those codes with every sentence would get tiresome :p

Other than that, this looks great :D
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
Would it be possible to shorten the command text? Having to input those codes with every sentence would get tiresome :p
I got tired of putting the same command too. that's why I made the "cont" keyword - it would continue doing the same operation to all portraits since you call it, until you tell it to stop.
This way if you have a character that has 20 lines (explanation of the universe) and for each line you need to place them on the right and mirror them, you call "ww|CONVERSE right cont mirror cont". Until you say "ww|CONVERSE reset", the portraits will be placed right and mirrored.

I am not sure it can get shorter then that, but let me know if that answers your question.
 

JohnOminae

Villager
Member
Joined
Mar 13, 2012
Messages
28
Reaction score
20
First Language
English
Primarily Uses
Other
Hello WickedWolfy! First, I must say, very impressed by your plugin! Thank you very much for making it available to the community.

Though, if I may suggest an enhancement, can you add an easy way to modify the width of the message box in your plugin parameters?
Through Yanfly's Message Core, if you modify the default message width there, then your plugin overwrites that value and places
the width of the window back to default (which is the screen width).

I was able to modify this by making a slight edit to your code (I by no means am a programmer, but thank you for making your code easy to read0, but then this only works properly for the left side speaker and not the right side. Unless you make ANOTHER alteration to get it to work in a hacky way.

Just something to consider. Thanks again!
 
Last edited:

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
Though, if I may suggest an enhancement, can you add an easy way to modify the width of the message box in your plugin parameters?
Through Yanfly's Message Core, if you modify the default message width there, then your plugin overwrites that value and places
the width of the window back to default (which is the screen width).
This sounds like something that should be available, I would gladly look into adding it.
Could you kindly post which line out of which YANFLY plugin you have had in mind?
Is it just "Message Core"? I am currently away from RPG maker and can't check. Sorry. But if you can drop a screenshot of the setting you have in mind I would be more than happy to add compliance with YanFly plugin. I like and use them too. =)
 

JohnOminae

Villager
Member
Joined
Mar 13, 2012
Messages
28
Reaction score
20
First Language
English
Primarily Uses
Other
Thanks for taking the time to look at my request. I'm more than happy to oblige.

So, I don't know where this is inside of Yanfly Message core's code, but below is the setting I'm referring to.
upload_2018-7-3_13-50-32.png


In your code I had to modify the following lines:

Your Line:
var dx = Graphics.boxWidth - dw - ( this.standardPadding() * 2 );
My Edit:
var dx = 800 - dw - ( this.standardPadding() * 2 );
Your Line:
Window_Message.prototype.windowWidth = function() { return Graphics.boxWidth; };
My Edit:
Window_Message.prototype.windowWidth = function() { return 800; };
I'd imagine that you could add a "Window Width" option on top of what you already have in place.

Let me know if you need any more detail from me.
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
Thanks for taking the time to look at my request. I'm more than happy to oblige.
Sorry, took me a bit to reply. I found some other inconsistencies and your width mention is definitely in that pile.
In general I need to do some cleanup and will incorporate more options in next iterations. =)
 

Gregaur

Veteran
Veteran
Joined
Jan 3, 2017
Messages
132
Reaction score
19
First Language
french
Primarily Uses
RMMV
Hi Wolfy,

Your pluggin is great, do you have any update about the Width compatibility ? I have the same problem with the \msgwidth[auto] from the YEP_X_ExtMesPack1. That's sad cause it would be great together. For now my message look like two people discussing for a very long distance...

other question. is it possible to not have any Background color behind the face like the original we have from the game ?

Thanks a lot a have a nice Making !

Greg
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
do you have any update about the Width compatibility ? I have the same problem with the \msgwidth[auto] from the YEP_X_ExtMesPack1. That's sad cause it would be great together. For now my message look like two people discussing for a very long distance...
Yas! I was working on the width issue and found some other "potential issues". Nothing major, but it might be an issue with overlapping with other chat or interface changing plugins. For example, if you want the style for conversation different from anything else, it will be overwritten by my code.
Technically, every other chat plugin does the same thing, I've noticed, so I am trying to adjust mine to work nicely with everyone else.
A bit stretched for time right now with sudden family stuffs, but I would assume that withing two weeks I would fix everything I found and maybe start working on some upgrades that might be interesting to have.

other question. is it possible to not have any Background color behind the face like the original we have from the game ?
Not completely sure what you mean. On the off-chance you are talking about the dark background I have for the face in the white-border box, then yes.
Try setting "Face BG Alpha" to "0". This should effectively remove the background behind the face by setting the transparency for the color to 0.
And if you want the border gone too, try setting "Face Border Thickness" to 0.
Let me know if that was what you were looking for. =3

Small note on why its there in the first place:
Originally I wanted to just make everything transparent, but realized that some portraits clip parts of the face from the portrait by not fitting into the default box. Most of the portraits done through RPG maker are ok, but some hair is "too big". For example, see my screenshot above with the redhead demon lady.
One of the items I want to implement in the future is some better customization for both the portrait box and the chat box, as well as, maybe, image background for the face-block. =3

And thanks for looking and using the code.
 

Gregaur

Veteran
Veteran
Joined
Jan 3, 2017
Messages
132
Reaction score
19
First Language
french
Primarily Uses
RMMV
As a really lazy and impatient guy, I made a few change in your pluggin to fit my project (and only mine). Like John I change the size of the message box manually to a fix amount.

And I actually delete the function for the BG, so no problem.

But thank you for this pluggin, it change everything in dialogue. Not just the sensation that two people are talking, but also like a Stereo effect. Like if the character is on the right of the screen, his face would be there too.

the only negative aspect of this, is that I had to change some of the faces for something more symmetrical. If a character you've create has a tattoo under the right eye, it seems weird to see it on the left eye after the mirror effect.

Thanks a lot for your work !
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
@JohnOminae and @Gregaur
Sorry for the delay, mates. Wanted not to cut corners (Gods know I wanted and had the chance)
Found something interesting... The issue is actually with YEP Plugin brutally overwriting and disregarding core MV function. That's why I had so much trouble figuring out the good overwrite. Eventually caved in and added a setting that works similar to YEP plugin. Not regretting it, should be useful in the future.
Latest 1.3.0 is updated and I have a GitHub going where I can document any issues found and solve them.
Thanks for the heads up on the functionality. Sorry for making you wait... And thanks for using my plugin.

From trying to use my own work I've found it limiting and will be gradually, and in parts, expanding it starting now.
I think I have some interesting and hopefully useful ideas.

Best.
~Wolfy
 

JohnOminae

Villager
Member
Joined
Mar 13, 2012
Messages
28
Reaction score
20
First Language
English
Primarily Uses
Other
Hey Wolfy,

No worries, mate. Thanks for providing an update to this plugin! I'm going to grab it, and play around with it.
I'll provide additional feedback if needed, but last time I think the width option was the only thing.
Sad to hear that Yanfly's plugin was the culprit ultimately, but I'm happy you found a solution.

Keep up the great work! This plugin is a great idea and a great feature to have in one's game.

Edit: I tested out the width change and made sure both settings matched on the value I settled on and it seems to be working swimmingly so far! Awesome work on this. thank you so much for this plugin!
 
Last edited:

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
Hey Wolfy,

No worries, mate. Thanks for providing an update to this plugin! I'm going to grab it, and play around with it.
I'll provide additional feedback if needed, but last time I think the width option was the only thing.
Sad to hear that Yanfly's plugin was the culprit ultimately, but I'm happy you found a solution.

Keep up the great work! This plugin is a great idea and a great feature to have in one's game.

Edit: I tested out the width change and made sure both settings matched on the value I settled on and it seems to be working swimmingly so far! Awesome work on this. thank you so much for this plugin!
Thanks for checking. Appreciate it.

And just to be clear, I am not having on YEP plugins, just found it strange that there was such a straight-up overwrite of the functionality without any ability to attach anything to that part of code gracefully. but I am sure the developer had their reasons for it. YEP Plugins are usually high quality and thought through.
 

keizz

Veteran
Veteran
Joined
Oct 28, 2015
Messages
57
Reaction score
17
First Language
English
Primarily Uses
RMMV
Wow,Interesting plugin ! But can I setting transparent for face border ?

Keep up the good work.

upload_2018-8-31_20-37-28.png
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
But can I setting transparent for face border ?
Yep.
If you want the border gone too, try setting "Face Border Thickness" to 0.
And try setting "Face BG Alpha" to "0". This should effectively remove the background behind the face by setting the transparency for the color to 0.

Let me know if that does it.
 

keizz

Veteran
Veteran
Joined
Oct 28, 2015
Messages
57
Reaction score
17
First Language
English
Primarily Uses
RMMV
Yep.
If you want the border gone too, try setting "Face Border Thickness" to 0.
And try setting "Face BG Alpha" to "0". This should effectively remove the background behind the face by setting the transparency for the color to 0.

Let me know if that does it.
Hi, It's not working, It's still have face border.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,553
Reaction score
377
First Language
Portuguese
Primarily Uses
RMMV
Hey! This seems like a great plugin! I just have one question...
Well two, but since it is declared as compatible with Yanfly Message Core, that answers one of them.
But is it with SRD's Character Creator Ex?
 

WickedWolfy

Touch Fluffy Tail!
Veteran
Joined
Nov 27, 2017
Messages
109
Reaction score
45
First Language
En
Primarily Uses
RMMV
Hi, It's not working, It's still have face border.
You are absolutely right. Something got wonky - values are not being passed from the plugin setup. Give me a few and I'll get it fixed.

Edit1: I found what's wrong. Kinda silly. Let me fix that and I will drop a new file on github.
Sorry for the hustle. This was silly of me.

Edit2: Should be working now. Please give 1.3.1 a go and let me know if that fixed the issue for you.

Hey! This seems like a great plugin! I just have one question...
Well two, but since it is declared as compatible with Yanfly Message Core, that answers one of them.
But is it with SRD's Character Creator Ex?
Not sure how SRD Character creator would interfere with a message plugin. As far as I am familiar with SRD's character creator plugin, it sends face parameters through message box text. I am not modifying that part, so it should be alright.
Would be fun to check it out. Want to give it a go and let me know? If its a no go and you want to help me troubleshoot, I would gladly take a look. =3
 
Last edited:

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,553
Reaction score
377
First Language
Portuguese
Primarily Uses
RMMV
Sure. I'll download your plugin and give it a try later today. I kinda have to leave for classes soon.
 
Last edited:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

I'm back to the bugs.
100 bugs in my coding,
take one down,
fix it up,
132 bugs in my coding.
On the plus side, if all this rioting sparks another Covid outbreak... I will have a whole lot of time to work on my game. Not exactly how I wanted to get that time, but hey I'm a glass is half full... of RM kind of guy. :LZSwink:
A video once in a while won't hurt.
Have a craving for a Nesquik milkshake. No idea why. Haven't had one since I was a kid. lol. I remember them kinda tasting nice, but also leaving a lot of nasty powder at the bottom of the cup.

Forum statistics

Threads
98,068
Messages
949,008
Members
129,341
Latest member
Shinkukae
Top