Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

KaiClavier

245
Posts
9
Topics
282
Followers
44
Following
A member registered Jul 23, 2014 · View creator page →

Creator of

Recent community posts

Oh! Heck, nice find... I completely forgot to make it so Jumpers can work on a scriptableobject! Can you send me an email, I want to make sure this build I whipped up works before submitting it to the store.

My first guesses are...


Have you moved any files within Clavian/SuperTextMesh/Resources? There's some files in there that determine default materials, so maybe it's setting something to null...


Is this happening consistently with another action? Such as... entering playmode, editing an STM object... I'm guessing the letters change to pink squares when this happens?


Are you using HDRP/LWRP code that interacts with STM's shaders? I was able to find this from someone else that looks similar: https://answers.unity.com/questions/1592342/unity-20183-hdrp-change-material-col... Maybe the names inside a script aren't matching up with the variables inside STM?

Update to this, over email we worked out a solution! In Fleece v2.0.0, if your links, colours, and delete button are off-screen like this, go into settings, and adjust the "Hi Res Monitor Fix" value! Hopefully sometime in the future this can be made automatic, but this is the solution for now.

Ah, I was wondering if this would effect macs too...

A friend of mine was having the same issue on PC, and we seemed to have narrowed the bug down to being a monitor's hi-resolution/retina settings. I tried putting a post about this on the Unity forums and got no replies, so I'm not sure if it's a bug or something I did wrong with the current monitor settings. Do you have a way to change the magnification amount of Unity on Mac? It's been a while since I've used a new Mac, but there might be something in display settings...?

Either way, I believe I might have fixed this bug in the next update. I'm currently updating scripts to work with the new Drawstring class, but when I'm done with that, I can send a build immediately! I'm curious if the fix I wrote actually works, haha. Please send me an email with either you Asset Store invoice no. or itch.io email address depending on where you bought Fleece, and I'll send over that build as soon as I can. I'm hoping to finish up these changes today, but I've still got a ways to go.

Hmm, that's pretty complex... you might be able to achieve something similar with undraw animations? You can customize the curves on those to do bounces! Undraw animations are the same as draw animations, they just play in reverse!

Ah yeah, there's no way to preview animations besides using a test scene designed for that.


Try checking out some of the example scenes! STM has a "vertexmod" event that can me used to do additional animations. Try attaching the "STMvertexmod" component to an object and hooking up one of its methods to STM's vertexmod event. The "sketchify" one is very popular, and I've used this method to bend STM along a curve, before.

What kind of animations did you have in mind, though?

Hey!

To make those fields appear, the "read delay" field needs to be a value higher than 0.

If you want to apply a draw animation to text that all reads out instantly, try selecting the "all at once" draw order! I understand this is a bit of a design issue affordance-wise, but I'm not sure how to remove this confusion in the future... I hope this helps, though!

(2 edits)

I'll add this additional check in the next update! I'm curious, are you disabling the STM component, or the GameObject that STM is on? I do remember some weirdness from enabling/disabling the component a long time ago, so this might be the solution to that, if so. I want to be able to repro this first!

Okay, I think i have a solution!

Around line 867 of FleeceWindow.cs, there's an if statement that looks like

"if(currentMousePos != mouseDragStart)..."

change that to...

"if(drawingSelectionBox)"

I think this was some old code I forgot to update. Let me know if this works for you! I was able to repro the bug in a *similar* way initially, but not exactly. But the box doesn't seem to appear for me anymore after this.

Oh, thank you for the video! This was reported to me before and I wasn't totally sure what was happening... Aside from being a graphical error, it should still be usable, but I'll update the support ticket and try to fix it soon! It's gotta just be a boolean I'm forgetting to uncheck...

(4 edits)

Here's where I'll put additional scripts that work together with Super Text Mesh!

Scripts by me:

  • STMJumper This is a Jumper class for Fleece that's already configured to work with Super Text Mesh.

Scripts by others:

Scripts that weren't made *for* Super Text Mesh but can be used together with it anyway, and I got permission to link them in my documentation:

Fleece community · Created a new topic Helper Scripts
(3 edits)

Here's where I'll put additional scripts that work with Fleece!

Right now, that alignment is tied to the anchor point... so if you change the anchor to be Middle Left, Center, or Right, it should align in the way you want. I believe I made it like this because it reflects the behavior of Unity's standard text meshes. I hope that works for you!

Also, if you wanted to obtain the amount of line breaks, I believe the variable "linebreaks.Count", if made into a public variable would do it. Or hyphenedText.Split('\n').Count-1 could also be used! This would be without vertical limit modes though. I think changing the anchor point should be enough, though!

Oops yeah I messed up again when I thought I had it fixed. I thiiiink it should be able to download, now...?

Hi! Sorry about that, it looks like I got the build ready and forgot to hit save... it should be up, now!

Hi! Sorry about that, it looks like I got the build ready and forgot to hit save... it should be up, now!

(3 edits)

Okay, I think I got this working properly. Send me an email with your invoice no. (my address is on my website), and I'll send you a build to test! I also added a unicode tag to the build so <u=200B> is possible.

(1 edit)

Hey!


I actually read that article when designing Fleece! I wish I came across it when making STM but this will prove very useful.

These are all really great ideas, and better hyphenation options have been something on the to-do list for a long time. I think a tag for a zero-width space is a good idea for a built-in feature. (Just like the <br> tag that inserts a \n... could be the lengthy <hlb> like the article suggests...) I believe you might already be able to type "\u200B" but this is very long... I do have an example a script in there somewhere for extending STM with custom tags, so replacing <custom> with "another string" is always doable! I like the article's example of using "^".


I'll take a look at the source and see why those hyphens aren't inserting!

(The build worked! I think this should be out for the next update!)

Oh! These weren't showing in the super-ancient version of Unity I develop in, but I see them now!


I think I managed to come up with a solution for this! I still have your email, so I'm going to send you an updated build!

Wow, that looks fantastic!


Hmm... having the text animate to different scales and then pop back to normal might be tricky... just tried to do it with a single wave to no avail (I thought there might be a way to trick the animate-from-time-drawn waves), so the best choice might unfortunately be... duplicate the wave in the editor a few times, and modify the scale control to be different on each? Then do "<w=sneeze1>a<w=sneeze2>a<w=sneeze3>A" etc... I thought of potentially adding a modifier to the tag like <w=wave,1> but there are so many potential values to change with that, it doesn't feel right?

So, I'm looking into this, and I can't seem to find those auto-configured shader values you mentioned? I don't see the values changing at all, so maybe I'm doing something wrong or misunderstanding what I'm looking for...? I'm also comparing my shaders to unity's default one again and trying to figure out what's even different between them that's causing these values to *not* auto-configure anyway. Either way, I'll make sure that the mask comparison value can be set to greater than 1 in the backend, for sure.

Hey!


Have you tried enabling "scale control" within the editor for your wave? That should give you options to adjust the scale of a wave over time. Here's a wave I made just now that I think has the effect you're after?


Adjusted the wave here to go between 0.8 and 1.0...


Also just realized that both curves end up being called "Curve X" in the editor... I'll get on that for the next update, haha. Anyway, I hope this helps!

Hey!

I set up a sample scene with a UI mesh & a standard mesh that have the same settings, and called  SpeedRead() on both, and they both animated exactly the same. Is it possible your UI text has it's "speed read scale" set to a different value? This value is under the "Functionality" foldout that appears when Read Delay is greater than 0.

(1 edit)

Hey!

Thank you so much for finding this, another customer emailed me about this and I wasnt sure where to start looking for the answers. I can do a few tests and make this the shader's default settings if it all works out!
That bit about _MaskMode will need some experimenting for sure. I think I could potentially automatically set these values to what they need to be in STM's code that handles making temp materials...

The update just went up! Look for v1.8.18

Yeah, you've got the idea! In reality, you don't need a class as fancy as a jumper (but they are very helpful for visualizing things and editing text on the fly). But if you can do...

TextMesh.text = Articy.whereverYourTextIsStored;


Then that will work with STM!

Good catch!


Managed to fix it, for whatever reason, the code for UI text was getting a height value half of what it was getting for normal text, so it wasn't working correctly.

I'll publish the (GC-free) fix in just a minute, but a hotfix is...

On line 3362, swap out all instances of "rawBottomRightBounds.y" with "rawBottomRightBounds.y * (uiMode ? 2f : 1f)".

Hello!

If you're curious, first try out seeing if you can make a text box with Unity's standard text mesh. STM has the same implementations as Unity's default text renderers, so if you can set TextMesh.text, you can set SuperTextMesh.text!


Also, if you're looking for a dialogue manager with localization support, I've actually recently released my own, Fleece! https://kaiclavier.itch.io/fleece

That said, I don't have that many examples set up yet for non-programmers, so my feelings won't be hurt if you go with a competitor, haha


-Kai

I have an idea for what this might be...


Your text size is set to 32, but what is the height of your rect transform? Does this still happen when you set the height to exactly 64?


The vertical limit auto pause stuff can be a bit... precise. Since it's meant to be used for static text boxes, that's fine. But I think what's going on here is that STM is being confused by multiples of whatever the line height is, and sometimes drawing one line instead of two.

Hey!


If you open the inspector for the material bu clicking on it in the project window, there are some additional settings that should effect masks. I was able to get STM to behave appropriately inside of a scroll view by changing the "mask comparison" value to "3" from the initial "8", and setting the "mask mode" to "Inside". I hope this works for you!

Sure! I don't thiiiink it should break anything, so why not!

Hey!

This is something I've thought of before, and actually... I think there's enough in STM for this to be built *on top* instead of changing the code, but changing the code is fine! I publish updates semi-frequently with bugfixes, but unless a change effects you (either fixes a bug or adds a feature you want) you don't *need* to update... and if you do, I think you could use source control to merge your local changes with mine!

Either way, here's three ways to do it:


Inside of SuperTextMesh.cs, there's a PlaySound() method that's invoked every time it's supposed to play a sound. You could just edit this function to do what you need it to do! Or for a fancier approach...


You could make this a virtual method (I'd change it to be virtual myself in the next update if you go with this), and you could make a "MasterAudioSuperTextMesh" class that inherits from SuperTextMesh, but with an overridden PlaySound() function. You can even extend the custom editor to add the additional components you need with the code here: http://answers.unity.com/answers/208172/view.html I think DrawDefaultInspector could be used to get the new components, or you could use reflection? I know I've used code like that before, I just can't find the right forum post.


Method #3 is to use STM's "OnPrintEvent"! This UnityEvent/delegate event is invoked every time a character is printed, and using it together with hyphenedText[latestNumber] you could even do events for specific letters. If you do it this way, you could just have an additional monobehaviour that sits on your STM object and handles audio stuff! This is probably the easiest way to do it and doesn't involve touching the source code at all.


Anyway, I hope this helps! I think method #3 might be the place to start, using delegate events to handle this would be great!

Hmm... okay this might work, but you might be able to use a VertexMod script to grab the exact vertex position data. I have a VertexModSample script included, there should be a sample in there showing how to get a specific vertex from a character index. I'm reeeally hoping that positional data is correct, regardless of Anchor, since it should be a copy of the vertex data the mesh uses.

(1 edit)

Right, it's in the known bugs section of the docs, I completely forgot about that. Is it possible to leave it set to Upper for now? I feel bad leaving in a bug like that, but this is already a workaround?

In your code, "boxLocalPos" is using BottomRightVert.y instead of .x, is that it? Also, you might have to invert the positional Y value.

Hm... The way that you're doing it now is actually a clever way to do it! I think using <readDelay = 0> (or a very small number) would also work, but there's no tag at the moment that automatically cancels this. I think your method might be best for the time being.

<d=0> could be used to make the next *character* appear instantly, I believe

We solved this outside of the forums, but here's the solution:


1. This is something already in the "notes" section of the docs! "Tabbing out of the Unity editor and back in might cause a text mesh to redraw. This does not happen in builds. To disable this in the editor, go into Preferences, and turn "Auto Refresh" off!" So... that's the solution! It doesn't effect builds.

2. I submitted an update that hopefully fixes this. Fingers crossed!! 🤞

Hey!

Im currently using 2018.3 for my own projects, so yes it works! That error was for a problem a customer reported so long ago, neither of us could remember what the issue actually was, and I must have fixed it well before this error went up.

1. In Unity's preferences, what is "Auto Refresh" set to? Does this behavior change when you change this value? What about toggling "remember read position" in STM's inspector?


2. I've been hit with so much work over the past few days and I *know* this bug looks familiar, but I just can't place it. All I changed in 1.8.16 was adding the <y=> tag and superscript/subscript so... if you change line 2580 from "info[i].pos += pos;" to "info[i].pos = pos;", does it make a difference? This will effectively stop superscript text from working, and is the only part of 1.8.16's updates that touch the main text rendering cycle.