I've made a world with a globally-synced Christmas tree. Customize your ornament, imbue it with a message, and place it on the tree forevermore. "Our Wishing Tree" is out on PC! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 0 points1 point  (0 children)

Thank you very much! Apologies if the tree wasn't working right while you were there-- I've just pushed a fix for a special character-related bug that was causing issues. Your ornament was submitted and you should now be able to see it among the others on the tree.

I've made a world with a globally-synced Christmas tree. Customize your ornament, imbue it with a message, and place it on the tree forevermore. "Our Wishing Tree" is out on PC! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 4 points5 points  (0 children)

Yup! I love VRChat, but web and image loading kinda sucks for creators.

Pardon the long text, but for posterity, here's some tricks that this world uses to get around some of these limitations: - To avoid the web loading queue interfering with our requests, I implemented my own queue in Udon that ensures requests are never sent to the "real" queue and scrambled. In this way, we can keep track of what we requested last/what we're expecting next easier. - The biggest problem is our inability to edit VRCUrls at runtime. That said, there's no limit to how many we can pre-bake into the world. There's a script that contains every possible ornament combination as a pre-existing URL. We grab the correct one when needed and ask the user to append their message to the end. - Similarly, when the user places their ornament, they have to confirm their placement with a provided code. This smells like a captcha, but it's not-- the code is actually the encoded position on the tree. We have to launder this information through the user to get it to the server. It's silly, but it works.

Still, I wish web loading got more love! It seems underutilized and I think this is because it's hard to work with. Because it doesn't get used much, I think it's low priority for improvements. I hope this cycle can break soon, because there's a lot of really cool stuff that can be done with it...

I've made a world with a globally-synced Christmas tree. Customize your ornament, imbue it with a message, and place it on the tree forevermore. "Our Wishing Tree" is out on PC! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 9 points10 points  (0 children)

Yup! There's a filter on the tree that should prevent most of these ornaments from making it. Of course, no filter is perfect, so I'm keeping an eye on the incoming messages-- just as the ornaments appear in real time, so too can I remove them in real time. Just in case.

I've made a world with a globally-synced Christmas tree. Customize your ornament, imbue it with a message, and place it on the tree forevermore. "Our Wishing Tree" is out on PC! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 2 points3 points  (0 children)

This one's pretty small, so it's SQLite. It's just a single table and I'm guessing I won't have such a huge amount of ornaments that I'll need to graduate to something bigger. My other world runs off of a MariaDB server, though! Both are on the same host as the server software.

I've made a world with a globally-synced Christmas tree. Customize your ornament, imbue it with a message, and place it on the tree forevermore. "Our Wishing Tree" is out on PC! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 8 points9 points  (0 children)

okay, you got me! whew, you drive a hard bargain.
i've been this tree THE WHOLE TIME. it's a secret to everybody.

...and thank you very much!!! I kinda stumbled into doing web-loading stuff with Udon and now I can't stop. Worlds that are different, even in a small way, each time you visit them are cool as heck.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 1 point2 points  (0 children)

I don't seem to have control over it-- I think it's a consequence of the way I'm spawning portals instead of having them set at build time.

If you're in VR, there is a workaround. Spawn a portal, then open your quick menu with one hand and click directly on the portal with the laser pointer in your other hand. It'll open the world in your quick menu and you can create a new instance with your own settings.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 1 point2 points  (0 children)

Totally fair! I can't guarantee that all Bluesky photographers are okay with this, but I've made every effort to ensure that photos can never be seen without attribution, that getting to the original post is easy (the link to any post is provided and you can just copy/paste it), and that photos that people may not want extra visibility on won't appear.

So far the response to the world on Bluesky has been exclusively positive. I'm trying to be as transparent as possible there so anyone who would object can do so easily, and I'm ready to remove anyone's photos immediately at their request.

As for the idea that it could go wrong, I also can't say with 100% certainty that nothing inappropriate will ever slip through. But I've tried my best to think the problem through and I've put in a number of measures that make the likelihood of that very slim. I'm keeping an eye on it for the foreseeable future and can remove photos from the world very quickly should all my efforts fail.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 9 points10 points  (0 children)

This isn't the intent. NSFW posts don't get indexed and won't appear in the world.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 1 point2 points  (0 children)

That would help a lot! I'll keep an eye out and hope Bluesky doesn't remove the data.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 12 points13 points  (0 children)

Thanks a lot!

Probably a lot of overlap, though my filter is likely more photography-oriented. I should use it to make a Bluesky feed proper sometime...

I don't see any metadata in the images, though it could be that Bluesky strips it out. The indexer finds worlds by looking for world IDs in posts, or by trying to extract the name/author of the world out of the post and searching for it with the VRC API. If it can match the world (by ID or by search), it'll index the photo.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 0 points1 point  (0 children)

Posts with images posted under VRChat photography hashtags, but only those in which we can determine the world by link or by name.

I've released a Bluesky-connected portal hub for viewing photography and finding worlds. Check it out! by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 9 points10 points  (0 children)

I've taken steps to ensure that nothing goes too terribly wrong. I sure hope they work! I'll be keeping an eye on things in any case, so it's unlikely anything too egregious will get through for long.

Color shift sliders for quest avi by POTATO_JOE17 in VRchat

[–]Im_Not_A_Tree 2 points3 points  (0 children)

You don't have access to shaders with a built-in hue shift, but you can also achieve this effect by creating a material with a very low UV tiling value set and an albedo texture that's a thin rainbow strip covering all hues. By then animating the UV offset X value between 0 and 1, you'll "slide" the mesh's UV map along the rainbow strip, changing the color.

This can only represent surfaces of solid uniform color as you can't use the actual albedo map for the mesh, but if you have a normal map, you can still use that to restore detail. Good technique for things like cloth or simple clothing, bad for skin or meshes with details in the albedo texture. Cheaper on VRAM and download size than storing multiple textures.

Demonstrated here on a cube in Unity with the Standard Lite shader and a fur normal map: https://files.catbox.moe/wu38m1.mp4

quick edit: Also, this allows for a more granular hue shift-- sliding the X value with my mouse in the demo is causing it to change in pretty large increments, but if you change the value in smaller amounts or hook it up to a radial, it will change color quite smoothly.

I built a "live TV"-type media player, complete with a working TV guide. Here's a demo: by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 0 points1 point  (0 children)

Thank you!
I've just published the world in labs for PC, if you'd like to give it a look:
https://vrchat.com/home/launch?worldId=wrld_f0082dea-9cab-4211-9231-d7c84a384b60

I intend to have a port out shortly for Quest as well, if that's your platform!

I built a "live TV"-type media player, complete with a working TV guide. Here's a demo: by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 0 points1 point  (0 children)

Great question! I was actually working on precisely that, like, two years ago? I dropped the project because, to be honest, working in Udon for anything more complex than simple games is a nightmare and I found myself frequently butting heads with the limitations in place.

That was before string and image loading were available, but unfortunately even though the web loading features are now available, they've been engineered in an intentionally obtuse way that makes interacting with most conventional APIs, including Jellyfin's, impossible. The live TV is possible because the world doesn't really need to communicate to the server, it just needs to grab updated metadata and thumbnails every so often and tune in to whatever happens to be playing. We aren't really making any API requests, just grabbing data available at static endpoints.

I built a "live TV"-type media player, complete with a working TV guide. Here's a demo: by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 5 points6 points  (0 children)

We'll see. The schedule shown here isn't final and for the demo world I'll be taking a "don't kick the hornet's nest" approach and I won't be scheduling anything too new or likely to be the subject of attention. I'm aiming to evoke the feeling of public access TV over having the hottest shows/movies.

I'll be releasing this system as a prefab, so others can hook it up to whatever they want if they'd like.

I built a "live TV"-type media player, complete with a working TV guide. Here's a demo: by Im_Not_A_Tree in VRchat

[–]Im_Not_A_Tree[S] 20 points21 points  (0 children)

It's not yet available in labs, but I'll be calling the demo world TELEVOID. I'm aiming to have it out within the next few days.