[過去ログ] グラディエーターガール開発室 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
351: ワナビー2024 04/16(水)09:54 ID:USGAi99p(3/8) AAS
あーまータイルマップレイヤーの配列使ってやってみるかぁ
やってから判断すりゃいいかぁ(´・ω・`)
352: ワナビー2024 04/16(水)10:01 ID:USGAi99p(4/8) AAS
あっタイルマップはやっぱ違うな
353: 04/16(水)10:49 ID:xzzQw+qg(1) AAS
スケジュールや締切作ったほうがいいんでね
354: ◆X1HifnAYpUXb 04/16(水)10:56 ID:OSOsCgWJ(4/9) AAS
牛歩っていってるけどまだ一歩も進んでないからなあ
ワナビーは締め切りを宣言して自分を追い込んだ方がいいかも
とりあえず進捗動画は一週間以内に出せるように進めてみようね
355: ワナビー2024 04/16(水)11:35 ID:USGAi99p(5/8) AAS
追い込んだところで能力不足は改善しないんでね 俺の場合
とりあえずじっくり1本ってかんじだな
game a weekやってて感性しねーんだから(´・ω・`)
356
(1): 04/16(水)11:42 ID:HPnurk8H(1/10) AAS
>>345
マス目移動をマス単位での移動、グリッド移動をグリッド上での滑らかな移動とすると
滑らかな移動は目視で状況把握がしやすいってのがメリットかな
瞬間的に位置が変わると移動を見落としやすくなる

移動中に判断する余地ができるので途中で取り消す事もできる
完了後に移動を取り消しても良いのでマス単位の移動で取り消しできないわけではない
357
(2): ワナビー2024 04/16(水)12:22 ID:USGAi99p(6/8) AAS
よぉ分からんのだけど、倉庫番ってイカのようなっ感じでステージ作るじゃない?
var map = [
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0]
]
でもステージがある程度デカくなると、分かりづらくなりがちだし、作ってて楽しくない

だったらタイルマップで描いて、そこから二次元配列に変換したほうがいいのかね?そのほうが直感的に楽しく作れるからなぁ

>>356
baba is youだけど、滑らか移動だからvector2移動なのかなと思う。
そこからロジック用の2次元配列に変換でもしてんだろうけどね(´・ω・`)

ロジック用の2次元配列は何にしても必要になるなと思う
358
(1): 04/16(水)12:41 ID:HPnurk8H(2/10) AAS
>>357
タイルマップとはセル情報(≒2次元配列)をTileSetで設定されたスプライトで表示する仕組みだから
自分がわかり易いなり管理しやすいなり好きな方を選べば良い

ステージのデータはタイルマップで直感的に作る方が楽だと思う
タイルマップのセル情報と配列は変換コードを自前で用意すれば相互変換できるので
どちらで作っても同じ結果に導ける
359: 04/16(水)12:49 ID:HPnurk8H(3/10) AAS
>>357
タイルマップにタイルを滑らかに移動する仕組みはないので実現するなら
移動したいタイルをスプライトに変換し移動完了後にタイルに戻す動作になると思う
ロジックの管理はタイルマップでやって良い
360: 04/16(水)13:01 ID:RZzqwf5R(1) AAS
とりあえず、全部スプライトで描画したらよくね?
まずは得意の2次元配列で、1ステージだけ作るんだ
361
(1): ワナビー2024 04/16(水)14:05 ID:USGAi99p(7/8) AAS
>>358
タイルマップレイヤーから配列取り出せるか調べてみる
362
(2): 04/16(水)14:19 ID:HPnurk8H(4/10) AAS
>>361
自分で調べるのは大事だがタイルセットは複雑なのでほぼ回答しとく
Godotの使い方で他なにかあれば続きはGodotスレで

var coords:Vector2i = Vector2i(x, y) # 取り出したい座標
var atlas_coords:Vector2i = tilemap.get_cell_atlas_coords(coords) # アトラス座標が返る
var tiledata:TileData = tilemap.get_cell_tile_data(coords) # タイルデータが返る
363
(1): ◆X1HifnAYpUXb 04/16(水)14:37 ID:OSOsCgWJ(5/9) AAS
ワナビーがGodotスレに行くとあっちがワナビーの専スレみたいな状態になるからここ使ってもらって大丈夫だよ
(また追い出されるしな)
このスレはゲ制作者に自由に使ってもらって構わない
各々が情報交換できれば有意義だよね
364: 04/16(水)15:02 ID:HPnurk8H(5/10) AAS
>>363
正しくGodotの話題をするなら別にワナビー専スレ状態になっても構わないと思ってる
放置するとゲーム仕様の方向性やら開発モチベーション維持やらGodotと関係ない話題になるから邪魔扱いされる
技術情報としてはGodotの話題はGodotスレに集約されるべきと考えるが
既にGodotスレも他のスレも初心者は居なくなった雰囲気ではあるし意味は無いのかもね
365: ◆X1HifnAYpUXb 04/16(水)15:24 ID:OSOsCgWJ(6/9) AAS
まあ、あっちに情報を残す方がいいという考えなら止めはしないよ
とにかく、このスレは遠慮せず使ってもらえればそれでいい
ワナビーはGodotの専門的な話はGodotスレでして、それ以外の呟きはここですればいいかもしれないね
あっちの方が答えてくれる人も多いだろうし
366: ◆X1HifnAYpUXb 04/16(水)15:58 ID:OSOsCgWJ(7/9) AAS
今作ってるテキストベースのやつボタンで町を移動する方式だけど、自分に技術がないからそうしてるだけで
本当は見降ろしマップでやりたいんだよね
自動生成やるならいっそ生成マップありのローグライクにしようかとも思う
パーリンノイズで地形生成はやったことあるけど、町とかNPC、アイテムの配置とか経路探索とか高度な技術がいりそうで避けてた
でもここまできたら挑戦してみようかな
rouge basinていうローグ関係の情報が集積された海外サイトがあるからそこで勉強しつつやってみるか
能力もスキルもない一人の一般人として、ファンタジー世界でコツコツ生きていくリアル指向かつ自由度の高いゲーム作りたい
367
(1): 04/16(水)16:12 ID:HPnurk8H(6/10) AAS
やりたい事が増えるのは良いけど膨らませすぎると収集が付かなくなるので目処が立つ規模まで絞った方が良いのでは?
自動生成はまず非自動生成のデータを処理ができる上で追加のデータを生成する機能だと思う
コツコツ生活も世界の前に国や街の規模でできるべきだしその前提としてNPC間の関係が処理できるべき

見下ろしマップはタイルマップの使い方覚えたらかなり簡単よ
ローグライクのマップで良いなら生成アルゴリズムも入手しやすいのではないかな?
368: ワナビー2024 04/16(水)16:29 ID:USGAi99p(8/8) AAS
>>362
thanks 調べる
369
(2): 04/16(水)16:32 ID:ucxm2sMg(2/2) AAS
こういうシンプルなのから始めたらいいんでない?

外部リンク:github.com
370: ◆X1HifnAYpUXb 04/16(水)17:08 ID:OSOsCgWJ(8/9) AAS
>>367
そうだね、風呂敷広げすぎるのはよくないかも
悩んだけど、そもそも世界の全部を自動生成ってのは無理な方法かもしれない
ワールドや村の構造やNPCは固定で作って、ダンジョンは自動生成するのが正しいやり方な気がするよ
町やNPCの設置は手作業で作り、間の草原とかは自動生成とかならいけそうだね
371: ◆X1HifnAYpUXb 04/16(水)17:08 ID:OSOsCgWJ(9/9) AAS
>>369
ありがとう
そこ見てダンジョンの作り方勉強してみるよ
372: 04/16(水)17:34 ID:HPnurk8H(7/10) AAS
>>369
面白そうだったから試してみた
説明に書いてあるコードでほぼ動いたよ
TileMapで書かれているのでTileMapLayerで使うにはset_cellの第一引数を消す必要があった
あと説明でも書かれているけどset_cellのsource_idが適切であること
373: ◆X1HifnAYpUXb 04/16(水)19:14 ID:Ju/4aa/m(1/2) AAS
後半までは上手くいったけどpush_backのところでエラーが出るなー
色々試したけど解決せず
というか、そもそも複雑で理解が追いつかなくてこれを応用して作っていくのは自分には難しいかも
マップの自動生成はまだ自分には早いということは理解できたw
374: 04/16(水)19:53 ID:HPnurk8H(8/10) AAS
自分は説明読みながら書き足して行ったけどgithubにプロジェクト一式上がってるから
zipでダウンロードしてインポートしたら動くよ
自分が使ったGodotのバージョンは4.5.dev2

内容的には大きい部屋を小さい部屋に分割して行って分割した部屋同士の連絡通路を作るって仕組みだね
生成処理を_drawで行っているのでこのままでは使いにくいので理解した上で作り直しは必要に思う
375: 04/16(水)20:00 ID:HPnurk8H(9/10) AAS
インポートはgitが使えるならzipで落とさずgit cloneすれば少し楽
376: ◆X1HifnAYpUXb 04/16(水)20:27 ID:Ju/4aa/m(2/2) AAS
原理はシンプルで分かりやすいね
でもコードの理解力が自分には足りてないや
例えばツルハシ持ってると壁を壊せるようにしようと思ったら、これをどう書き換えればいいやら見当もつかないよ
とりあえず、今回のゲームではマップは諦めようと思う
まあ、色々発見があって勉強にはなったしやってみてよかった

自動生成マップは挑戦するにしても、もうちょっと力が付いてからかな
377
(1): 04/16(水)21:11 ID:HPnurk8H(10/10) AAS
技術的には効率良く処理をするために再帰処理で二分木を生成している
再帰処理は慣れないと理解しにくい処理だとは思う

壁とツルハシは>>362で書いたのが基本でget_cell_atlas_coordsでその座標に何があるか分かる
ツルハシを持っていたなら壁タイルを破壊後のタイルに置き換えれば良い
今すぐ理解できなくともそんなものかと知っていれば後で記憶から出てきやすくなる
378: ◆X1HifnAYpUXb 04/17(木)00:48 ID:+dienuvP(1/3) AAS
>>377
なるほど、確かに壁破壊は後からタイル置き換えればいいだけだね
生成するときの処理とは関係ないか…難しく考えすぎてた

先日入れ子の辞書を自動生成するときも、その再帰処理がよく理解できなくて諦めたんだよね
避けては通れなさそうだから再帰処理についてちゃんと勉強してみるよ
379: ◆X1HifnAYpUXb 04/17(木)01:43 ID:+dienuvP(2/3) AAS
勉強してからやってみたら再帰処理で入れ子の辞書作れたよ
諦めてたけど、場所のツリーも自動生成いけそう
380
(1): 04/17(木)09:35 ID:pFiYp9rL(1) AAS
Godotを使用してるんだよな?
str_to_var()を知ってるか? めちゃくっそ強力な変換関数だぞ
GDScript埋め込みの文字列とテキストファイルから配列を自動生成するサンプルを作ったから参考にしてくれ
GodotバージョンはGodot4.3
画像リンク

1-
あと 622 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.013s