Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

If you have any questions, reports, suggestions, or requests about Live2D, please send them to this forum.
※We cannot guarantee statements or answers from Live2D staff. Thank you for your understanding in advance.
 
Live2D Cubism
Cubism Products and Downloads
Cubism product manuals and tutorials
Cubism Editor Manual    Cubism Editor Tutorial    Cubism SDK Manual    Cubism SDK Tutorial
[Notice of Holidays]
Please note that our staff will not be available from 2024/Dec/28 - 2025/Jan/5 JST.
The Live2D Creators Forum will remain open during the holidays.
Submissions that require a response will be answered after we reopen for business.
Please note that it will take longer than usual to respond to your request.

Live2D model position in Cocos2D-X

Hello :)

Im having some issues manipulating the matrix of my Live2D model in cocos2d-x. Let me explain what I want to achieve :
- I want to be able to position my Live2D model using Cocos2D X and Y coordinates.
- I want the model to scale from one screen size to another

For example, when im working in my design resolution (1024*768) I'll specify that my model is drawn at X=350 and Y=768 (that's just an example with random value).
So, I want the render on smaller and bigger resolution to be the same as what I see when Im in 1024*768.

What I have so far :
float scx = (2 / live2DModel->getCanvasWidth());				//Rate of magnification of x axis
float scy = (-2 / live2DModel->getCanvasWidth());				//Rate of magnification of y axis
float x = 0;		//X from 0 to 1024 (design resolution width)
float y = 200;		//Y from 0 to 768 (design resolution height)
float rto = (float)w / h;

float posx = (scx * x);		//Tying to scale X
float posy = (scy * y);		//Trying to scale Y

float matrix[] = {
		scx  , 0  , 0 , 0 ,
		0  , scy , 0  , 0 ,
		0, 0, rto, 0,
		posx, posy, 0, rto
	};

((Live2DModelOpenGL*)live2DModel)->setMatrix(ModelMatrix.getArray());
All my game scaling is defined by CC_CONTENT_SCALE_FACTOR(), which is calculated by cocos2d.
How can I achieve the desired behaviour ?
Im not sure I understand correctly why we need to set scx and scy to those value, why do we use 2 and -2 ? shouldn't we use the scale factor ?

Thanks you :)
Sign In or Register to comment.