コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
うつりきまぐれ ◆8rpaj7TJiZUt
2020/1/29 20:27
質問
スクリーン座標からレイヤー座標に変換したい
スクリーン座標から特定のレイヤー座標に変換する行列の作り方とかを教えて欲しい……完全に詰んでます。
LMATRIXに設定した行列 (転置する前) の逆行列かな?とか思ったけど違うみたい、

コメント

アバター
あきと 2020/1/29 20:50 ◆qGd5dQw2g3a2
一番最初の文章がないような…
「●●を■■で表示しているときに」みたいな前提があるのではないですか?
アバター
こういち 2020/1/30 5:38 ◆ou0jbJnEJ0Kb
拡大して平行移動とか?
アバター
うつりきまぐれ 2020/1/30 7:54 ◆8rpaj7TJiZUt
Minecraftのブロックの面のような、軸に平行な平面を表示させたいと思っています。そこで

1. レイヤー1〜7 をカメラの位置を中心とした立方体状にLMATRIXで変形させて配置。( 自分は常に立方体の中にいる )
2. スプライトを、表示させたい面のレイヤーに所属させる (SPLAYER)
3. ワールド座標をスクリーン座標に変換する。ここまでは、レイヤー関係なくただ単に表示するだけのときの話。
4. スクリーン座標の位置に表示させたいが、レイヤーを変形させているので、スクリーン座標をレイヤー上での座標に変換したい。それを SPOFS に。

6つのスプライトをうまいこと各レイヤーに配置できればそこに立方体/直方体/平面があるように見えるのではないか、ということです…
アバター
あきと 2020/1/31 1:33 ◆qGd5dQw2g3a2
聞いてみたら手の出ない話だった…
LMATRIXを使ってテクスチャつき立方体を一個出したいということ?
アバター
うつりきまぐれ 2020/1/31 22:40 ◆8rpaj7TJiZUt
遅い返信すみません。

最終的なゴールはスプライトの面でできた立方体を、任意のワールド座標に表示させることです。
そのためにまずレイヤー#1〜#6を立方体状に配置させます。とりあえずここでは1辺512ピクセルで。
そのあとスプライトの面をレイヤー#1〜#6にそれぞれSPLAYERさせた上で表示させるのですが、その位置をワールド座標から計算させたいのです。
変形していないレイヤー#0にある#GSPRITEにグラフィックで線やポリゴンを出すなら単にワールド座標からスクリーン座標に変換するだけでOKで、それは既にできています。
しかしそれぞれの面のスプライトを、それぞれ立方体状のそれぞれの面のレイヤーに所属させているので、レイヤー座標に変換しなければいけません。
そこでいまやりたいことは、最終的に表示したいスクリーン座標から、変形したレイヤー上の座標を求めたい、ということです。

図でいうと、赤と緑と青で塗り潰してある立方体をスプライトで表示させたいわけです。それぞれの色は説明用で、所属しているレイヤーの色と同じです。灰色の立方体は、ただ単にレイヤー#0にグラフィックで表示させているものと思って下さい。これは実現済みです。
アバター
うつりきまぐれ 2020/1/31 22:42 ◆8rpaj7TJiZUt
すみません、図の塗り潰した立方体の、上の面の緑色は水色の間違いです。
たとえば表示させたい立方体の+Xの面は、-Xのレイヤーで表示されるみたい。
アバター
あきと 2020/2/8 20:31 ◆qGd5dQw2g3a2
日経ソフトウェア2020年3月号にLMATRIXの特集があり、その記事の中でLMATRIXで変形表示させているレイヤーとスプライトの位置を一致させる計算が出て来ています。

奥に倒したグラフィック面とスプライト(これはレイヤーに属してはいません)の位置が一致して表示されてました。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -