[過去ログ] 【軽量】godot engine - part2 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
291: 2023/01/03(火)03:27 ID:Z9Iqiz3d(1/2) AAS
Godotに限らない話なんだけど
セーブとロードの仕組みって
 ゲームの進行で変化する値を
 ステージとかマップ座標とか各キャラステータスとか並び順とかこなしたイベントとか
 全部辞書変数とかに格納して
 JSONとかの形に外部に出力
 ロードする時は読み込んだ値を1つずつ所定の変数に放り込んで
省7
292: 2023/01/03(火)16:34 ID:jU/Qlt27(1) AAS
結果的に意図した動作になるなら、方法は自分が一番把握できる方法を使えば良い
293: 2023/01/03(火)17:37 ID:NzOGVfJd(1) AAS
ゲームのコンセプトによってどういう実装が適切かはまったく違ってくるからね
極端な話、あえてセーブがないコンセプトのゲームだってあるんだし
実行中のステートをなるべく完全に再現するコンセプトでも、セーブポイントをいつでもできるようにするか
特定の箇所のステージクリアなど敵味方の配置などは保存しなくていいタイミングにするかでもまったく違ってくる
294: 2023/01/03(火)20:49 ID:rzolJPWn(1) AAS
必要なだけ再現できるデータを保存すればいいんよ
データからプログラム変数の状態を復元できるように設計しておく必要がある
295: 2023/01/03(火)22:51 ID:Z9Iqiz3d(2/2) AAS
とりあえず
 必要な変数を外部に保存
 読み取ってそれぞれの変数を再配置
 再配置したデータを元にゲーム部分を開始
 そういう関数を作って必要な場面(ゲーム部分開始前とか)で実行
っていうイメージ自体はセーブ・ロードの挙動からそれほど外れてないっぽい?
基礎的な動かし方さえ変な勘違い無ければ練習してみようかなと思う
省2
296: 2023/01/04(水)09:44 ID:eYuX7IgK(1/2) AAS
godotあんま触っていからエアプかもしれんけど各ノードでやってもいいと思うよ

SaveGroup作ってグループからノード取得

ダックタイピングorセーブベースみたいなクラス継承してるそれぞれのセーブ関数とロード関数一括で呼び出す

それぞれのセーブ、ロードの実装は
各ノードでやれば全部の配置考える必要ないから
追加・削除が楽
297: 2023/01/04(水)09:52 ID:eYuX7IgK(2/2) AAS
あと確かgodotはリソースクラス丸々セーブできたはずだからjsonでなくてもいい

その辺はリファレンス見てくれ
298: 2023/01/04(水)18:40 ID:IxlseNjM(1) AAS
実装に慣れていない人に新しい知識を与え過ぎると混乱の要因になる
JSONでも何でもいいから、知ってる基本的な知識の中で処理を実装してみることを考えた方がいい

それでも上手くいかない時に、技術的な質問をすれば良い
使い慣れて仕組みがわかるようになれば自然ともっと良い方法がわかるようになる

一応、公式では辞書を使った方法をサンプルを出してる
外部リンク[html]:docs.godotengine.org
299: 2023/01/05(木)02:37 ID:KCtON2fJ(1) AAS
丁寧にありがとうございます
 ノードの必要な変数を辞書変数に格納して返り値にする関数作る
 セーブ用の関数内で各関数を呼び出してそれぞれ取得
 公式通りにJSONで書き出し読み込み
 読み込み処理後に変数が変わってるか確認
こんな感じから始めてみようと思う

リソースクラスはセーブ調べる途中で見つけて
省4
300: 2023/01/06(金)20:28 ID:ltY0usEG(1) AAS
セーブデータって大体どのゲームでも必要だけど自作すると思ってる以上に面倒だよね
301: 2023/02/10(金)01:19 ID:oHvfpegd(1) AAS
いよいよGodot4.0もRC1か
3.xと大分触り心地変わって来たから早いとこ日本語ドキュメント揃えて欲しいな
302: 2023/03/02(木)00:12 ID:ADTXdDzF(1) AAS
4.0正式来たってよ
303: 2023/03/02(木)04:58 ID:Bxb2JZRt(1) AAS
祝4.0‼︎‼︎
304: 2023/03/02(木)11:49 ID:TfW4Hj6z(1) AAS
旧バージョンは3.0のレンダラーだと出力したゲームがCPU使用率はショボいのに
CPUクロックだけ常時フル回転する謎のおま環に悩んで使うのやめたんだが
4.0だと直ってたやったぜGodot始まったわ
305: 2023/03/02(木)16:15 ID:sRzc+JvW(1) AAS
よし作るか!!
306: 2023/03/02(木)18:07 ID:mhcZUQ81(1) AAS
公開が半年くらい先になるような作品なら使い始めても良いんじゃね
コミュニティでも言われてるけど、イベントに合わせて急いで出した感は結構強い

でも、画面が崩れたりクラッシュだらけのベータ時期よりは結構安定してるから少し待てば十分安定すると思う
307: 2023/03/02(木)19:12 ID:rI5g0K7d(1) AAS
俺Sandyおじさんだから蚊帳の外
308: 2023/03/03(金)09:26 ID:IEEY0QS7(1) AAS
ブランニューエンジンと言ってるが、ほんまに想像以上に別物で互換がないから、しばらくは3.5でがんばる
3Dゲーム作りたい人は1から作り直ししてでも4.0に移行した方がよさそうだけども
309: 2023/03/03(金)11:59 ID:KKp9WiVq(1) AAS
alphaからずっと4.0使って来たけど3.xに比べてgdscriptの感じも大分変わったし移行するなら早めにしちゃった方が良いぞ
310: 2023/03/03(金)12:12 ID:rDoDXzfX(1) AAS
今まで使ってなかったけど、新しいgdscriptはちゃんと動くんなら使いやすそうな仕様だね
311: 2023/03/03(金)18:49 ID:sAMS/0LL(1) AAS
そんなに違うのかー
日本語のレビューとかもっと見てみたいけどね
312: 2023/03/03(金)21:32 ID:iqGMNq7E(1) AAS
床レイヤーと壁レイヤー?と思ったら動く足場用のプロパティか・・・
bodyは名前色々変わってるしYsortノードも無くなってプロパティで設定できると・・・
マジで別物すぎるだろ
これから始める人は3触らない方がいいな
313: 2023/03/04(土)07:00 ID:fVoTFsxt(1) AAS
ラムダとやら全然わかんね
まぁ全ての機能を無理に使う必要ないけど
314: 2023/03/04(土)18:00 ID:ZhmEd2qI(1) AAS
↓みたいなCallable型の引数を取る関数があった時に
func foreach(arr:Array, f:Callable):
 var i:int = 0
 for e in arr:
   f.call(i, e)
   i+=1

↓foreach()の第2引数に定義済の関数を渡すのが普通のやり方
省19
315
(1): 2023/03/07(火)13:47 ID:OJB8Hm7j(1/2) AAS
2Dのためにgodot使ってるから4.0はしばらくいいかな…
2Dでも何か利点ってある?
316: 2023/03/07(火)13:55 ID:fAhovnpz(1) AAS
3D酔いしない
317: 2023/03/07(火)17:06 ID:50UBZi0H(1) AAS
>>315
今後のサポートが長い
318: 2023/03/07(火)17:10 ID:RVxgtnpD(1) AAS
Godotの2Dはピクセル単位の整数で座標指定できるから好き
319: 2023/03/07(火)17:16 ID:1iY7lsGn(1) AAS
現状、4.0の2D系は色々と不足してて不満が多いみたいね(特にドット系)

4.1で多くの問題は解決される予定だから長い目で見ればメリットは十分あるよ
それも来年くらいの話になりそうだけど
320: 2023/03/07(火)18:03 ID:OJB8Hm7j(2/2) AAS
そっか
やっぱとりあえずは3でいいかな
乗り換えの時のために情報だけ何となく拾っとくくらいでいくわ
321: 2023/03/07(火)21:00 ID:j3axOKFu(1) AAS
外部リンク:www.reddit.com
4.0ピクセルパーフェクトにできない問題これか
直すのはかなり大変みたいだな
俺もまだ3.5でいいか
322: 2023/03/14(火)17:51 ID:miZ3euEs(1) AAS
3.5の時の3x3minimalテンプレ使いたいんだけど
4.0のAutotileの挙動がわけわからん
情報探そうにもあんまりヒットしないしみんなどうやって理解してるんだ
323: 2023/03/17(金)02:33 ID:+++OGmX4(1) AAS
タマランノウ (*≧∇≦)y─┛~~~~
324: 2023/04/04(火)16:06 ID:4HFTSXCp(1) AAS
ラベルノードのインスペクターからテキストに半角で(を入力すると表示されるけど全角の(を変換して半角にすると何も入力されない
4.0.1と4.0.2RC1で確認
325: 2023/04/04(火)17:46 ID:nEpDfY8T(1) AAS
バグ報告ならする場所が間違ってるぞ
外部リンク:github.com
326: 2023/04/05(水)21:16 ID:hRcETCod(1) AAS
ちょっと気になるくらいの事なんですけど
change_sceneを行う時、
切り替えたいシーンをシーンツリーにノード化して用意してからロードするのと、
直接 res:から読み込んだ場合で何か違いはあるんでしょうか?
327
(1): 2023/04/12(水)10:56 ID:FPh8qGON(1/6) AAS
unityからogodt戻ろうかな(´・ω・`)
unityはいちいち重いから困る

そもそもunity行った理由がアセットが豊富だからなんだけど、このデメリットってカバーできるかな?
328: 2023/04/12(水)10:56 ID:FPh8qGON(2/6) AAS
あと、ゲームはsteamとかitchあたりで出したい
329: 2023/04/12(水)11:15 ID:FPh8qGON(3/6) AAS
standard assetみたいなオフィシャルなやつあったらいいんだけどな
330
(1): 2023/04/12(水)12:48 ID:RdsS5G1w(1) AAS
>>327
起動が億劫になるよね
あとプロジェクトフォルダもでかいから持ち運ぶのも大変
331: 2023/04/12(水)17:14 ID:FPh8qGON(4/6) AAS
>>330
そうそう、軌道も遅いしプロジェクトも数Gあるし、、、
大作になると便利なんだろうけど、パズル程度ならもう少し軽いほうがいいかなって

game a weekで交互に使っていく
覚えられるかな療法
332: 2023/04/12(水)17:27 ID:FPh8qGON(5/6) AAS
アセットストアは一向に充実しないわね(´・ω・`)
333: 2023/04/12(水)17:31 ID:6145NizA(1) AAS
本家もわかってはいてもそこまでは手がまわらんのだろうな
ここはひとつユーザコミュニティサイドでそういうものを立ちあげていくしかない
334: 2023/04/12(水)18:08 ID:FPh8qGON(6/6) AAS
まあ自分で作るかitchあたりで探す感じかな
スターターアセットくらいはほしい
ホワイトボックスだけ作ってサクッと動かしたい場合とかあるし
335: 2023/04/13(木)17:38 ID:75RPW/ZO(1) AAS
一番使われてるアセットはゴドーくんの顔
336: 2023/04/16(日)20:35 ID:pp7atYMv(1) AAS
アニメーションプレイヤーのループボタンって
暗い方がオンだったのか
337: 2023/04/20(木)19:44 ID:UvQQPaaA(1) AAS
tilesetの編集ってgodot上でできましたか?
tiledなど使わないと駄目でしょうか?
338
(1): 2023/04/26(水)22:40 ID:43QDxUvl(1) AAS
AnimationTree経由で再生されたアニメーションだとanimation_finishedシグナルが出ないのな
339: 2023/04/27(木)07:06 ID:Hvscjckf(1) AAS
>>338
アニメーションの終わりでメソッド呼び出してemit_signalしてみるとか
340: 2023/04/27(木)09:56 ID:6ga1p8oR(1) AAS
アニメーションに終了メソッド呼び出しを手作業で追加するのが面倒だからスクリプト書いた
4では治っているようだがバックポートはなさそう #70278
tool
extends EditorScript

func _run():
var path = "res://units/player.tscn"
var animation_name = "AttackSord"
省20
341: 2023/04/29(土)21:08 ID:GyoLXcxZ(1) AAS
GDscriptで組むかC#にするか迷う
342: 2023/05/04(木)14:38 ID:ZcQqa3h2(1/2) AAS
normalize関数についての記載はリファレンスのどこにあるのかわかりませんか?
gd4使ってます

外部リンク:docs.godotengine.org
343: 2023/05/04(木)18:40 ID:Rk1rGymi(1) AAS
これとか?
外部リンク[html]:docs.godotengine.org

後はVector2かVector3のクラスリファレンス見るの良い
外部リンク[html]:docs.godotengine.org
外部リンク[html]:docs.godotengine.org
344: 2023/05/04(木)19:00 ID:ZcQqa3h2(2/2) AAS
どもっす
vector2クラスのページにあったんですね
345: 2023/05/06(土)10:58 ID:0eDCXO8X(1/3) AAS
こんちゃす
kinematicbodyは廃止されて、characterbodyになったんでしょうか
move_and_collideの使い方も微妙に変わってる感じ
346: 2023/05/06(土)11:04 ID:0eDCXO8X(2/3) AAS
↑自己解決
347: 2023/05/06(土)19:53 ID:u8C0K2FB(1) AAS
外部リンク[html]:docs.godotengine.org

SpatialはNode3Dになったんか面倒だな
348
(1): 2023/05/06(土)19:59 ID:0eDCXO8X(3/3) AAS
質問させてください
画像リンク[jpg]:i.imgur.com
一回、一番上のtreeとrootを取ってから、main_charaノードを取りたいのですが、うまくいきません。
rootが取られてしまいます

これってなぜでしょうか。

ownerを使ってもいいのですが、親シーンにアタッチした子シーンのスクリプトからは、ownerで親シーンのルートは取れません。
349
(1): 2023/05/06(土)22:49 ID:/PQZt10j(1) AAS
>>348
実行時はroot内にシーンが配置されるからね
実行中にシーンタブのリモートを見たら階層構造が分かる
画像リンク[png]:i.imgur.com
350: 2023/05/07(日)06:06 ID:RnycJYW/(1/2) AAS
>>349
どうも
もう一階層あったんですね
351: 2023/05/07(日)11:05 ID:RnycJYW/(2/2) AAS
ところで、シーン1にアタッチしたシーン2(敵キャラ)から、シーン1上のノード(主人公)を取得したいのですが、
ノード名で取得しようとするとノード名を変更したときに2箇所変更しないといけないです
@exportを使って、対象となるノードをインスペクタに指定しとけばいいのかなと思うんですが、同じシーンのノードじゃないと指定出来ないんですねこれ。

考えたのは敵キャラ用のスクリプトをシーン1においておくことですかね。
そこに主人公を指定しておく。
352: 2023/05/09(火)10:41 ID:jLsa6d4U(1) AAS
↑訂正
シーン1とシーン2があって、シーン2の変数(@exportでインスペクタに表示させる)としてシーン1上のノードを指定したいのですが、それは可能でしょうか
353: 2023/05/09(火)15:15 ID:P7zrLMRE(1) AAS
メインシーン側で敵シーンをインスタンス化する時にプレイヤーの情報を渡せばいいんじゃない?
@exportで指定したプレイヤーシーンはインスタンス化して使うとなるとメインシーンのプレイヤーとは別オブジェクトになるんじゃないかな
354: 2023/05/10(水)06:07 ID:A6GE9ca4(1) AAS
↑どうも
引数でキャラクターを渡す感じですね
試してみます

unityのプレハブになれてたからこのへんは違うんですね
355: 2023/05/26(金)11:39 ID:kv9U6X2f(1) AAS
ttc フォントファイルはパスを手入力したら使えるんか
356: 2023/06/01(木)17:50 ID:gjh91IOB(1/2) AAS
質問
2dでローカル軸方向に動かすにはどうしたらいいのですか?
basisかな
357: 2023/06/01(木)19:06 ID:gjh91IOB(2/2) AAS
自己解決すまん
358
(1): 2023/06/01(木)21:24 ID:iYYCoT1u(1) AAS
いいってことよ
359: 2023/06/04(日)14:08 ID:JAQAnDb3(1) AAS
characterbody2dってコリジョンの検出出来ましたっけ?
重力ありの弾丸(シューティング)を作ってます
出来ないとたら子供にarea2dなどをもたせるんですかね?

>>358
どうもす(´・ω・`)
360: 2023/06/05(月)06:35 ID:CayWpKdl(1) AAS
自己解決
適当にやる
361: 2023/06/06(火)11:21 ID:GXRlgHOj(1) AAS
ちわす
他のシーンのスクリプトを書き換える方法はあるでしょうか?

一度シーンをインスタンス化しないと駄目なように思いますが、元のスーパークラス?を書き換えたい場合もありますね
362: 2023/06/07(水)05:35 ID:XqSQOg/f(1) AAS
自己解決 うす
363: 2023/06/09(金)10:19 ID:rdAYu282(1/2) AAS
rigidbody3dなんですが、lock rotationの固定軸を1つに限定は出来ないんでしょうか?
すべての軸がロックされますなこれ
364
(1): 2023/06/09(金)14:51 ID:JvBEnfen(1) AAS
HingeJoint3D とかでやるっぽい
外部リンク:ask.godotengine.org
365: 2023/06/09(金)19:55 ID:rdAYu282(2/2) AAS
kinematicbody2dなんですが、ひし形を地面に落として、地面に転がるように出来ないでしょうか
スクリプトでの下への重力と、物理を両立させるのは難しので出来ないとは思いますが

かといって、rigidbody2dを操作するのは結構シビアで難しい

>>364
どうも
rotation.x = 0としても駄目だったんで
インスペクタにはないみたいですよね
省1
366
(1): 2023/06/10(土)07:36 ID:qvm5A2h2(1/2) AAS
キャラクター自体に物理挙動つけるゲームとか難しすぎてやめたほうがいいかな
367: 2023/06/10(土)19:15 ID:qvm5A2h2(2/2) AAS
>>366
自己解決
難しい
368: 2023/06/12(月)11:53 ID:w9tVWx8K(1/2) AAS
godotでリジットボデイの大きさを変更する場合、子供であるコリジョンシェイプやスプライトの大きさを変更するんだね
親を変更すれば付随して子供も大きくなるけど、これは機能しないのはなぜ
369: 2023/06/12(月)16:37 ID:w9tVWx8K(2/2) AAS
まあそういもんだと納得しとく
370: 2023/06/13(火)20:22 ID:GRAPIj+k(1) AAS
ブレイクポイントというのは関数の途中には設定出来ないのですか?

function process(){
if Input.is_action_just_pressed("ui_accept"){
print("1")
print("2")# ここにブレイクポイント
}
}
371: 2023/06/14(水)06:19 ID:xnRIx4uh(1) AAS
sorry レディットで聞きます!!
1-
あと 631 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.046s