Home› Technical Talk

Color change effect questions

Disclaimer: I am a total newb, so if something I say doesn't make sense, please let me know and I'll try to explain better.

I want to freelance out some work, but I'm trying to first better understand what I need so I can offer more clear direction to the person I hire.

I have a Maya model with a skeleton rig built in. I'm trying to find someone to port it into a game engine, so that I may write software that allows me to control some basic movement of the model, and also to mimic the color change effect seen in this commercial to a given RGB value:
[ame="http://www.youtube.com/watch?v=H6YOlFbT3kM"]Valspar TV Commercial - Jon and Val Find Their Perfect Color - YouTube[/ame]

My questions are as follows:

1) Is it feasible to have that type of color change animation done real time in a game engine? I can't find any examples online to support or disprove this notion.
2) Are there any game engines which are better suited or worse suited for this job?
3) What type of game artists would I need to contact in order to do this job?
4) Any rough guesses of the number of hours needed to complete this?
5) My software that interfaces with the animation will most likely be written in C++ with OpenCV. Are there easy to use interfaces through which my software would be able to control the animation and color change of the part that was created in the game engine?

Thanks in advance everyone.

Replies

  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    best to do the colour change in shader either lerp between 2 textures, or colour it with vector values and lerp between them.
  • LukeL99
    Options
    Offline / Send Message
    So with the first method, would you have to have a texture prerendered for each different color?
  • Eric Chadwick
    Options
    Offline / Send Message
    You could do it a few different ways.

    1. Yes, this is certainly feasible, and not all that difficult.
    2. Lots of options here. Depends on the app you want to make, what platforms you want to deliver it on, how you want to monetize, etc. Unity is easy to get started with. Unreal has easier tools for creating new shaders. Etc.
    3. A generalist would be your best bet. Someone who can model, texture, animate, and do the technical side too.
    4. Depends on the complexity of the model, how much animation, how many color changes, etc. Need more info to make an estimate.
    5. As long as you have access to your shader variables, and can wire those into the UI of your choice, you should be good to go.

    Looks to me like the chameleon texture is basically the same pattern, just with different hues. So you could use a single color texture, and set up the shader to alter the colors as you like. The colors could be stored as RGB decimal values.

    Here's an example of changing shader colors on the fly.
    http://ericchadwick.com/img/env_robot_rising.html#themepalettes
    Here the colors are changed everytime a new level is loaded, so the level looks totally different. Only the color values are being changed here. But it could easily have been dynamic instead if we wanted to do that.
  • Eric Chadwick
    Options
    Offline / Send Message
    Here's an example of changing color values dynamically.
    http://ericchadwick.com/img/env_robot_rising.html#gameplaydesign
    About halfway into the video. It's a timelapse. That's the Unity interface I'm using. And that's the interface for a shader that one of the programmers wrote.
  • LukeL99
    Options
    Offline / Send Message
    Eric, that's super helpful info. Thank you.

    Our model is very high poly count, similar to what you see in the video. The biggest things we would want is for a character to look around and appear to be following your gaze wherever you go, controlled by the output of the camera software we write in OpenCV. We'd want to script in a couple of other waiting gestures, just to make it look more alive, such as shifting around uncomfortably, or something similar.

    As you can see in the video, the color change starts at one limb and gradually grows across the rest of the model. Think Mystique from the X-Men movies as she's changing to blue. Would that still be as easily accomplished as the examples you've posted above? I'm looking to give the model infinite variability (based on an RGB value, so really 255^3 variability), but if push came to shove, we could pick 50 colors or so to have canned animations to.
  • Eric Chadwick
    Options
    Offline / Send Message
    Yep, that's all do-able. It'll depend heavily on the shader that you'll need to write for it, so make sure the game engine you want has decent shader support. But you could do floating-point color, so I think that's 65K or is it 16M?

    The color can be dynamically set at run-time based on some kind of input. Just need a way to feed the simulation which color to use. Sample the floor pixel colors? Sample mouse position? Whatever you want.

    One way to control the flow direction of the transition is to use gradients of vertex colors. For example, red VC at the tip of the right arm, fading to black at the other end of the model. Green for the tip of the left hand. Blue for the right foot. Vertex alpha for the left foot. Etc.

    May need to add more vertex color channels if you want more start-end locations.

    Mystique's transition has scales that fluff out along the transition boundary. That kind of effect would be a bit harder to pull off, but could ultimately be done in realtime if you're willing to spend a fair bit of time debugging and tweaking.

    I'm available right now for freelance work, if you're interested.
  • LukeL99
    Options
    Offline / Send Message
    Eric, I PMed you. I'm still looking for more opinions on this, so please don't be afraid to chip in.
Sign In or Register to comment.