ウディタのピクチャ自由変形で混乱した

自由変形ゲーム製作
スポンサーリンク

どうも、かっぱのごびゅうです。

ウディタでゲームをつくろうと思ってます。
とりあえずいろいろ触ってみたところ、
かっぱ好みの項目を発見しました。
元々の機能として備わっている、ピクチャの自由変形

すごくいいね。

画像ファイルってのは基本的に正方形か長方形なんですが、
それを好きに歪ませられるって感じでしょうかね。
簡易的なアニメーション表現なんかもできそうです。

素敵。

そんな感じで、ひたすら遊んでたんですが、ふと・・・

・・・あれ?
なんか描写・・・おかしくない?

ってなった。
ちょっと画像で説明。
設定は640×480の画面サイズ。
中央に配置してみる(X320,Y240が画面中心)。

・1ピクセルの画像を10×10ピクセルに変形させた。これは問題ない。

・そのレイヤー下に30×10ピクセルの長方形を同じく変形でつくる。これも問題ない。

・長方形を上辺10ピクセル、下辺30ピクセルの台形に変形させる。

・・・左右対称じゃないよね???

なんか1ピクセルずれてる。
座標の数値を見ても問題ない気はする。
じゃあなんでズレてるの?

・上辺30ピクセル、下辺10ピクセル(逆台形)にしてみる。

・・・ズレてるよね。

はい、行き詰ったー。
ここから強制的に、
なんでそうなってるのか納得するまでひたすら思考する
かっぱタイムに入ります。

~かっぱタイム開始~
~かっぱタイム終了~

はい、わかったような気になりました。
えーと、なんか、根本的に勘違いしてたみたいですね。
気づいたことを紹介します。

・その1
・ピクセルってのはじゃなくてだってこと

なぜが点だと思ってました。
拡大するとわかりますが、明らかに四角です。四角は面です。
面を構成する為には、
「横方向の面の数+1」x「縦方向の面の数+1」の点が必要です。
点に挟まれてないと面にならないからね。
座標で指定してたのは点で、実際に表示されるのは面。

もういっかい座標チェック。
左上Xから右上Xまでだと、

1,2,3,4,5,6,7,8,9,10,11,
あれ?・・・ちゃんと11個つかってた。
うわぁ・・・無自覚ってこわい。
「0~10だから10個」だと思ってた。
これがプログラミングに慣れてないかっぱの心理です。

・その2
座標は左上から計算される

これもなんで分かってなかったのか不思議です。
横方向(X軸)は左が0地点です。
縦方向(Y軸)は上が0地点です。
座標を指定する時点でわかっていることです。
かっぱの言っている、
「なんで画像が左右対称にならないの?」は、
画像の中心を0地点とした考えです。
天動説と地動説ぐらいのズレがあります。
世界の中心はかっぱではないことを、かっぱは認識しました。

・その3
ピクセルは四角です

その1でも言ってますが、ちょっと意味合いが違います。
ピクセルは画像の最小単位で、四角なんです。
つまり、
「いくら斜めに変形させたくても、ピクセルは三角とかにはなってくれません」
斜めはほぼほぼ階段状に表示されます。
マリオのブロックみたいな感じですね。

そうするとどうなるの?こうなります。
10ピクセルの正方形を斜めにカットしようとすると・・・

ピクセル数45:55
これがピクセルのズレの正体でした。

左上を座標基点にしているからだと思いますが、
計算上処理できなかった(分割できなかったピクセル)は
左側に描写されているようです。
ルールつくんないと、かぶっちゃうもんね。

とりあえずこれで、現象と原因は解明できました。
あくまでかっぱ的にはね。
さて、対策ですが・・・

左座標(上下)を右に1ピクセルずらすか、
右座標(上下)を右に1ピクセルずらすかすればいんじゃない?

で落ち着きました。

今回求めたものはあくまで左右対称なので、これでOKです。
また違う問題が出て来たとしても、
法則さえ知っていれば、ある程度対処できる気がします。

ホントにこれが法則なの?
それは知らない。
かっぱだからね。
おつかれさま。

コメント

タイトルとURLをコピーしました