3Dゲームのフィールドのテクスチャについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たく

3Dゲームのフィールドのテクスチャについて

#1

投稿記事 by たく » 7年前

初めまして。
3Dゲーム制作講座・BBS等参考にさせていただいています。


自分で思いつく限り調べたもののわからなかったので、
ここで質問させてください。

質問の内容は大きく以下になります。
・大きな3Dフィールドモデルにテクスチャを間延びせずに設定する方法
・モデルを小分けにするのであれば、繋ぎ目のシームレス化の方法

3Dゲーム製作中で、Blenderで広いフィールドモデルを作成しています。
(イメージとしては3DSゼルダの伝説 時のオカリナのフィールドです。)
広範囲の面へ1枚のテクスチャの為かと思いますが、
テクスチャが伸びて荒くなってしまい、思うような見た目ではなくなってしまいます。
※テクスチャの設定方法はメッシュ全体をUV展開してテクスチャペイントで行っています。


調べて目にした方法では、モデルを小分けに作ってマップチップの様に配置するとありましたが、
その場合のマップチップ間のシームレス化わからないことに加え、
モデリング作業の負荷がかなり大きくなるため、現実的ではないと考えています。
もし一般的な実現方法があれば教えてください。

littlestream
記事: 48
登録日時: 8年前

Re: 3Dゲームのフィールドのテクスチャについて

#2

投稿記事 by littlestream » 7年前

マップチップを3Dデータで使うつもりならマップチップを2Dゲームで使ったように
3D版マップエディタを作ってみてはどうかと思いました。
自分だったら、csv形式で出力か、もしくはバイナリファイルで
出力させて、ZX平面にテクスチャーマッピングさせると思います。
もちろん、フィールドは坂道があるので、そう簡単にはいかないですが、

考え方としては、まずモデルにテクスチャーを張っていき高低差のあるモデルデータを10~255種類作ります。
そしたら、マップエディタを使って、Y軸の上から見たテクスチャーをマップエディタに読み込ませます。
そしたら、あとはマップをマップエディタで作り、ファイルを出力させて、DXLIBに読み込ませればいいのではないか
と思いました。

ただし、考え方の1つなので、これが正解とは限りません。

kinokawa
記事: 6
登録日時: 7年前

Re: 3Dゲームのフィールドのテクスチャについて

#3

投稿記事 by kinokawa » 7年前

一般的ではありませんが・・・
Minecraftでベースの3Dフィールドを作りobj形式でBlenderに読み込ませて(ツールがあるようなので)
後からテクスチャーを変更したりオリジナルのモデルを追加したりして3Dマップを作るという方法など

たく

Re: 3Dゲームのフィールドのテクスチャについて

#4

投稿記事 by たく » 7年前

littlestream さん、kinokawaさん
返答ありがとうございます。

ただ私の質問としては、テクスチャの設定の仕方になります。

>>littlestream さん
 ゲーム制作という時点で作業量が多いというのは理解しているつもりです。
 その為、できればエディタを作成する手間を省いて
 テクスチャの設定方法で凌げればと考えています。
 (チップ間のシームレス化もわからないですし。) 

 ただ3D版のマップエディタについて調べたことがありませんでした。
 無料で使用できる3D版のマップエディタも確認できましたので、
 こちらでも対応できないか調べていくつもりです。
 情報ありがとうございます。

>>kinokawaさん、
 マイクラのデータからBlenderで読み込むツールを調べてみましたが、
 あくまでモデルとして読み込むツールであって、使用したいテクスチャを設定する場合は、
 同様の問題に行き着きます。
 また、坂道などの表現がマイクラ風になる為、作成したいものとイメージが変わってきてしまいます。


間違った解釈をしてしまっていたら申し訳ありません。
ゼルダの伝説時のオカリナのようなフィールド等の広範囲へのテクスチャの設定方法を教えていただけたらと思います。
よろしくお願いします。

アバター
usao
記事: 1889
登録日時: 11年前

Re: 3Dゲームのフィールドのテクスチャについて

#5

投稿記事 by usao » 7年前

オフトピック
そういう経験もないし,話のイメージとも違うかもですが…

例えば,広い面のデータを複数の小さな面のデータに分割することは機械的にできないのでしょうか?
(「モデルのデータ」がどういうものなのかわかりませんが,適当に再分割することはできないのか?)

(テクスチャ画像については,並べても切れ目が見えないような絵にすればよい,という話ではなく?)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: 3Dゲームのフィールドのテクスチャについて

#6

投稿記事 by ISLe » 7年前

ゼルダの伝説 時のオカリナ の映像を見る限りでは、シームレステクスチャ(ループテクスチャ)のようです。

UV座標を0.~1.の範囲で貼り付けると、メッシュの中でテクスチャは一対一です。
UV座標を0.~2.の範囲で貼り付けると、メッシュの中でテクスチャは2回繰り返されます。
繰り返す回数が多いほどピクセルは密になり、間延びしなくなります。

Blenderでは、Image Mappingでリピート回数を指定できるみたいです。

ゲームプログラムでは、地面のような平面ポリゴンは動的に生成することも少なくないと思います。

kinokawa
記事: 6
登録日時: 7年前

Re: 3Dゲームのフィールドのテクスチャについて

#7

投稿記事 by kinokawa » 7年前

私の場合、無料のモデリングソフトでテクスチャーなどを規則正しく揃えるのは無理だったので
自作ツールで簡易的にメタセコのデーターファイル(mqoファイル)を作成して
そのファイルをメタセコで読み込ませて他の形式に変換していました。
今でもそういうソフトが無料であったらいいなーと思っていますが・・(^^;
以下は自作ツールで作成するmqoファイルのサンプルです
メモ帳などでtest.mqoとしてセーブしてください
余計な部分をできるだけ省いて作成してます
メタセコLE R3.0で確認

コード:

Metasequoia Document
Format Text Ver 1.0

Material 1 {
	"mat1" tex("t_dang01.png")
}
Object "obj1" {
	vertex 9 {
		-100.0 100.0   0.0
		0.0    100.0   0.0
		100.0  100.0   0.0
		-100.0  0.0    0.0
		-0.0    0.0    0.0
		100.0   0.0    0.0
		-100.0  -100.0 0.0
		0.0     -100.0 0.0
		100.0   -100.0 0.0
	}
	face 4 {
		4 V(0 1 4 3) M(0) UV(0.0 0.5 1.0 0.5 1.0 0.74 0.0 0.74)
		4 V(1 2 5 4) M(0) UV(0.0 0.5 1.0 0.5 1.0 0.74 0.0 0.74)
		4 V(3 4 7 6) M(0) UV(0.0 0.25 1.0 0.25 1.0 0.49 0.0 0.49)
		4 V(4 5 8 7) M(0) UV(0.0 0.25 1.0 0.25 1.0 0.49 0.0 0.49)
	}
}
ねくら様のマップチップをお借りしました
http://nekuramap.blog.fc2.com/
添付ファイル
tea.png
レンダリング結果
tea.png (49.17 KiB) 閲覧数: 9925 回
t_dang01.png
テクスチャー画僧
t_dang01.png (7.85 KiB) 閲覧数: 9925 回

返信

“C言語何でも質問掲示板” へ戻る