Ren’Pyの3Dステージについて座標の考え方がややこしいので整理しました。結論としてRen’Pyの座標系は監督視点で考えるとわかりやすいと思います。
まず以下のように監督、カメラ、画像が並んでいるとします。
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-3.png)
画面上ではこんな感じです。
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-1-1024x568.png)
ここでmatrixtransformにMatrixRotate(0, 45, 0)を指定すると以下のようカメラではなく原点を中心に回転します。
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-4.png)
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-2.png)
ここからカメラのxposを変更するとカメラから見た横方向①ではなく監督から見たx方向②に移動します。カメラではなく画像を移動する場合も同様に②の方向へ移動します。
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-5.png)
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-6.png)
さらにカメラをx軸で回転させた場合もカメラ自身を中心に回転するのではなくx軸の原点中心で回転します。
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-7.png)
![](https://akakyouryuu.com/wp-content/uploads/2022/02/image-8.png)
例外として、matrixrotateでz方向に回転させた場合上述のようにz軸中心でカメラが回転しますが、rotateで回転させた場合はカメラではなく画像の方が回転するようです。
これらの考え方に従うとRen’Pyの座標系を理解出来るでしょう。もしカメラを中心に座標移動をしたい場合はOffsetMatrix*RotateMatrixの順に移動するとできるようになります。