Category Archives: Blog

Up next 2016

At the end of 2015 I pondered my 10 year career in 3D and realised not only was I content with everything I’ve done; it was time to move on and push for something new.

After 5 years both student and teacher at AIE plus another 5 years doing 3D architectural visualization I was ready for something new.

Throughout my 3D career I had always coded, whether it was learning web languages to complement the jobs I could take on as a 3D freelancer or out of personal interest in how to script within Maya using Python it’s always been a thing I would dabble in. During my time at AIE I also unofficially  completed the Advanced Diploma in programming, my fellow staff members often going out of their way to guide me through it.

This pushed me into a world of programming I was a newcomer to and gave me an appreciation for low level languages such as c++.

You learn to appreciate what something like a game engine does for you when you try and draw a line in c++…

You can see the projects on git hub here and here

With a the new goal in mind and plenty of experience to work from I left AIE to pursue a new career in programming and development.

That was in Feb 2016, since then things have progressed nicely with interesting projects coming along that have required new languages and frameworks to be used.

To write a diary every day is like returning to one’s own vomit. – Enoch Powell

So another year has gone between articles.

Let’s avoid a wall of text, last year the following went down.

I moved from developing and training for AIE’s Vocational Education and Training program to teaching the Advanced Diploma of Game Art and Animation alongside the Advanced Diploma of 3D Animation & VFX

I had such a great time teaching this class, taking them from intro to 3D through to creating short films and games as a team. That was only the first year of the course!

They made some amazing stuff. Check out the short film below.

 


I’d love to say i’m well read enough to pull quotes out of the air, but credit for the title goes to david who I shamelessly stole it from. My own are hardly so eloquent.

I’m a gamer, are you?

Let’s throw it out there Are you a gamer?

I have seen confusion and way to much anger over this issue lately and like plenty of other people I will weigh in briefly.

I want the focus of this to simply be – “what is a gamer”, in the context of computer games.

Lets make this as simple as possible, a gamer is any one who plays games.

A gamer is not limited to:

  • Gender
  • Race
  • Location
  • Age
  • Anything else you can come up with, don’t do it

Sure, some people love first person shooters, others love angry birds. Yes they are both “gamers”.

This is like people watching comedies or action movies, we are all watching films the only thing that is changing is the genre

There really isn’t any more to this, children, men and women all play games. The real issue is that we can’t seem to play them together.

When good gamers go bad

From where I stand (and it’s lonely up here) the issue can start when a group identifies with being a gamer.

They play a certain genre of game and they play it a lot. So do their friends and they create and join the same social groups, so if I’m a gamer and I put all this time and effort into this single genre that must make me a real gamer. If i’m a real gamer that must mean that you aren’t.

And if my immediate circle is male, then that must mean that females aren’t gamers. If they aren’t gamers that must mean they can’t play games.

Not only is all of this wrong, it’s a damaging mindset to be in.

At least 40% of all gamers are female, you can check the stats here (US) or here (AUS). This doesn’t mean 40% in a given genre though.

image from: http://www.esrb.org/about/video-game-industry-statistics.jsp

So where do we land on “are you a gamer”?

If you want to be sure, join us! games are a unique medium and should be shared and celebrated.

 

Intensive Unreal cert III training at AIE

This week I’ve had the pleasure of running an intensive cert III and VCE VET IDM training for our Vet in Schools teachers at AIE’s Melbourne Campus; we are moving from the Unity3D engine to Unreal Engine 4.

Witness the learning taking place below, You can see the link on AIE’s page here

I don't even remember this being taken!

I don’t even remember this being taken! That’s me showcasing the AIE logo.

The biggest thing I found during this week was the amazing array of character Ideas the teachers had; I’ll be taking a second look at how the curriculum is structured around the character importing process to make it more flexible.

This is the first time I’ve had a chance to sit down with a large group and teach the brand new curriculum I have been developing over the last 6 months or so.

The class numbered around 20 odd with various experience levels, everything from never having touched a 3D package (Maya) or a game engine to having used Maya and Unity for a couple of years; balancing this experience range proved to be a challenge in itself.

The course design and content was received as well as I could hoped for. With everyone enjoying themselves, I’ve got some solid notes on tweaks for specific areas of the course.

In addition to the valuable feedback about the course I’ve added some notes to my own teaching style for dealing with bigger classes.

 

Talks given – Digital Learning and Teaching Victoria

This past weekend I had the pleasure of giving three talks at the Digital Learning and Teaching Victoria (DLTV) conference on behalf of The Academy of Interactive Entertainment.

Conference Program Overview _ Digital Learning and Teaching Victoria

The conference theme was”Creating new connections”.

The talks were fun. Both to put together and take part in.

I prepared three distinct talks, below is a brief overview.

A fresh look at VCE VET IDM

This was an in depth look at a curriculum currently in the works for the Victorian scored assessed VCE VET IDM course.

With a focus on:

  • My process for developing a course
  • Meeting the goals of both secondary schools, students and AIE
  • How the coursework is designed to engage students in new ways
  • Christina covered UOC integration

Fresh look at vce vet idm

Interactive presentation for students:

Shawn Marinakis, Christina Lee and myself gave two interactive game presentations to high school and primary school aged students.

I put together the interactive tower defense game using the Unreal Engine 4. Assets/level’s are from Epic Games combined with my Blueprint Scripting assets to create the interactive portion of the presentation.

This was fun to create, we had the goal in mind that students could come up and play with the settings, which worked out well.

Starting with an imbalanced tower clearly shows game imbalance

Starting with an imbalanced tower clearly shows game imbalance

Custom Tower defense interactive game

This level from the UE4 market place was a fantastic example of a finished level

UE4 tower settings

Example of settings students could change

 

DLTV Conference - crowd snapshot

Creating 3D content is for everyone!

 Interactive presentation for teachers:

Stepping away from the fun side of tweaking pre-made settings Christina and I were able to dig a little deeper into how the unreal engine and other industry standard technology can engage students to excel in so much more than just making games.

Exploring this technology with a range of secondary teachers was a fantastic chance to see how other people perceive technology how may not be aware or used to it. This is a topic i’d like to explore at a later time.

Students that have a chance to work with this technology are exposed to the requirement to develop key skills such as:

  • Problem solving
  • Design
  • Critical thinking
  • Planning

By implementing these skills students get to create a fully playable game, it’s pretty cool and beneficial to the students in all walks of life.

Class blueprints for the tower defense game

Class blueprints for the tower defense game

Thank you to all the organisers of the event and I look forward to the next one!

Shawn Marinakis the Communications Coordinator for AIE Melbourne.

Christina Lee is the VETiS coordinator for AIE Melbourne.

Minecrafting the Dome

During 2013 the State Library of Victoria was celebrating the 100th Centenary of it’s famous Dome building.

While the library had plenty of different celebrations of the historic event Hamish Curry then of the State Library was after a way to do something fun and engaging involving both a younger audience and technology.

Previously Hamish and I had run Minecraft based holiday courses at the State Library that were pretty popular, often filling up within a day of becoming available.

2012-04-13_14.05.19

Everything looks so peaceful

2012-04-13_14.30.12

Welcome to hell

With the knowledge the success of these holiday courses Hamish knew how popular Minecraft was and how perfectly recreating the Dome inside Minecraft would engage a young audience.

Organising the event was a collaboration between three parties headed by myself. The third party was Vitta – Victorian Information Technology Teachers Association (now DLTV). Vitta helped us to spread the word of the event to schools across Victoria.

Mincrafting the dome – Application

Custom server – we needed to build a specific machine to run the server and bring that to the library, for this Peter Smee (Then Sys admin at AIE Melbourne campus) was invaluable

So what did we actually do?

We all learnt about the dome:

Hamish instills knowledge

Hamish instills knowledge

We posed in the dome:

IMG_5795 IMG_5799

And we made the Dome in Minecraft:

IMG_5851 2013-08-10_15.14.29

 

 

We sang:

And finally we finished with an amazing result:

 

While i’m pretty Minecrafted out, running these kind of events is always fun.

after all the hard work

Working with these guys was fantastic, they got so much done and the final result is amazing.

I mean I’ve spent some solid hours teaching a holiday course on how to make awesome stuff, such as how to make Batmobiles and race them, who doesn’t love Batmobiles?

Bot mobiles rock

Bot mobiles rock, the teapot less so

Lets get Unreal – Engine 4 announcement

This year heralded the release of Unreal engine 4, made by Epic Games.

Unreal Engine 4 logo

If you are just getting into the games industry this may not seem like a big deal, Take Autodesk for example they update every year (this is a discussion in itself) and wasn’t there Unreal Engine 3 and Unreal Development Kit just before this?

Unreal_Development_Kit_UDK_Logo Unreal_Engine_White_Logo

Well yes, yes there was. But let’s cast our minds eye to the past and take on board a few things. Things are always worth knowing.

A little history:
UE3 – Came out in 2004 and while it has been updated throughout this ten year period these have all been under the UE3 badge.

Note: If you are unfamiliar with software development of any type it’s a standard practice to release a major version and update it while the next major release is being developed. Much in the same way a games console will stay in it’s current generation for 4-10 years or so but may undergo minor updates while the next console is being planned.

Xbox 360 versions

Prominence in the gaming world

From unreal versions 1-3 Epic games has enjoyed being at the forefront of AAA game development. With popular games on most consoles and PC the unreal splash screen became a familiar site for many.

powered by unreal engine

UE3 licensing

Licensing for these previous versions where limited to high end studios with triple A budgets. I don’t have exact figures on UE3 licensing but you can assume an indie studio would not be able to afford access.

The thing to understand though is that pre-2007 there was no need for Epic Games to even consider another licensing  model. Consider that if Epic had opened it’s doors in the early 2000’s who would have used it? sure there have always been indies and occasionally there was a hit game but it’s only in the last 7 years that indie studios have been viable on a large scale.

UE4 was always going to be developed. But it most likely was not always going to be for general use.

so what changed?

Rise of the indie market.

In 2007 the Iphone was released and with it the app store.

So many apps

IOS was the driving force in bringing mobile gaming into our daily lives, what ever else we may think of Apple they are game changers.

The boom of mobile gaming saw the rise of the Indies (I love that line, so do these guys). This is a continuing trend that currently shows no signs of slowing down.

For many this was the chance they had been waiting for. A chance to make games they wanted to, either to share there vision or to simply be able to form their own studio.

This is a great thing to be able to do on both counts.

Response from Epic games.

Epic games observed this emerging market of amazing game developers producing hit after hit, at the time they where unwilling to de-value and risk there current licensing deals so what could they do?

In 2009 Epic games released the Unreal Development Kit (UDK)

So Unreal, much Kit

So Unreal, much Kit

While perfectly functional the UDK interface is aging

While perfectly functional the UDK interface is aging

UDK was and is free (although it is currently being phased out) for development use for anybody, with royalties being due if/when a game made a certain amount.

UDK had plenty of power for developing. It also had some imposed limitations, lets summarize a few points:

  • No source access.
  • Has “Kismet”, a basic (when compared to UE4 or playmaker for Unity) visual scripting implementation.
  • Scripting must be done through UDK’s unique “unrealScript”.
  • Some heavy features such as multithreading were limited.
  • Wicked networking ability
  • Unreal Tournament was the base for everything
  • Node based material editor

UDK was a great way for Epic to gauge the game dev communities interest in their engine. The interest was there but it just didn’t feel quite right, the community wanted/needed different licensing and an open communication with the Epic development team.

Keep in mind UDK is not UE3, UE3 did not have these limitations. Although i’m pretty sure it also didn’t have Kismet.

 Wow ok enough history – Unreal engine 4 release

I remember reading the news, sitting in a coffee shop waiting to visit a high school to take a workshop in Unity, ah Unity… that is a talk for another time.

Opened up the laptop and boom:

I didn’t believe it at first

So Unreal Engine 4 had no release date, none at all. We knew it was being developed but had no idea when it might come out.

The guys at Space Dust Studios have a great write up here of the UE4 announcement at GDC (as well as a comparison to Unity).

What is working with UE4 like and how does it differ to UDK?

Blows it away in every respect, but then you would hope that’s the case.

  • Source access – full access to the the c++ source
  • Blueprints – Fully functional visual scripting system, so good
  • Support, both from the devs and the community
  • Openness of the devs, check out the UE4 road map here and the blog post about it here
  • Market place – sleek interface that will allow 3rd party content to be sold to developers (currently not active for 3rd parties but is in use by Epic to share example projects).
  • Templates – these are great, want to start in a flying space ship using only Blueprints? sure thing!
  • Example projects – these are often fully fleshed out game worlds
  • Content example project – this one is worth pulling aside from the standard example projects as it’s an amazing resource in itself
Mmmm dark interface

Mmmm dark interface

What blew me away is that this is all part of very reasonable license agreement, this looked so good that I had to did some thorough checking before getting carried away, and then I get really excited.

Multi-platform goodnes

Multi-platform goodness

The licensing was all of a sudden friendly to indies and also educational institutes.

For example:

  • An indie studio can pay $20 per per seat. At this time they can cancel the subscription and continue to use the engine, opting back in at any time is fine.
  • An academic institute will only have to pay $20 a month or a year using the above method for the entire campus. This is fantastic for all institutes and is a good sign Epic is keen on students getting familiar with the engine.

For more about the licensing please visit the source here.

UE4 is a fantastic engine and I’m enjoying working with it.

This post is getting pretty big, I’ll leave it here and post in the future with a more in depth break down of UE4 on it’s own. May even do a tutorial or two on using the engine.

While I do want to talk about comparisons of game engines as well i’ll leave the fun for another post.

Disclaimer: Any references to decision making by any party is pure speculation on my part, informed though it is.

 

Mind the gap Feb 2013 – June 2014

Image by Robert Shea

Art by Robert Shea

Oh no… I last posted in Feb 2013. What happened?

In short:

  • Full time work, what a time sink. I’m currently at The Academy of Interactive Entertainment. Developing, Teaching and various in house projects.
  • Creating Nuke tutorials (I’d love to do more, time willing), often based on Andrew Kramers amazing After Effects work, for example:

Zombie supermarket on xbox controllers, hell yes.

Zombie supermarket on xbox controllers, hell yes.

You can only imagine the sounds Dylan created for this

You can only imagine the sounds Dylan created for this

Pyrrha goes hi poly bananas - do not ask her why.

Pyrrha goes hi poly bananas – do not ask her why.

  • One of my development websites became helpfully corrupted taking down my own with it, rebuilding was always a problem for future me.
  • I coordinated a team along side the esteemed Hamish Curry comprised of several high school students to build the Victorian state library in Minecraft, this was an official event.
State library made in Minecraft

So many blocks

  • CG society masterclass by the esteemed Malcolm Thomas-Gustave covering PyQt for Maya – this was extremely informative, Malcolm knows his business and I look forward to basking in his knowledge again.
  • I took part in a MOOC focusing on the interesting subject of Gamification, MOOC’s are pretty cool.
  • Training and Assessment cert IV (TAE), you can now officially listen to me, whether you do or not is up to you.
  • Cert II in programming (IDMT) using c# and XnA.
  • Accepted that I need more sleep than i’d like.
  • Everyone needs a social life, don’t pretend otherwise.
  • That’s the last year and a half…

So whats next?

i-have-no-idea-what-im-doing-dog-300x190

Always true to an extent

I will definitely post more, promise. I’ll even try to make it interesting.

At the beginning of last year I had different goals in mind for my website, With new goals comes changed content and overall feel.

Less formal and selling stuff, more bloggy and focused on “development”.

To me this term is something everybody should strive for. You don’t need to be the best, you just need to be better tomorrow than you are today.

I’ll post “posts” in the vein of:

  • Interesting and relevant articles.
  • Ongoing Development in 3D related areas, Unreal engine 4, what an engine.
  • I’m starting down the path of learning C++, I’ll document this process.
  • Hell I might even try and do some interviews.
  • Anything I feel like, it’s my blog!

Does anybody read these? well that’s not really the point is it…

Bugs are fun – windows permission error

Recently I rebuilt my computer with an SSD – do it they are fantastic.

Everything was bliss until it came time to render a project out of Nuke, It kept failing a few frames in.

“ok” I thought, it’s most likely a bug with the spanking new nuke 7 – downloaded and installed the latest build – no love.

I actually put this issue aside for a few weeks, but upon installing Unity 4 I hit the very same error when setting up a project.

No way I thought, this error is something else.

Solution: windows security can sometimes be abit vigorous.

For every drive:

Go to Computer select drive>properties>security tab

check under system and admin (maybe users) – if it doesn’t have it assign “full control” to that account – apply and restart.

Note: be careful in here, as with all things system related.

Fixed it for me, good luck!

Maya to Nuke camera alignment

I like doing various small projects, they let me un-earth little stepping stones it’s important to have the knowledge to overcome.

My latest stepping stone was passing data between Maya and Nuke.

Nuke has a fantastic 3D space and I’m very happy with the way it makes some tasks in Maya extremely easy.

To get things lining up nicely between my 2D rendered comps and passing out new elements from Nukes 3D system, happily this is dead easy once you remember a few things

Maya to Nuke

  • The big one for camera alignment – do not plan your camera in resolution gate, plan it in film gate or lament the slight but extremely annoying mis-match between your 2D comps and Nukes 3D output
  • Export from maya as 2010 FBX (others may have artefacts – such as a camera not showing in Nuke)
  • Bake animation
  • If the mesh is looking weird (by weird I mean polys bridging in un-wanted places) in Nuke triangulate the mesh in Maya (under mesh menu)

When importing into nuke

  • Import the file directly into a camera node
  • Import the file again into a read geo node
    • tick “read every frame”
    • if you want all objects select that in the drop down
  • If you need textures on the objects and wish to use lighting use the diffuse material node

Nuke to Maya

Nuke can export FBX files with ease (write goe node). If you want the camera don’t be alarmed by the in-ability to attach a write geo node to the camera… just attach the camera to a scene node and export your FBX straight off the scene, you will have your camera with any animation.

Point clouds also come into Maya as humble locators, extremely handy for camera tracking.

 

Keep in mind point one – “The big one for camera alignment – do not plan your camera in resolution gate, plan it in film gate or lament the slight but extremely annoying mis-match between your 2D comps and Nukes 3D output”  this is the one that causes the most head aches.

Acmi advert

Another project down!

I kept this one short and sweet, focusing on the technique for the “flying paint”

This was achieved in the end by utalising Nuke’s 3D space and bringing in data from Maya and 3D coat to set the scene. A simple roto on the material in nuke for the masking of the paint and boom, effect in place!

The sky was also mapped in using Nuke 3D enviroment to lock it nicely onto the camera move.

 

Escort Cinematic

It’s done!

Well my parts anyways, the other full CGI elements are in the render que but I’ll share my parts early.

I might do a break down for some of the shots in this soon as well.

 

 

Big thanks to Steph K for acting in this one for me, awesome job.

ACMI advert Start

ACMI – Australian centre for the moving image, I’ve been looking forward to doing this project for a few reasons:

 

  • Different style of effects
  • Tighten my workflow with 3D assets between Nuke and Maya

 

I got to excited by this to post about it properly before starting, I’m actually nearing completion as of now (renders waiting patiently in back burner)

 

I’ve already enjoyed testing things, The biggest is a slight camera aperture mis-match between Maya and Nuke. Pretty sure I’ve got the cause nailed down – I’ll test it more later on. I’ve focused things on creating assets in Maya and rendering parts of it out in Nuke where it makes sense, mostly with an animated “paint” trail that flies through the air.

 

Pulses and nodes – it’s exciting!

nodes are always fun

 

The above image is not what creates the below footage… but it is the first shot for the escort cinematic!

My proof of concept for getting the pulses working went exactly as I thought it would (cue the warm fuzzy feeling) so I can now pulse circuits to my hearts content.

The below example uses only 1 render pass (1 frame – different bits) to allow me to create the pulses in Nuke., which affords me all the control of post.

http://www.youtube.com/watch?v=LwBJTgEX92U

 

 

 

 

I’m also tempted to throw a video up of my script orderly random python script in action rather than just post the code.

 

Strike that, the example is up now!

 

 

 

Nuke scripting – let’s get ordely random

#update – here is an example of the script in effect

http://www.youtube.com/watch?v=7XP9rzx1ZTo

 

I needed a function for my upcoming Escort cinematic in Nuke, it didn’t exist out of the box (not that I found anyway).

I needed to be able to create a dynamic random character output from the text node (yay for broken robot HUD’s):

  • Random numbers/integers
  • Random characters
  • The ability to disable these at a given time/frame
  • the ability to choose how many values to display (avoid repeating the statement repeatedly)
I’ve got a background in programming (semester at UTAS) but haven’t delved into python to often, my love affair with nuke might change this.
I got my code working and now for the next step… getting nuke to load this automatically so I need not worry about pasting it in through the script editor. Easy? well yes and no, I have trouble with all the tutorial material being for Macs, but I digress.

So I’ve modified/created my init.py file (relax not the main one… the user one)

After breaking down a little I caved and watched the intro to external .py scripts here And pow, new functionality added!

 

I’m loving the ability to code straight into nuke, the amount of functionality is staggering and I am excited by the things I want to do, yeah this code is pretty simple but I get exactly the control I wanted out of it.

If I get round to doing tutorials (max/maya/nuke) I’ll definitely include a scripting component.

#sorry for the formatting being butchered.

 

import nuke
#####
#startFrame = frame to lock number
#staticInt = number to show after start frame
#digitsAmountStartdigitsAmountEnd = define the range of digits to show, allows
#big number to be shown easily
def randIntLimit(startFrame, staticInt, digitsAmountStart, digitsAmountEnd):
import random
randint = “0”
if startFrame > nuke.frame():
for i in range(digitsAmountStart, digitsAmountEnd):
randint += str(random.randrange(0,10))
else:
randint = staticInt
return randint

def randCharLimit(startFrame, staticChar, digitsAmountStart, digitsAmountEnd):
import random
ch = “”
if startFrame > nuke.frame():
for i in range(digitsAmountStart, digitsAmountEnd):
rand = random.randint(0,35)
if rand < 10:
ch += str(rand)
ch += chr(rand + 55)
else:
ch = staticChar

return ch

 

 

Animation progress

Animation – I cold say a lot about it. I enjoy animating, I’m not the best by far but I can happily say I am improving.

I would like to share my improvements with you!

 

Check out the difference between these three clips

 

11 sec club entry (we all start some place) – April 2011

http://www.youtube.com/watch?v=FmpbebuAVXI

 

Final AIE project 2011

http://www.youtube.com/watch?v=u-qsKIOChCw

 

AIE character animation early 2012

http://www.youtube.com/watch?v=O3_g07U3nB0&feature

Escort cinematic – start project

I am pretty excited about this project not only because it stars my close friend Steph K (get excited for her upcoming website)  but because I get to combine 3d and live footage, something I’m really enjoying the process of.

 

This project consists of

  • Live action elements – nuke
  • 3D elements – maya
  • 2D elements – controlled in nuke
Software being used (so far)
  • Maya
  • Nuke
  • adobe photoshop
  • 3D coat
  • adobe premiere
  • Mudbox

 

Shooting was done at the AIE Melbourne campus and Steph looked amazing as she always does.

 

Steph K – looking great

 

The cool thing about using Steph as my “Lux” character is that Steph is working on the escort game where she designed and modelled the main character “Lux”.

And now she can really personify that character!

 

 

I am hopeless at putting together costumes, thankfully Steph and Jonathan are brilliant at it

 

And a taster of the 3D that’s going in, game asset and current version of high poly version.

High poly versions done by me, based from game mesh – attributed to the Escort game team.

Epsilon rig done by Vitali

 

Meet epsilon, he fixes generators

This is the generator that epsilon fixes.

Game Masters – Game Over

Game over :

It’s been four months of fun, I’ve met so many new people.

Laughed, played and learnt a lot… I also know that being in a full on customer service role and being on the floor almost daily has helped me understand people and myself. Which might sound an odd thing to say after enjoying the odd round of Dance Central (it’s really great)

So Long ACMI, for now.

 

Picture Copyright Robert Shea

 

Vshorts – It was an amazing event and I’m so glad I took part in it. Now I know I have been saying I’d put my V-Short up on the net… But in taking to colleagues and having experienced the night I’ve come to realise something. These “V shorts” are made by the staff Community of ACMI and as such it is a private affair, so while I’m proud of my cheesy little film, private it stays. (and I’m pretty glad the v-short I was featured in is staying private as well, no-one wants to see those dance moves)

 

But I did get a wicked “cut price VFX” award – cheers guys

Whats news – 31st Oct

Busy week, I’ll be posting proper project updates later this week with lovely pictures and such

  • Game masters finished
  • Escort Cinematic is well under way
  • I found out about an amazing looking game really, check it out.
  • Disney bought Lucas Arts – I’m excited and scared about this but we all love Disney right?

 

What is escort and why am I doing a cinematic? Well it’s not just me, like all great things it takes a great team to make most cool things.

Introducing “Lux”

Jonathan and “Lux”