◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:【軽量】godot engine【無料】 part3 YouTube動画>13本 ->画像>14枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/gamedev/1708131114/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
Godotエンジンは機能豊富な、クロスプラットフォームのゲームエンジンであり、2D・3Dゲームを単一のインターフェイスで製作することができます。
基本的なツールは一通り用意され、ユーザーはプログラムの再発明をすることなくゲーム製作に集中できます。
製作したゲームは主要なデスクトップ環境(Linux, MacOS, Windows)や、モバイル(Android, iOS)、Webベース(HTML5)環境にワンクリックで書き出せます。
GodotはMITライセンスの下、完全に自由でオープンソースです。
利用に関して特に制限はありませんし、利用料を請求することもありません。
エンジンのコードの最後の一行まで、ゲームは製作したユーザーのものです。
Godotは自主的なコミュニティによって開発されており、エンジンを期待にかなうものにするため、ユーザーの方々も自由に参加できます。
Godotは非営利団体Software Freedom Conservancyによって支援されております。
■公式サイト
https://godotengine.org/ ■コミュニティ
https://godotengine.org/community/ ■ドキュメント
https://docs.godotengine.org/ja/4.x/ ■こんなのが作れるよ
@YouTube @YouTube @YouTube ■前スレ
【軽量】godot engine - part2
http://2chb.net/r/gamedev/1619755427/ ★次スレは
>>950 がたててください
>>1 乙
コミュニティのリンク先を見て欲しいのだが
>>2 のサイトも公式として紹介されている
公式・非公式綺麗に纏められているのでリンク一つに纏めさせてもらった
必要な作業以外しないってすごく大事だね
スムーズに開発するにはスキルが必要
>>7 大丈夫だと思う
保守 1週間で作品が完成しなかかっったら次のアイディアを試す 気力がキープ出来ないから
保守 機能が実現できりゃ、難しいコードを使う必要はないのかな
Unityちゃんと比べるならまだしもデバネズミ比べるのか…
可愛いじゃんこいつ
こうしたら可愛い
これ?
こっちのがウケは良さそう
バックパックバトルがまさかのGodot製と知って驚いてるんだけど 対戦相手の鯖に一時保存したプレイヤーデータ、デッキ構成はどんな仕組み使ってるんですかね FireBaseとかSilentWolfみたいなサービス?それとも独自鯖立ててデータのやり取りをしてる?
>>21 まさかのどころか昔からyoutubeでgodotのtips紹介してた人達が開発してるし
赤い猫のキャラは古い動画にもいて見おぼえあったからトレーラー見て
「あれ、このゲームあの人らが作ったやつ?」って気づいた
キャラクターのスクリプトがだいぶゴチャゴチャしてきたので空ノードに移動周りを分割して置こうかと思ったんですが、 合計の長さはほぼ同じとして、分割すると1つの長いスクリプトより動作速度が遅くなったりしますかね? アクションゲームなので数フレームでも差が出たら困るので…… ちなみにgodotは静的型付けをするだけで結構速度が向上するらしく、 意外と繊細なのかなと思ったので質問した次第です
変数参照が一回増えるんじゃね すでに複雑な関数を呼ぶなら大して変わらんやろう
ゲームて自分が面白いと思った仕組みや現象から作る? どういうアイディアだと情熱が長続きするか分からん 短期間で作れるものをガンガン作るというのも1つだけど
いいアイデアがないときどうしたらいいだろう パクリでもいいから作るとか
まだ仕上げるのに精いっぱいで処理速度を気にするレベルまでたどり着いてないよ
それはなかなか良い学び姿勢だよ プログラミングでダメな奴はだいたい仕上げる前に「もっとカッコイイしゅっとした方式にしたい」とか 「もっと美しく書くにはどうしたら」とか「コーディング環境をもっとクールにしたい」とか枝葉にこだわって自滅する そういう枝葉は、まず動くものを作るこれが出来てからやることなのだ
>「もっと美しく書くにはどうしたら」とか いやほら、書いたコードは三日で忘れるっていうから・・(言い訳)
>>25 色々調べてみたけど分ける分けないはまあだいたい場合による、好みによるって感じみたいですね
セレステのキャラクター制御コードは5000行らしいというのを見かけて
たかだか数百行で文句言ってもしょうがないなって思いました
コードを建て増し建築でもバグ破綻しないのはそれも一種の才能だと思う
ゲームどこで売ってる? ある程度質が良くなけりゃsteamは無理だしね
プレイヤーが描いた絵からメッシュを生成できればコリジョンもできるよね
ゲームの多重起動を防止する設定ってありますか? 設定項目が無いなら、自分で起動時にチェックすりゃいい話だけど
型付けする変数としない変数って、混在してもいいんですかね?
補完をだしたい場合は混在させてる
>>35 そう、出来るみたい
そういうパズルゲーム作ろう
見た目から入る作り方もありだと思う 見た目がしょぼいとやる気がなくなるから peglinパクる
>>42 カスタムテンプレートってコピペと大差ない?
characterbodyには最初から付いてるね
>>42 なるほど characterbodyのスクリプトで弾丸を動かすのですか。
rigidbodyを使ったら予測が難しくなりますか。
テンプレートは自動化されたコピペ、自動なら手間要らずで忘れる事もない contact_monitorに関しては処理が重いから初期値がオフなので そこを意識しないと別な問題を誘発する 予測軌道を描くには点や線の座標が必要になる RigidBodyを使って座標取得はできなくはないが手間が掛かる RigidBodyを使う場合はどうすればできるか考えてみて欲しい その手間を無くす為に自前で座標を計算する
>>44 ありがとう
チャレンジしてみます
確かにrigidbodyを使う場合、物理エンジンの中?に触らないといけないイメージ
物理エンジン内は触れないから 状態を保存し必要な所まで時間を進めて座標を取得し状態を戻す手順になる 文章にすると一行だが状態の保存と復元は処理コストがとても高い ゲーム物理はなんちゃってで十分なので本格的演算は不要 初速と重力加速度だけでそれっぽく動く
そのスクリプトは黒で予測軌道を描く部分だけでRigidBodyを使った計算はしていない 19行目が初速 vel = new Vector3(initVel * Mathf.Cos(angle), initVel * Mathf.Sin(angle), 0); 33行目が重力加速 y = vel.y * time - 0.5f * gravity * time * time; 時間毎に線分を描いている 実行結果はRigidBodyを使って線分通りに動くかの確認 RigidBodyと全く同じにしようすると計算が若干複雑になる y = vel.y * time - 0.5f * gravity * (time * time + time * Time.fixedDeltaTime); 適当に見繕った参考ページでUnityの例なのでRigidBodyの挙動は異なる可能性がある RigidBodyを模倣するより座標を自前計算する方が楽
characterbodyでボールの挙動をする場合、バウンドやフリクションの設定も自分で作る感じでしょうか? move_and_collideで初速と重力は出来ました
反射や摩擦も反映して予測軌道として表示したければそうなる 実現は可能だが要素を足せば足すほどコードも複雑になる 全ての物理現象に対して予測線は必要なのか動作停止まで予測線を描くのか? 何をしたいかによるが自分なら射出方向と最初のヒットまで表示できていれば十分とする ゲームでそこまで処理している例が思いつかないが何か知っている物はあるかい? 投擲武器で反射後まで予測してるのはあった気はするが実装としてはコスト高 大抵は最初の接触点までで最後まで反射させるのは直線移動の物だと思う
反射や摩擦を含んだ挙動が必要ならRigidBodyを使うと良い 予測線処理に自前演算を勧めたが最初の接触までの予測はそれで行い 実際の挙動はRigidBodyに任せるという方法も取れる 自前演算と標準の演算で結果に差がでるかもしれないが誤差で許容する どれくらいの精度が必要か開発コストは見合っているかの判断が要求される
ありがとうございます 反射後の予測軌道ではなくて、単にブロック崩しのような壁バウンドを作りたかったです(重力あり) 説明が悪かったです frictionの記事は見つかりました バウンドは単純にノーマルを逆にすればいいんですね コードでやるのは初めてなので
>>52 そっちのほうがスマートかもしれないですね
ブロック崩しで良いなら 反射は反転で良いし壁に角度があってもそれほど処理は複雑にならない 摩擦も壁に当たったら適当に減速で良い 厳密な物理シミュレーションする必要がなければ自分で作った物理法則で問題ない 予測軌道で最初の方向性を示すだけで良いならRigidBodyに任せるのが楽
放物線を描いてるから重力はある物理演算だね 予測軌道は初回ヒットまででヒット後は軌跡を描いて跳ね返り表現 単純だから自前でやっても良いしRigidBodyでやっても良い RigidBodyの方が物理パラメータ色々弄るの楽だからRigidBodyを勧めるかな 今までの知識を纏められたら同じ物は作れるんじゃない?
まよったらエンジンに頼らない方向で作成してみる 難しすぎて出来ないことならともかく
衝突時や毎フレーム速度を減少する 空気抵抗的に徐々に速度を落とすなら毎フレーム減速すれば良い コードで実現するのは難しいと思い込んでいる様に思われるが少し違う 再現したい事象はどういう式で成り立っているかの数学的知識が求められている 演算式をコード化するのは機械的作業でしかない
ていうか張り付けた動画に
>>62 の言ってる衝突時の減衰のヒントあるよね、ちゃんとコード読もう
リンク再生して等速運動しかしてないなって思ってたが時間指定付いてたの気が付いてなかったわ 確かに動画内で説明してるな 今は英語判らなくても自動翻訳で日本語字幕付けられるから上手く使う癖は付けた方が良いな とは言え自分も先日どうしても判らない処理の解説が動画しかなかったので翻訳も付けて見てみたが やっぱり判らなかったので苦手意識があると内容が理解し難くなるってのはあるかもね
>>62 >>63 ありがとうございます
多少の数学の知識が必要になるんですかね
公式など探してみます
物理エンジンもこのようにコードで制御しているのでしょうか より複雑でしょうけども
ゲームエンジンも物理エンジンもプログラム
昔は全部自分で作っていたものがライブラリ化されエンジンとなった
既にある同じ目的のコードを自前で書くのは無駄なのでエンジンが使われる
既にある物を自前で作るのは「車輪の再発明」と言われ忌避される事が多い
しかしながら原理を知らずに使っていると様々な弊害もあるので
同じ物を作れなくともある程度の理解はあると良い
エンジンが望み通りに動かないなら自分で対処する事になる
数学や物理学に対して開発者はどうあるべきかは以下の「まえがき」を読んでみて欲しい
https://codezine.jp/article/detail/10873 >>67 上のpeglinくらいんものはコードでやってみます(*´ω`*)
https://www.sbcr.jp/product/4797376999/ そういえばこれを持っていたけど、このくらいの理解では足りないのかな?
この本のあまり理解出来なかったけど
知識は多ければ多い方が良い 無駄知識でも間違った情報でもそうだと知っていれば役に立つ事もある その本は題目を見る限りでは有用な情報なので理解できるならその方が良い 内容が難しく理解出来ないならもっと簡単な所から進めるべき 原理を理解できなくても目的通りにエンジンを使えていれば及第点 コードで目的を達成する手段があれば十分 何かあった時に自分で対処する為にそれらの知識が必要 知識が多い方が解決手段を多く選べる
>>69 move_and_collideを1フレーム中に連続使用するのは思いつかなかった
この方法で行けそうな気はするね
自前でやると誤差が気になったのでエンジンに任せられるならその方が良いね
すいません、初心者ですが質問させてください。 数学で言えば、1.7320508のアークタンジェントは約60ですよね? でも、godotで print(atan(1.7320508)) と書いても print(atan2(1.7320508 , 1) と書いても、 1.04719.......と謎の数字を返してきます。 これは何の数字ですか? 座標から角度を求めるのってどうやればいいんでしょうか?
>>71 ありがとう
物理なしでやります
案外、脱線しているときにアイディアでたりしますしね(*´ω`*)
戻り値に想定している単位が違うのじゃろ print(rad_to_deg(atan(1.7320508))) print(rad_to_deg(atan2(1.7320508, 1)))
>>73 2π(6.28...)が360°のラジアン(弧度法)
>>75 、76
あーラジアンでしたっけ…
もともと数学苦手なうえにもう忘れてました
rad_to_degって組み込み関数があるんですね
覚えておきます
ありがとう
ちょっと回答が投げやりすぎた 座標から角度の変換はVectorクラスに便利メソッドあるからそれ使うと良いよ print(rad_to_deg(Vector2(1, 1).angle()))
godotって3dオブジェクトを2dとして扱う機能はないんですよね。 unityのように
エディタをフローティングにすると画面大きくて使いやすい 今まで気づかなかった(*´ω`*)、、、
しかし、gptがあるとだいぶ楽だねぇ godot4には対応してないみたいだけど
無いわけじゃないけど 自分の知る限りはビューポート使うか3D素材をgodot外で2Dに起こすくらいじゃないか もっと効率のいい方法があるなら自分が知りたいくらいだ じゃなきゃ最初から3Dシーンで2.5Dゲーム作るほうが早いだろうな
Unityは3Dオブジェクトを2Dにしてるんじゃなくて2Dを全部3D空間上に配置してて、2Dのテンプレートも内部的には全部3Dだからそういうことができてるように見せかけてるだけ
あの2d表示が便利だなと思うこともありますよね 3dから2d素材作るために一度画像にレンダリングしないといけないのも手間ですし
スキルもないしコツコツと小さいクソゲー作るしかないね
他人のコードを読む能力がないわ 難しいね 他人のコードは
質問なんですが、下にあるデバッガーの位置は変更出来ないのでしょうか? 少し邪魔に感じることがあり、フローティング表示にしたいのですが
>>69 コードをコピペして動かしてみた
予測軌道は描けたが実際のRigidBodyの挙動とは同じにならなかったので調整は必要そう
書かれていない初期設定部分で正しく調整されているのかも知れない
物理エンジンは自分の思い通りに動かない事が多くて悩ましい
>>87 フローティングボタンが付いてないのだから出来ないのだろう
現在開いているタブクリックで最小化するので十分ではないのか?
ありがとう 諦める 実行すると勝手に開いたりするのが煩わしいなと感じて
[エディタ設定][実行][出力][Always Open Output on Play]をfalseにする 変更反映はエディタ再起動後
extends Node2D
var line2d_node:Line2D
var mouse_pos
func _ready() -> void:
line2d_node = get_node("Line2D")
func draw_to_cursor():
for i in range(1):
# 点を打つ処理
var line_point = self.position
line2d_node.add_point(self.position)
line2d_node.add_point(mouse_pos)
print("draw")
line2d_node.clear_points()
連投すみません
数時間やって解決出来なかったので質問させてください
上で放物線の質問をしたものです。
自キャラを起点としてマウス位置にline2dを伸ばしたいのですが、描画されません。
画像のように線を1本だけ描きたい感じです
clear_points関数がなければ描画されるので、この部分の処理がまずいのだと思います。
inputでdraw_to_cursorを実行しているので、マウスを動かしたときに処理が走りますが、瞬時に消えてしまうから問題なのだと思います。
しかし、process内でやってもすぐ消えてしまいます(ラインが描画されない)。
点追加→描画→クリアじゃなくて最初にクリアしてから点を追加する様にすればいいんじゃない? それかLine2dは使わずdraw_line()で描くとか
ほぼ正解なのに後一考が足りないのが惜しい clear_points()が何をする命令かを理解し 処理の最後にclear_points()するとどうなるのか考えれば自明だと思うのだがな
リファレンス見直してみます ありがとう 消し方の部分ですね
godotってaiインテリセンスとかないのですかね? visual studioのあれは楽すぎてビビった記憶があります 先の先まで先読みしてくれるので
>>95 こんなふうに描画関数内の削除ではなく、フレーム内で削除するようにしたらうまくいきました。
どうもコードの流れが分かってないみたいです
https://imgur.com/a/GgVKnGF 図にしてみましたがこれの違いを言語化出来ないでしょうか?
https://ideone.com/hZmhwc extends Node2D
var line2d_node:Line2D
var mouse_pos
func _ready() -> void:
line2d_node = get_node("Line2D")
func _process(delta: float) -> void:
mouse_pos = get_global_mouse_position()
line2d_node.clear_points()
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
draw_to_cursor()
func draw_to_cursor():
for i in range(1):
# 点を打つ処理
var line_point = self.position
line2d_node.add_point(self.position)
line2d_node.add_point(mouse_pos)
print("描画")
図表が何の例なのかが判らないのでそれとは違う話をする
GUIアプリはライフサイクルに従って動作する
Godotの良い例が見つからなかったのでUnityのライフサイクルを元に話を進める
https://docs.unity3d.com/Manual/ExecutionOrder.html 図中の処理を以下の様に読み替えて欲しい
Awake=_init()
Start=_ready()
FixedUpdate=_physics_process()
OnMouseXXX=_input()
Update=_process()
ここで注視するのは画面描画のタイミングでそれは各種Renderingのステージで行われる
Initialization:初期化
Physics:物理演算
Input events:入力反映
Game logic:ゲーム処理
を経て、それらの処理で作られた描画データを元に描画が行われる
描画後は物理演算から繰り返し
これはUnityの例なのでGodotにおいては実行順が異なる可能性がある
そもそもdraw_to_cursor内に描画処理は入ってない add_pointは後から_draw()で描画される事になる線を構成する点を追加するというだけ
>>97 vscode経由でやればできるにはできるけど
gdscriptだと実用レベルのコードはほぼでないよ
>>99 返信遅れてごめんなさい
寝不足でずっと寝てました
>>100 あっそうか、マウスクリック時にしか描画されないという点が問題だったんですね
>>101 unity c#より記述量少ないからなくてもいいかもですね
自分は同じような内容列記するときだけ使ってるかな APIの使い方が間違ってたり、文法がおかしかったりと普段使いはむしろ邪魔
is_mouse_button_pressedはありますけど、 マウスにjust pressed系はないんですかな?
あっ、action pressのほうでやるんすね ごめんなさい(*´ω`*)
そもそもjust pressedはactionにしかない
>>105 IntelliCodeはGDScriptに対応してないね
VSCodeでGDScriptを書いても無理だわ
今日仕入れた豆知識 ランダムでtrueかfalseの2択を使いたい時 var random : bool = randf() > 0.5 この1行でOK
速度詰めるなら(randi() & 1) == 1;とか?
軌道予測の者です
考え方として、予測軌道を描きたい場合、軌道予測用のオブジェクトを一度投げないと、ポイントを取得出来ないのではないでしょうか?
物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか?
方法を思いつかなかったので質問させてください
>>109 ですよね(*´ω`*)
>>69 >>88 の解決法が判った
予想通り初期設定が足りていなかった
RigidBody2Dのcustom_integratorを有効にする事できっちり同じ挙動になった
衝突まで出来たが反射が出来てないので課題は残る
>>112 に補足
速さを求めるなら==は要らない
bool型に代入すると型変換で遅くなるので代入するならint型
var random:int = randi() & 1
しないなら
if randi() & 1:
pass
だけどゲームで使う分には誤差だから判りやすい記述が良いと思う
>>113 >物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか?
できる
予測用のオブジェクトを投げなくても計算で求められるが
RigidBodyがやってくれている計算と同等の処理は必要
ノードツリーにSprite2Dがあるとして以下のコードで右上方向に投げた場合の再現ができる
var d:Vector2 = Vector2(500, -500) #初期運動量
func _physics_process(delta: float) -> void:
d += Vector2(0, 980.0 * delta) #運動量に経過時間分の重力加速度を加算
$Sprite2D.position += d * delta #座標に経過時間分の運動量を加算
リアルタイム制のゲームは座標計算→描画を繰り返し行うのが基本
前回の座標計算からの経過時間を元に計算を行う
概ね運動量に経過時間を掛ける事で求められる
言い回しは運動量dじゃなく速度velocityとした方が良いかな?
初速、方向ベクトル、力、時間の4要素がおそらく必要なんですね 運動方程式物理の本買ったんですけど、数学への抵抗感なくなればいいなぁ(*´ω`*)
Programmingの理解が遅い人って何が問題なんでしょうか 自分のことですけども 抽象化、というかイメージ化が出来てないのかも
理解できないのは理解できるサイズまで対象を分解できていないから
思い描いているイメージを具体化できてない
抽象的かつ大雑把過ぎるので細かい要素に分割する
分割した要素毎に必要な知識を理解する
Peglinを作りたい→軌道予測線を描きたい
線を描くとは→線分を画面に表示する
軌道予測とは→放物運動の開始から終了までの線分を描くための座標を取得する
放物運動とは→等速運動と自由落下する運動
座標の取得とは→放物運動の計算式から得られる
放物運動の計算式とは→(a)物理エンジンから取得するか(b)自前で自前で計算するかの二択
(a)物理エンジンで取得する→RigidBodyを実際に投げた結果から座標を取得する
実際に投げるには→他に影響を与えずに投げた結果を得るには特殊な手法が必要
特殊な手法とは→
>>69 が提示
(b)自前で計算する→放物運動の計算式を作る
計算式を作る→線分を描くために時間経過毎の座標を取得する→
>>116 で提示
要素を分解するとこんなもんか?
放物運動の計算は複雑な計算式は不要で時間経過毎に等加速と自由落下を加算するだけ
判らないなら判る所まで分解して考える
>>120 1つずつ単体テストみたいなことをやるといいんですかね?
コードを書いた時に単体テストする必要なく動くと言える事 勘違いもあるので単体テストばりに実際に確認が取れると尚良い それが出来るなら理解したと言えるだろう 例えば線を描くならこうなる これだけだと線分配列pointsの中身が無く動かないが あれば動くと自信を持って言える 短いコードで動作条件も少ないので実際に動かしてテストするのも容易だろう var points:Array $Line2D.clear_points() for point in points: $Line2D.add_point(point) 分解した個々の要素が理解できたら次の課題は 目的の機能を実現する為に個々の要素を合成する事に変わる 下位工程の知識が曖昧なまま作業を進めるとやり直しが発生し効率が落ちる 余談になるが線を描く方法はdraw_line()を使う方法もある CanvasItemクラスの継承が条件でLine2Dの様な子ノードが不要 但し描画処理は_draw()で行う必要がある func _draw() -> void: for idx in range(points.size() - 1): draw_line(points[idx], points[idx + 1], Color.RED, 4) 手法それぞれメリットデメリットが存在するので目的に合わせて選択する 知識が多い方が問題解決方法を多く選択できるので何かと有利に働く 慣れない間は混乱の元にもなるので一つ一つ知識固めをする事を勧める
どうも 必要な要素が把握出来てないのかもですね 線はline2dでやってみます
gdscriptでは関数入れ子はサポートされてないんですかね?
されてる 例としてはこんな感じ func my_function(): var f = func inner_function(x)->String: return "inner_function called from %s" % [x] print(f.call("my_function"))
myfnctionのプロパティー化しないと駄目ということですかね
短いコードなのだから疑問に思ったら自分で試してみれば良いじゃない
var f = func inner_function(x)->String:
return "inner_function called from %s" % [x]
func my_function(name):
print(f.call(name))
公式ドキュメントはこちら
https://docs.godotengine.org/ja/4.x/classes/class_callable.html 関数の実体はCallableクラスで変数fに代入しなくても扱えるし引数で渡す事もできる 関数でもループでもifブロックでもネストが増えれば難読化するので不用意には使わない func _ready(): my_function(external_func) func external_func(name:String): return "external_func called from %s" % [name] func my_function(ext_func:Callable): print(ext_func.call("my_function"))
ありがとう 今すぐ使うわけじゃないんだけど知識として知りたかったんだ 会話に飢えてるのかも
ペイントソフトの筆のように線を描くのは可能でしょうか? ペイントソフトってよく見ると点を打ってるんですよね line2dとそれにコリジョンつけるためのsegment shapeあたりで調べてます
ライン描いてそれをコリジョン化する感じ unityならアセットでサクッとできるんだけろうけど、godotだとサンプルが少ないナリ
>>133 Q REMASTEREDとか、あれを単純図形でいけるかな?
まあペイントソフトも玉のテクスチャを連続させてるだけだよね
https://imgur.com/a/KTYggOG 単純図形をフレームごとにadd_childしてるのじゃが、一定間隔でadd_childしたとしてもつながるほど短い間隔になる保証はないのだけど、何か方法はありますかね?
elapseTime+=delta if elapseTime >= 0.001: print("hoge") たとえばelapseTimeでこんなふうにして実行しても、フレーム以上の描画スピードにはならんわけよね(*´ω`*)
2点の線の間を埋めたい時は線形補完を使用する
Vector2にlerp()という線形補完メソッドがある
2点の位置ベクトルaとbが存在する時
for t in range(10):
var p = a.lerp(b, 0.1 * t)
でa-b間を通る位置ベクトルpを10得られる
公式ドキュメント
https://docs.godotengine.org/ja/4.x/tutorials/math/interpolation.html 多分、描いた線をコリジョン化したい場合は、ジオメトリー系を使うみたいです 今から調べます
Qは一定間隔で円なの普通に見てわかるな
>>133 でカプセルっつってんだからカプセルか間に長方形挟むでもいいと思うけど直線がダメか
1フレームあたり座標をずらしたものを複数個追加する方法でいけるかもね
↑駄目だった やっぱりカーソル早く動かすと1フレームあたりの描画量が足りなくて、点々になっちまう(*´ω`*)、、、、 ジオメトリあたり試してみるナリが、godotの場合、線を引いてそれにコリジョンをつけるには何の機能がいいの?
line2dにコリジョンつけたいんだけど、方法ある? segmentshapeで太さ出せるだろうか?
SegmentShape2Dで太さは指定できない 厚みを持たせるなら元ネタ同様に球を並べるか二点を通るポリゴンを自分で作る 二点の中点にRectangleShape2Dを置いて傾けるという方法でも可能
端の処理を考えたらCaosuleShape2Dの方が綺麗にできる
rectangleshape2dだと曲線とか難しそうですね 玉連続の場合、1フレームあたりに複数個追加しないと玉が飛ぶんですが、どういうやり方があるんでしょうか。
使える情報は前フレームの座標と現フレームの座標
フレーム間の座標は自分で作るしかない
回答は
>>138 どうも 玉手法はgptに聞いてみます 線形補間もやってみます
こういうときはunityでのやり方を調べると参考になるかもですね godotだとやはり情報が少ないっす
引ける線が無制限のつもりならgd_paintみたいなお絵描き機能実装してopaque_to_polygonsの方がいいかも
無制限とはどういうことですか? 色をポリゴン化する機能は知りませんでした
ドラッグで線を描くとして、線を引いてる間に毎フレーム線や円を追加してるとそのうちオブジェクト数がえらい事になる
えらい数になる前に点を間引いたり直線近似するんよね
球が増えすぎると重くなるとしたら、ラインのながさを制限するなりしないとだめってことですよね それもゲーム性にすりゃいいかもです
点の連続で線を描くというのは一般的な方法なんでしょうか。 点が飛ぶのは、lerpでどうにか補完できないか考えてます
godotで3dゲーム作るのはあり? お遊びだけどさ
やっぱホワイトボックスレベルでも3d作るのは大変だと感じるナリ
Godotで3Dゲームを作るのが無しだったら
>>1 の作例は無いだろう
3Dの方が要求知識が増えるので簡単とは言わないが苦手意識が強すぎる様に思う
3Dでもカメラを固定して一軸を全く使わなければ2Dとほぼ同じ扱いになる
3Dを使ったエフェクトが使いやすくなるのでメリットもある
少なくとも自分で調べたり聞いた結果 線の引き方は覚えたし内容は理解しきれなくとも線形補完という手法も知った 以前と比べれば何かした分は成長している how-toを聞いただけで理解して使いこなせたら秀才 使いこなせないのは知識も経験も足りないからで功を焦りすぎ
点と点の間の線を引く際に不足する点を補完する方法が線形補完 線を引く上では一般的と言えるがゲームでの利用においては制限があるのは指摘されている通り 制限が問題になるなら対策を打つなり別方法を使用する事になる
コツコツやってきます 興味が長続きしないので解決しなくても課題は定期的に変えますが、、、それが問題
godotのコードサンプルってどこで手に入りますか? kids can codeはたまに見ますが
公式のデモプロジェクト
https://github.com/godotengine/godot-demo-projects?tab=readme-ov-file 細かく解説されている訳ではないので読み解くのは大変だが物量はある
GodotEngineのバージョンで差異があるのでコードを参考にするなら対象バージョンのブランチを選ぶ
全てではないがブラウザで動かせるので手っ取り早くイメージを掴める
https://godotengine.github.io/godot-demo-projects/ geometry2dってポリゴン2dみたいにポリゴンを描くクラスと考えていいんでしょうか
まだ使い方が分かってない
ただ、シングルトンではあるみたいです
>>165 ありがとう
geometry2d自体は頂点を生成するだけで、ポリゴンはcollisionpolygon使うみたいですね
3dのローポリ作品多いけど、リアルにしたらエンジン的にキツいんかな?
ハイポリモデルを使うのがキツイのはエンジンじゃなくてマンパワーでしょ
最新のgptは有料じゃないと使えないのかな godot4についてはデータベースがないみたい copilot使ってみるけど、他におすすめある?
geometry2dのoffset_polylineについて質問なんですけど、この関数にポリラインの配列を渡すとなぜか2次元配列で帰って来るのですが、なぜでしょうか
https://docs.godotengine.org/en/stable/classes/class_geometry2d.html#class-geometry2d-method-offset-polyline 返り値をcollisionPolygon2dに代入して使いたいのですが
collisionPolygon2d.polygon = array
>>171 そこの説明に書いてある通りで結果が複数になる場合があるから
>because inflating/deflating may result in multiple discrete polygons.
安易な対応方法としては厳密に扱う必要がなければ最初の要素だけ使えば良い
ollisionPolygon2d.polygon = array[0]
>>166 自分の認識ではこんな感じ
PackedVector2Array:点の集合体=ポリゴン
Array[PackedVector2Array]:複数ポリゴン
Polygon2D:ポリゴンを表示に使う
ColiisionPolygon2D:ポリゴンを接触判定に使う
Geometry2D:ポリゴンの加工、評価の為の便利関数群
>>172 前に色々調べたときgodotでC#つかうとC#部分は速いけど本体APIとのやりとり部分でオーバーヘッドが生じやすく
トータルでみると結局全部GDスクリプトで書くほうが速いみたいな話を読んだ記憶
>>172 厳密すぎて疲れるっていうかね、、、
>>173 geometry2dは位置を作るだけですね、理解
ありがとう
なんやcopilot普通に使えるやん マイクロソフトだからなんか微妙なイメージ持ってたわ
使えるは使えるけど、全体の設計とか関数の仕様理解してないと出鱈目なもの作っちゃうな 何でもよしなに作ってもらえるものじゃない
line2dで描いた線をリジッドボディ化する方法ってありますか? コリジョンをつける件は解決したのですが、ノードの構成をどうすればいいかなと ↓ライン2dをリジッドボディにするには以下のノード構成にする必要があります ノード1 ■rigidbody2d ├line2d └collisionPolygon2 描く用のline2dノードは別にあって、そこにスクリプトをつけます。 描き終わった時点で物理をつけて、落下させるという処理をしたいです。 ノード2 ■line2d_drawing(描画処理を行うノード) ノード2で描画を行ってから、別シーンにしたノード1に描かれたラインとコリジョンの情報を渡すような流れでしょうか 簡単なプログラムをかけても、こういう、流れ?フローの設計がかなり苦手(*´ω`*)
訂正:ノード2で描画を行ってから、別シーンにしたノード1をadd_childし、描かれたラインとコリジョンの情報を渡すような流れでしょうか
ノード1にLine2Dがあるのに描く用のLine2Dが別にあると言う点が理解できない Line2Dは線を描く為の物なので同じ内容なら2回も描く必要がない Line2Dが保持している点データを使いまわしたいのならば 点データ管理用の変数を作ってそれをLine2Dやコリジョン作成に利用すると良い ノードの構成自体は自分だとこうなる 違うのは描画にLine2DではなくPolygon2Dを使う点 CollisionPolygon2Dに接触判定用のポリゴンデータが渡せるなら Polygon2Dに全く同じデータを渡して表示する事ができる シーン1:ゲームを管理する本体 ■Node2D※Node2Dである必要は特にないゲームを管理する為のスクリプトをアタッチする シーン2:インスタンス化して使用する ■RigidBody2D:プレイヤーが描き込んだ物体 ├Polygon2D:物体の描画に使う └CollisionPolygon2D:物体の接触判定に使う
>>181 別にしなくていいんですね
line2dで描いたものの頂点をgeometry2dのoffset_polylineで取得して、その頂点をpolygon2dで再描画すりゃいいんですね
ありがとう
polygon2dってコリジョンつけるクラスだと思ってたナリ(*´ω`*)
1つのファイルに何行くらいコード書きます? 文字数増えると訳わからんくなるけど、対策とかないのかな 自分で1日前書いたコードが若わかめになる
godotって変数のアウトライナーってないのかな?
ど忘れしたんだけども、インスタンス化したシーンから、そのシーンの変数にアクセスできないのって普通なんだっけ? オートロードかグローバル変数にでもしない限りは。
「インスタンス化したシーンから、そのシーンの変数にアクセスできない」のは普通ではない 指示代名詞は誤解の元だからできるだけ使用は避けるべきだと思う 「その」が親のシーンを指しているのならば子インスタンスからはownerプロパティで参照できる
>>187 通常はインスタンス化するだけでグローバル化もなしに、アクセス出来るものですか?
試したらできましたが、できないパターンもあり、違いがよくわからないところです
どうも
以下のコードなのですが、polygonプロパティにアクセスするとinvalied get indexエラーになるのです
しかし、このシーンをオートロードに指定していることが原因だったようです
それを今から調べます
extends RigidBody2D
var polygon2d_node
var collisionPolygon_node
var polygonArray:PackedVector2Array = [
Vector2(0,0),
Vector2(200,0),
Vector2(200,100)
]
func _ready() -> void:
polygon2d_node = $"Polygon2D"
collisionPolygon_node = $"CollisionPolygon2D"
polygon2d_node.polygon
あーそうか シングルトン的な観点で駄目なのかこれは
描画するノードをオートロードに配置する設計に問題はあると思うが そのコードはエラー無く動いたのでオートロードだからエラーになる訳ではないな それはそれとして子ノードを参照する変数は宣言と初期化を纏めると 総行数が減って、_ready()以外でも自動補完も効くようになってお得 @onready var polygon2d_node := $Polygon2D @onready var collisionPolygon_node := $CollisionPolygon2D
ありがとう 原因は良くわからないけど、オートロードはなるべく使わずに作っていきます
別シーンのready内で下位ノードを取得している場合、 呼び出す側のシーンにアタッチされた時点で、別シーンのreadyが実行されるから、アタッチされる前に下位ノードを取得しようとするとnullになるんすね(*´ω`*)
このスクリプトで別シーンのpolygon2d_nodeを取りたいのですが、add_childするとnullになりますね 対策としてpolygon2d_nodeをonreadyにしてみたのですが、それでもnullですね この辺理解してませんが、onreadyを使うと同期出来るわけじゃないんですかね var ins = rididDrawLine_scene.instantiate() #root_node.add_child(ins) print(ins.polygon2d_node) @onready var polygon2d_node = get_node("Polygon2D")
@onreadyはシーンにぶら下がっているノードの参照を安全に得るために使う
@onready指定された変数に格納されるノードの初期化が完了するまで_readyの実行が待機される
>>195 のコードはイメージしてる事は判らなくもないが
print(ins.polygon2d_node)ではinsノードの配下にあるpolygon2d_nodeへのアクセスを試みる事になる
子シーンのインスタンス側で設定されていなければエラーとなる
なので書き直すとこうなる
# シーンをインスタンス化する
var ins = rididDrawLine_scene.instantiate()
# インスタンス化したシーンのノードにアクセスする
var polygon2d_node = ins.get_node("Polygon2D")
print(polygon2d_node)
# インスタンス化したシーンを子ノードとして"root_node"に追加する
#root_node.add_child(ins)
add_childでも悶着ありそうだが眠いので説明は割愛する
root_nodeとはどこを指すのか
rootならばcall_defferdを使うと良いがrootである必要はあるのか
GodotEngineにラッパーライブラリ被せて簡単に扱えるようにしましたって感じかね? 何かあったら一大事になるから覚える価値あるかは疑問 GodotEngineで十分足りてると思う
とりあえずダウンロードして動かしてみたが4.3の改造版らしいが何が違うのかわからん
ロードマップらしい
https://github.com/orgs/the-mirror-gdp/projects/7 なんもできとらんのでは?スタートアップ投資目的か?
最近こういう感じの詐欺まがいのプロジェクト多いな 話題さえかっさらえばあとどうでもなるSNSファースト社会の弊害だな
ノードの自動読み込みとノードのシングルトンって使い分けたほうがいい? 郷に入ってはの精神でなんとなく自動読み込みの方使ってるけど
>>199 色々追加はされているがまだ始まったばかりやな
最初のコミットは3/15だしそんなもんやろ
>>196 呼び出す側でget_nodeするんですね
シーンに追加されないと子のreadyも実行されないのかなと
godotエディター上で手書きでステージを描いて行く手法とありますかね? カーソルでポリゴン編集でもいいんですが
普通にポリゴン2dでコチコチ打てるやん ありがとう!!
あっ、でも打てないことがある 仕組みが良く分からん
>>209 専スレ立てたら?
ここお前のレスで埋め尽くされてるじゃん
いいんじゃない 書き込まないと落ちるしもともと人が少ないスレ
なにひとつよくないが、そんなんだから雑談スレ追い出されんだよ 質問ですらない独り言とかTwitterで鍵かけてつぶやいてろ
>>211 いくら過疎スレでも占有はよくないよ
自分で専スレ立てれない?
そっちを日記として使って、どうしても解決できない問題があるときだけここで聞けばいいよ
dat落ちの条件理解してなさそうだし、適当な事言うのは辞めた方がいい 何か勘違いしてないか?
>>214 立てたよ
こっち自由に使ってくれ
俺も使う予定
ゲーム制作の日記、備忘録、メモなど好きに呟くスレ
http://2chb.net/r/gamedev/1711686911/ 荒れるから素直に謝っておくか 不快にさせてすみません
>>210-218 個人粘着でスレの進行妨害するのやめてくれないか?
無駄レスも多いが制作に絡んだ話はしている
自治厨始める奴の方が邪魔
無駄レスが気に入らないなら会話になるGodotの話題を出してくれ
godot4.0になった辺りで触らなくなったんだがもう4.3まで伸びてんのな 4.1~4.3でなんか目玉機能追加された?
そもそも過疎板にはDat落ち判定はないんだが(nKB未満が即死する即死判定はある) 頓珍漢な言い訳はやめなさいと言っただけだぞ
圧縮で落ちるのが最終更新なら2018年とかのが残ってるから確かに当分は大丈夫そうだな
3Dファイルはgltf一択? Blender連携はテクスチャ周りが上手くいかん
>>222 fbxはライセンスの関係で使えないんじゃなかった?
今どうなってるか分からん 3dやってないし
数日放置してたら案の定もめてて草
正直異様でスレ見る気も失せる状態だったし
>>218 もいちいち絡んでちゃ自治厨と大差ない
しょーもな
日本語でgodot関連調べてると大抵同じ人の記事にたどり着く…何者なんだ…
>>224 これ
変な拘りで自治が自治が言ってる時点で自治してるようなもんだし
5chなんだから気に入らなきゃ別スレでも立てて好きにやりゃ良いのに
マリオみたいな2dアクションってタイルマップ使わずに作るのはあり? タイルマップないと調整が難しいんじゃないかな ジャンプ力3とした場合、谷をタイル3つぶんにすればギリギリ届く、といった調整が簡単
>>229 最近のゲームではNoitaが地形全部ピクセルかなと思います
今はCPUやRAMが潤沢なので十分ありなのでは
jumpkingみたいな感じのを作りたい あれはタイルマップ感はないけど、タイルマップではないにしてもグリッドをベースにしたほうが楽そう
godotはグリッドにスナップできるし jumpking程度ならコリジョン付けて配置してくだけで行けると思うよ
JKは地形の最小単位自体は見える気がするし単に細かめのタイルマップで再現できるのはできるんじゃね modの作り方見た感じ判定はRGB画像をタイルマップみたく扱ってて見た目は一枚絵被せてるらしい
タイルマップ研究してみる 機能じゃなくてデザインから作る試みをしてるから 被せるというのは、つまりタイルマップでマスキング(くり抜き)してる感じかな?
タイルマップエディタの位置って変更出来る? 下のスペースだと作業しづらくてしゃあない
CollisionLayerやVisibilityLayerのレイヤー名適当に付けてきたから並び替えしたいけど面倒だなー かといってスクリプトで管理するのも面倒
タイルマップのアルファ部分を境界線として自動的にコリジョンつける機能あったっけ?
1つのゲーム何ヶ月くらいかける? そんな大作は作れないから数週間程度にしとくといいのかなと思うが
初めて作るなら二週間くらいで作れそうなのにした方が早めに世に出せていいと思う 製作期間なんてどうせ伸びるし
2dアクションのステージ作るときにタイルセットじゃなくて、ポリゴンノードを1枚のタイルとして大量に並べていったらパフォーマンスにかなり影響出るのかな? 数千とかそういうレベルになったら
余裕で出るだろうねぇ Godotがすごすぎエンジンで問題なかったら逆にビックリするけど
どうも 出るか、、、 ポリゴンノードの羅列のほうが柔軟に形状変えられていいかなと思ったけど、タイルマップでやる タイルマップは形状にどうしても制限が出るから
性能テストだと思って実際に作って負荷検証した方がプロっぽいけどな Zennとかで投稿して知見共有してくれてもいいのよ? 宣伝にもなるし あ、契約書からむような案件だったらダメだけど
ありがとう zennってたまに見るけどブログとしていいね fc2から乗り換えよう
https://imgur.com/B6lPvsv オートタイルを作りたいけど、仕組みがよく理解できない
terrainをペイントすることでそれっぽくなるけど、どこをどうペイントするといいのかガ分からない
いやこれで分からないんじゃ説明のしようがねえじゃん
俺の立てたスレに来たら懇切丁寧に教えてもよかったけど この顔文字くん来ないんだよな 人が多いとこに居たいんだろうけど
godot4で方向取る関数ってなんですか? input.get_axisだと引数が2つ必要になっていましたね 以前はinput.get_axis("horizontal")←これで横方向がトレていたのですが、
以前とはいつの事か?またはどのバージョンの事か?
質問する前に自分の記憶が正しいかの確認をする
https://docs.godotengine.org/en/3.4/classes/class_input.html 初登場時からget_axisの引数は2つ
get_axisの機能を方向取る関数と認識しているのならば
引数の形式が変わっていても新しい引数の形式での使い方を理解するしかない
>>263 そうでしたか
なにかの記憶違いだったかもしれないです
var direction
if Input.is_action_just_pressed("ui_right"):
direction = "right"
if Input.is_action_just_pressed("ui_left"):
direction = "left"
if Input.is_action_just_pressed("ui_up"):
direction = "up"
if Input.is_action_just_pressed("ui_down"):
direction = "down"
_move(direction)
文字列での分岐にすることにしました
なんとなくの予想だがUnityのInputSystem辺りと記憶が混ざってるのかもね 理解できず動かない簡潔なコードよりも理解できて正しく動く冗長なコードが勝るが get_axisとget_vectorは有用なので使い方は理解できた方が良い 余裕があれば挑戦してみて欲しい 公式のサンプルでは大体こんな感じで使われている # 左右をfloatで取得 var movement = get_axis("ui_left", "ui_right") # 上下左右をVector2で取得 var direction = get_vector("ui_left", "ui_right", "ui_up", "ui_down")
Inputクラスの記述が抜けてた var movement = Input.get_axis("ui_left", "ui_right") # 上下左右をVector2で取得 var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") 書き足しついでで補足すると意味的にはこんなん 1軸の向き = get_axis(-方向、+方向) Vector2(x軸の向き, y軸の向き) = get_vector(x軸負方向、x軸正方向、y軸負方向、y軸正方向) 移動処理が簡潔に書ける extends Node2D const SPEED = 300.0 func _process(delta): var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") position += direction * SPEED * delta
どうも get_vectorで方角を返すってやつですね
godotは割とredditが賑わってるのがありがたいは むしろunityより賑わってるのが謎
配列特定の値を探したい場合、forで回して比較演算子かfindか使い分けはどうすればいいの?
関数の方が安全で手っ取り早い代わりに若干低速な可能性がある どれくらい差があるかは知らない 配列の中身が順番に並んでるならbsearch使うか二分探索自分で書けば速い
どうも どのみち二次元だとfind使えないみたいですね
一時的にスクリプトを停止出来ますか? processをdisableしてもprintはされるみたいです
定型文登録って合ったっけ? 以下の4方向バージョンを登録しておきたい if Input.is_action_just_pressed("ui_up"): move()
特定の関数の中でしか使わない関数ってのはどう定義すればいいの? 入れ子に出来れば関係ない場所から参照されないからいいと思うんだけど func outer(): func inner(): こんな感じの入れ子は無理っぽいからラムダってやつ使うのかな しかし、以下だとprint結果が帰ってこない extends Node2D func _ready() -> void: print(lam) var lam = func outer(num): var value = "hogehoge" return value
関数のままでは入れ子にできないからCallableとして宣言する 呼び出しは変数名で行うから関数名はなくて良い func _ready(): var innner = func(x = 1):return x * 2 prints("inner() called:", innner.call()) prints("inner(2) called:", innner.call(2))
どうも 入れ子で書けないのなら、普通の関数とあまり変わらない感じですね 視覚的にこう1箇所にまとめたかったんですが
変数に代入して使うのが馴染みないかもだが
関係ない場所からの参照ができなくなるから
>>274 で求められた機能としては十分
使用する変数は大体最初に宣言するから一箇所にまとまるのでは?
>>272 完全停止は出来ないがprocess_modeにdisableを指定した上で
動かれて困るメソッドの先頭に以下の一文でも足せば良いんじゃないかな?
if process_mode == Node.PROCESS_MODE_DISABLED: return
>>278 関係ない場所から参照出来なくなるというのは、callが付与されることで、そのような効果があるということでしょうか?
>>279 どうも
disableでもおそらくreadyは動くみたいですね
ローカルで宣言した変数のスコープはローカルという普通の話 別にCallableでの特別処理とかではない グローバルで宣言すればグローバルから扱える _readyの様な初期化処理まで動かしたくないというなら自分は設計の見直しをする 必要なときにadd_childとqueue_freeすればprocess管理する必要がないのではないか?
15歳のGodot教本クラファン、あれ支援してみようかなー
確か達成してた気するけどああいうの上乗せ倍プッシュで支援てできるんだっけ?いいんじゃね
ぶっちゃけGodot全然わからんちんなんで 支援して、本貰って自分にシバキを入れたいって思いもある おっちゃんが15歳に負けたくない><
始めるなら早い方が良いから完成待たずに既にあるのでやってみたら?
https://progsha.org/ 3000円で紙の本と電子本両方もらえるならむしろ安いよね 良心的なクラファンだ
>>281 なるほど 中で宣言するというだけですね
倉庫番のロジックで分からないところがあるのでこっちで質問させてもらいます マップは二次元配列で作成します ただ、キャラクターの移動はvector2で行います 1マスの大きさが32であった場合、vector2の座標が32,0だとしたら、配列上ではarray[y0][x1]となりますよね。 こういった変換に便利な関数とかないでしょうか? やりたいことを箇条書きにすると以下です 1:vector2の座標から配列上の座標を割り出す 2:キャラクターが移動したとき、配列上のキャラクター座標を移動させる(配列上の要素2がキャラとしてます)
普通に割り算して切り捨てるだけでは ものを1マス単位で動かさない前提なら1マス辺りの座標を1にして逆に見た目の方の座標を掛け算なりする方が楽
昔の2Dゲーム機は基本的に背景をマップタイル(キャラクタージェネレータなどとも呼ばれる)単位で管理してたものだから、同じように仮想的なタイルを敷き詰めた画面があるものとして構造体組んで、その上でモブがタイルに沿って動く管理を考えるのがとりあえずは昔のノウハウを適用できて簡単だと思う 倉庫番はまさにそういう動き
なのでモブが動くときはpix単位の座標移動が発生するけどそれはサブルーチンとして、ゲームアルゴリズムとしてはマップ全体の座標を整数の配列で(例えば100×100とか)表して制御し、画面に表示する座標は既に言われてるように適切に係数掛け算する関数を作るのが良いと思います 倉庫番の場合、マップが広いレベルを縮小してモニタに表示したりするので、その拡大縮小表示の変換が自由にできるほうがUXが良くなるし、なんなら回転表示もしたくなるかもしれないので。
>>292 まあ倉庫番まんまならAIに頼めばノーコードで完成するでしょうな
しかしゲームメカニクスの基礎は自分の頭で考えないと応用が効かなくなるから
ちがうアプローチとしてはTileMapを使用するかな 使えるようになるまでのコストが大きいからお勧めとは言い難いが 高機能で複雑な分、理解できたら便利なクラス
理解できないから半年以上苦しんでるんでしょう。 もっと園児でもわかるような単純なやり方を教えてあげて
まんまTilemapなクラスがあったのね これなら簡単だわ勉強になりました
>>291 キャラの動きも配列の書き換えで行って、書き換えられたら再描画というふうにしてもいいんですが
これだと滑らかに動くキャラってのが作れなくなるんですよね
だからチュートなどではvector2で移動させてるんだろうなと
マップ座標とvector2座標の変換は必要になりますね
>>289 別に特殊なクラスとか使うことないんですね
>>293 ゲームロジックとしては配列の書き換えだけということですか?
配列の書き換え→その位置に基づいてキャラを描画、ということでしょうか
関数から、2つの値を返すには何使うんですか? カンマ区切りではダメだったので[1,2]こういう形にしたらいけました
↑2つの値を返して、二次元配列として使いたい感じです array[0][0] こんな感じです
2つの値を返す方法が[1,2]でいけたならそれで解決じゃね? var return_value = [1, 2] array[return_value[0]][return_value[1]]
ありがとう配列で値を返して、インデックス番号でとればいいんですね
これがタプルってやつですか
https://www.reddit.com/r/godot/comments/1cckdwt/how_to_return_two_value_from_function/ あと、人いねーと思っていつもの癖でマルチポストしちゃった
ごめんなさい改善します
マルチでもなんでも問題解決できりゃなんでもいいんだぞ あとTupleの話は出すべきじゃなかったな、忘れてくれ
流石になんでも良くはねえよ… それぞれの場所で時間使って答えてくれてんだから
同じ質問は数日待っても解答が得られなかったらとか制限は掛けた方がいいな redittの方の解答にあるが戻り値がx,yの座標を扱うものであるならVector2を使うと読みやすくなる
>>306 一理ある。初心者は気を遣うことを覚えるより完成させることを優先しろ、オレの先輩の言葉
>>307 配列のIndexを返したいって話だから、Vec2はオーバーキルだと思うぞ。ぶっちゃけやってることは同じだしわかりやすい方でいいんだけどさ。This is KISS.
すまん、どちらか一方にするよ redditはそれにしても人多いねぇ
つーかマルチポストで聞く暇あるなら少しは勉強しろよ 初歩的な問題で詰んでるなら尚更
>>308 質問のみならそうなのだが話題の元が倉庫番作るのにキャラ座標をマップ配列に変換するなのでそこまで含むと解答はこうなる
func cpos_to_mpos(cpos:Vector2i, size:int = 32) -> Vector2i:
return cpos / size
おー、なるほどね! Vector2iって勝手にTrancateしてくれるんだな、勉強になったわ
>>311 すみません
なんか自己流で複雑なやり方になってる気がする
普通はキャラ座標とマップ座標の変換はやらずに、座標を1つに統一したりするんでしょうか
上の人も書いてるけど倉庫番と言うことはグリッドの途中で立ち止まる事はないだろうから、それであれば32で割った盤面上の座標だけ保持して画面表示の時に32倍するなりアニメ補間すればよいのでは その方がセーブやアンドゥも楽になる
>>314 配列使わないということですか?
配列使わない場合、障害物の位置などを表現する場合、どうするでしょうか
二次元配列を使った場合、以下のようにマップを表現すると思います
1=壁,2=キャラ、3=動かせる箱、0=動ける範囲
[
[1,2,3,0,1],
[1,0,0,0,1],
[1,1,1,1,1],
]
グリッドの途中で立ち止まらないというのは、32ずつグリッド移動するという意味ですよね。
1pxずつ動かしたいわけじゃないので、それはその通りです。
>>315 倉庫番である以上オブジェクトは必ず格子状に配置し管理される
それを2次元配列とみなす事ができる
配列を使わない場合は遠回りに配列があるのと同等の処理を行うだけ
なぜ
>>314 の説明で配列使わないという解釈になるのかが判らない
配列を使わない便利な魔法でもあると想像してないか?
配列を使わない方法があっても手間が増えて複雑になるだけだから配列が使われる
配列を使った方法で理解するのが定番
>>313 昔はコンソール上で動かす前提で表示もキャラクター単位だったので
配列の要素番号と表示座標の変換は不要だった
今はウインドウアプリになって表示に座標変換は必須
ウインドウアプリの作法も覚えなきゃで同じ倉庫番の初心者講習でも
昔よりは複雑になり難易度上がってはいる
絵文字使ってるので表示が上手くいかなかったらごめん ゲームとしては全然足りないし完成させる所までが課題ではあるが 学習項目を配列のみに集約するとこの配列操作が理解できれば十分 func _ready(): var map = "🧱👷📦🚩🧱\n" print(map) map[3] = map[2] map[2] = map[1] map[1] = "◾" print(map)
二次元配列まで理解できたら上出来 func _ready(): var map = ["🧱🧱🧱", "🧱👷🧱", "🧱📦🧱", "🧱🚩🧱", "🧱🧱🧱", "\n"] for c in map: print(c) map[3][1] = map[2][1] map[2][1] = map[1][1] map[1][1] = "◾" for c in map: print(c)
二次元配列って配列に配列入れるやつでふよね(^^ そこで詰まってるなら人に聞くよりブッコフに走ってプログラムの基礎が書いてある本買って読んだほうがいいのでは?(^^ 煽りとかいじめでいってるんじゃなくて真剣に(^^ ボッキング!(^^
>>317 配列でやってみます
ありがとう
昔のやり方というのは、配列の座標を書き換える→画面表示を更新、といったやり方ですよね
今のように、ぬるっと動かすことが出来ないということですね
>>322 今の奴ってどのサンプルの話?
存在しない物を今とか空想してんの?
フローチャートよりシンプルな図示方法ってないかな? やっぱりロジックを整理しておいてからコード書かないと脳みそがパンクする 可といってフローチャートは難しい
むずいというか、他人に説明するためのものではないので、自分だけ分かる方法でいいかなと より簡易的であればいいです フロチャは図形の使いこなしが苦手です
>>324 plantumlが面白いかも
plantuml web serverでインストール不要で試せる
検索すればフローチャートの書き方もあるっぽいので
コピペして遊んでみては?
Godotの2Dのコンセプトは3Dを2Dに見せるやり方ではないってのだけはすぐ分かるのだけど、仮想ゲームマシン的な意味での最大スペックはどこ見ればいいのだ 実行マシンさえ強ければ、昔ながらのBG面もテキスト面もスプライト面もそれらの拡縮回転移動もカラーパレットも無制限で表示させて良い感じなのかな? 他にも昔の疑似3Dもやろうと思えば作れるのだろうけど、それには本物の3D使うよね普通の人は。
1つのスクリプトに書いてるんですが、コードが増えてきた場合、領域を分ける方法は関数以外にありますか?
ただ、視覚的に分けるだけでもいいです
レギオンは使えるみたいですね
>>328 どうも
擬似コード的なものを視覚化するというイメージですかね
コアな機能だけモジュール化なりクラス化なりしたほうがいいのかな
インデントが深くなりすぎる場合、対策はあるでしょうか。 pythonで関数をカッコで表現出来るでしょうか。
>>330-332 最初から最後までしっかり読みなさい。
大ヒットゲーム『Balatro』のコードが“力業”だとして共感呼ぶ。コードが汚くても、ゲームが完成してちゃんと動けばそれでいい - AUTOMATON
https://automaton-media.com/articles/newsjp/20240424-290961/ >>330-332 コードの書き方は多種多様な流派があり自分にあった書き方を模索するしかない
チームで開発する時はチームでルールを定める
基本的には公式に従う
安易にファイル分割すると管理が大変になる
単にソースが長いだけならregionで閉じる
全体で共通して使う機能ならグローバルなクラスに纏める
特定のクラスのみの機能なら基底クラスを作って継承する
インデントが深いと思ったらそもそもの処理方式を考え直す
ループの内側を関数化する
ifをand,orで纏める
ソースを短くする為にソースが読み難くなるのは本末転倒なので下手な対策はしない
力業ねえ そうは言っても作り方のセオリーはあるんじゃないかな ユニティだけど物理ワールドでオブジェクト移動するときにポジションに1加算みたいなことしたらバグるし重いよね ベロシティにアドフォースするのがセオリーじゃん? そんな感じで、頭の悪いぐちゃぐちゃなセオリーもへったくれもないコードだと見づらいバグる重いでいいことないし ゴドーで「こういう仕組み作るときはこうやるのがベター」みたいなノウハウを集めたサイトが欲しいわ
>>335 逆引き辞典みたいなのあるといいよね(英語のはわりとある)
まあセオリーやノウハウが欲しいなら、他人のコードをたくさん読むことが近道じゃないかな
>>334 どうも
自分なりに書いてみます
とりあえず見た目と機能は分けます
シンタックスのテーマはストアにないんですかね? githubから持ってくる感じでしょうか
arrayをforで展開するときに、size関数は要素数ですので、例えば要素数5であった場合インデックス0から開始されますので、4までです
この差が誤解を産むことがあるのですが、なにか対策はあるんでしょうか?
>>338 解決 自作します
殆どの言語で要素番号は0から始まるから数こなして慣れるのが一番 順次処理なら要素番号を使わない操作を心がける どうしても気になるなら要素番号が1から始まる配列クラスを自前で作る
ありがとう 練習あるのみか イメージ力みたいなのが足りないと思う 図で考えたほうがいいのかな
レスがつくのは嬉しいだろうけど、Godotから話題が離れてるので自分のゲーム開発だけ話すのなら別のスレで書いて欲しい
一人が言ってるだけだから気にしなくていいよ 他で出せる話題でもないならここでやればいい
スレの運用は適切に 例外を許容しすぎると該当スレの存在意義がなくなる
質問です godotで子ノードにアタッチしたスクリプトの変数にはアクセス出来るんですが、スクリプトを直接ロードして、そこからアクセスしようとするとエラーになるのはなぜでしょうか。この2つの違いが良くわかりません。 目的は長いスクリプトを複数に分けることです。
↑ああそうか 一度シーンにぶら下げないとダメなんですよね godotの場合は 子ノードを作成するか autoloadにするか
AddChildやAutoLoadはシーンツリーに接続されていてそこ経由でのアクセスが可能 ロードしたスクリプトはシーンツリーから独立したインスタンスになるので そこから他のノードへアクセスしたいのならば他のノードへの参照を渡せばアクセス可能にはなる 個人プロジェクトだろうから好きにすれば良いが 長くなったスクリプトを短くする為に理解出来てない機能を使うのは得策では無いと自分は思う それでもどうしてもregionを使わずスクリプトを短くしたいのならば継承を使うと良い そうすれば継承元のスクリプトは継承先では見た目上隠蔽される
ありがとうございます シーンに適当なノードぶら下げてそこにスクリプトつけて分割することにします
直接loadしたスクリプトはnew()すると使えるはず
関数内関数を書く時に以下のような形式になるじゃないですか 名前はどんなふうにつけますか? 一般的に変数名を省略系にするのかなと考えますが var mB = func moveBlock(): print("ブロック動かす処理")
godotのテキストエディタって機能的に十分なのかな? vscode使えるならもちろんそうしたいけどね 公式のエクステンションでもあれば
プログラム初心者で、Gamemakerを触っていたのですが godotはGamemaker触ってたら理解は出来そうですか?
>>358 インストール不要で気軽に始められるから、公式チュートリアル30分位さわってみて判断したらいいよ
%や/とか+=の意味が分からないくらいなら ゲーム開発入門みたいな本を買うなり借りるなりして一度目を通すと少しは助かるかもしれない
GameMaker使ったことないから比較するのにチュートリアルやってみようとしたら開けなかった ブランクプロジェクト開いても何して良いか全然判らなかった これ使えてたならGodotを新しく覚えるのも余裕じゃない?
みなさんどうもです 触ってみろは仰る通り 事前に調べて日本語情報が異様に少ないとか あったのでパイソン? とかの言語知ってるのが前提なのかな?みたいな疑問もあって 聞いてみた次第です GMで苦労したのにまたゼロから習得していくのはしんどいなあw
基本的な情報は有志の日本語ブログと公式ドキュメントをツールで翻訳すれば足りる Pythonに言語仕様が似ているので知っていると楽ができる 今後ビジュアルスクリプティングが流行らないとは言えないがGDScriptでなくても何かの言語は覚えるべき GodotEngineとGDScriptはかなり使いやすいし判りやすいけど 日本語の初心者向け情報を頼りたいならUnityでC#になるんでないの?
>>356 関数名は省略できるっしょ
自分が以前書いた例文もCallableクラスの例文も書いてないと思うけどどこで覚えてきたの?
var move_block = func(): print("~")
move_block.call()
すまん確認してみたら自分が最初に教えた時に明示的にするために関数名書いてたわ デバッグなんかで関数名の表示できると判りやすいとか付けるメリットもあるが インラインで使う関数に名前は付けなくていいよ
>>364 出来るんですね どうも
たしかに出来た
初心者どころか無知張りの質問ばっか 流石に聞く前に少し勉強しようよ…
去年リリースのゲームだけどなんかあったん? 今年の無料枠だと20small mazesとvoid whisperが良かったな
https://ideone.com/q33YHK このくのif文のネストというのはやり過ぎですか?
コードの意味というより、構造としてです
別にダメではないんじゃね 抑えたいんだったらforの中のifだったら否定continueにできないかとか主な部分の分岐は関数にできないかとか
ありがとう 折りたたみがあれば、自分的に分かりづらくはないので、そこが判断基準でしょうかね。
コードの文法にこだわるより動いて完成させるほうが大事ってヒットしたゲーム開発者が言ってた
>>370 冗長ではあるかも
範囲外チェックは関数化すれば使い回せるし押せるかチェックも同じく関数化で使い回せる
>>370 本題とはずれるけど関数やブロックは簡易でもコメント書いた方が良いと思う
優先されるのは動く事なんだけど冗長すぎるコードは将来的には管理不能になり易い
正しく動く関数を作ったら中を見なくても使える位のコメントは必要かと
自分が自分用のコードで書くのはこの程度
## マップ情報からタイル情報を取得
## 指定したpos座標からdir方向にstep目のタイルを取得する
func get_tile(pos, dir = Vector2i.ZERO, step = 0):
var x = pos.x + dir.x * step
var y = pos.y + dir.y * step
if y < 0 or y >= map.size(): return
if x < 0 or x >= map[y].length(): return
return map[y][x]
forの外でなく中で分岐チェックが入るのはなぜだろうと for内部で分岐チェック変数自体が変化するのかなとか一寸思った
>>373 ほんとそれ(*´ω`*)
でも自分でも書いたコードの意味がわからなくなることがある
ただ、完成させたら後は触らなけりゃいいものね
>>379 どうも
むつかしそうなことしないと作れないんですね
どうも 2dなんですが既存のノードだけでやろうとしてました
>>379 のはgit cloneすればsampleの動作を見れる
addonとして追加すればSoftBody2Dクラスが使えるようになる
チュートリアル動画を見て自分でノードを追加してテクスチャ設定して動作する所までは確認した
自分で使う為のカスタマイズがどこまで出来る、どの様に出来るかまでは把握してない
必要なら納得いくまで自分で試してみると良い
>>384 ありがとう
動かないやと思ってたら3でやってたが、4でも動かないや
これから調べます
使えなかったらspringjoint系でも自作は出来るみたいですね
>>385 pluginsからenableしないとダメなんですね
pinjoint2dにテクスチャ付けたいのですが、そのテクスチャをpinjoint2dの動きと連動させるには、スケルトン2dあたりも必要になるんでしょうか? 参考になる記事が見つからなかったので
ブロック崩しの「ボール」みたいなのは CharacterBody2D か Area2D どっちが適してる? 反射処理も悩んでいる _on_body_entered() で自分の進んでいる方向と当たった箇所はどうやって取得? まだまだチュートリアルから卒業できない。
>>389 ありがとう!
GPT にも相談しながら試行錯誤してみる
質問です スケルトン2dのuvエディタなんですが、真ん中の棒がuvからかなり突き出ているためか、ボーンを動かしても思い通りに曲がりません これってどういう状態でしょうか。棒の意味がわかりませ imgbox.com/mUDkcBDk
ただ、ボーンが2本なのにuvエディタでは3本表示されるようです
は〜、世の中には不思議なことがあるものですね 自分の設定ミスや勘違いじゃなければ仕様かBug OSSってのはそういうもんだ、あきらめるか無視しろ 可能であれば、Engineの開発チームにIssues飛ばすかBugFixしてCommitしたれ Engineのクレジットに名前が載るぞ
pinjoint2dでテクスチャを曲げたいのですが、これはどうやったらいいんでしょうか。 通常、1枚のテクスチャを曲げるには、skelton2dとpolygon2dを使うみたいです。 ということはpinjointでつなげたrigidbody2dとskelton2dを連動させる必要があるんでしょうか。 もっと楽な方法があれば教えてもらいたいです。
>>398 何がしたいの?
答えがないからこっち来てるんだけど
>>399 読解力があれば質問を控えてまず自分で試行錯誤しろという警告である事を理解できるはずなんだが
やらずに聞くのではなくやってみてダメだったことをここに質問しに来れば良いのでは
既存のチュートあるならそれが一番だと思っているので 自分の力で考えても良い結果になった試しが、自分に関してはないので
わざわざ日本語情報少ないエンジン選んでるんだから少ない情報から試行錯誤したり機械翻訳でも英語読んだりは必要よ
試行錯誤でどうにかできそうならもちろんそうするんだけど、情報少なくて、、、 英語フォーラムで聞きます
普通にさっきのプラグインじゃダメ?4.3だけど普通に動く 手作業で作ると糞ダルイと思うけど
最初に提示された
>>378 からして設定面倒そうで自分に必要でなければ試す気にならない
簡単に使えなくてぷるぷるするのが珍しいから魅力を感じるのでしょう
見守ってあげよう ゲーム作りたいって気持ちはないがしろにはできないから
作例があっても模倣できないのに漠然としたイメージだけで仕様に落とし込めてない物が作れる訳がない 本当に作りたいなら基礎固めしないとどうにもならない まあ夢を語るのは好きにすれば良いと思うよ
他人を利用して作った事にして恩恵だけを横取りしたいだけで 別に作りたくもなんともない本音が透けて見えるんだよな 自分にメリットがありそうなコピペできなきゃチュートリアルすらやらないしね
>>397 これで目的が実現可能かは自分には判らんが
RigidBody2DとSkelton2D配下のBone2Dを連動させるにはRemoteTransform2Dを使うとできる
>>409 単に力量不足でコピペに頼るしかないのだと思うよ
地道な研鑽をやらずに結果を得ようとするから上手くいかなくなる
>>411 バイトや仕事をやったことがないし仕事覚えられる頭がなくて働けないから
働く代わりにゲームを売って生計を立てたいんだとさ
言われた事を100回聞きなおした挙句何もしないならそりゃクビになるよな
条件的には簡単に作れる流行りものに乗るのが良いのかね VampireSurvivorsが流行った初期ならフォロワーでも少しは売れたかも スイカゲームは作るのは簡単だけど国内のみの人気だから勝ち目は無かったかな 確かこのスレで聞いてたQはオリジナルのステージ量に勝てないから無理目 他特殊なアイデアの物は真似できないからそもそも無理 AI使ったエロパズルももう下火かね 時流に乗るには即座に作る技量が居るからやっぱ無理じゃない?
>>405 自分でも試してみた
テクスチャ貼ったら子ノードは自動生成だったから自分で作るよりは遥かに楽だね
apply_force()で跳ねさせてみた分にはそれっぽい挙動はする
仕事だとしたくないけど実験は楽しいから睡眠時間を犠牲にしてしまった
情報が少ないのでサンプルやアドインのコードを読まなきゃならないからその点では簡単とは言えないかもね
>>410 ありがとうございます
>>409 そういうことでいいですよ そう思うのなら
チュートリアルはやってるけど目的と関係ないことやっても答えが得られないし
>>416 義務教育や算数の授業受けろと言われても目的と関係ないとか言いだしてボイコットするタイプ?
目標とか言ってオリンピックだの全国大会だのデカイ風呂敷広げるのは結構だが、基礎が出来なきゃ応用なんて
とても出来る物じゃない。何が基礎で何が応用なのか相関関係が分からないのはお前が未熟だからだろ。
そもそも勧められたチュートリアルの基礎技術/根幹技術は倉庫番のどこで出て来て使われてたのか分かりもしないのに
何故お前にそれが必要か不必要かの判断が出来るんだよ?
そういうのを驕りとか傲慢って言うんだぜ
そうやって練習や基礎基本を舐めてるから10年やっても1000回やっても出来ないだけじゃねえか
お前がそういうもの全般バカにしてなきゃそういう態度にはならねえと思うけどな
基礎基本をマスターすらしてない人間が、選り好みや取捨選択なんて100万年早い
10年やっても1000回やっても結果に繋がらない理由はもうハッキリしてるじゃん
いくらやっても今のままを続けるなら時間の無駄だよ だって舐めてるじゃん
同じこと繰り返してるし別に悪いと思ってないよね 形だけの謝罪はいらんねん
>>420 ではpinjointとボーンのリンクの方法が含まれるチュートリアルを教えて下さい。
基礎が大事といってもその部分が今の自分にとっては基礎。基礎と応用の境界線は明確じゃない。
もしかして、体系的に学ばないと意味がないという考え方なんですかね?
>>422 何で勝手にSoftbodyと話をスリ変えてんの?
他人を利用するには手段を択ばないタイプ?
聞かれた事は倉庫番とGodotの入門チュートリアルの話だろ?
そもそも倉庫番で入力のロジックはどのソースで何行目か聞いた時答えられなかったよな?
その時点で入門の応用だという事が何も理解出来てないのを誤魔化してるだけだろ
ほぼ同一のコードやロジックが何度も出て来るのにそれすら分からない
足し算が出来ないのに掛け算だけ都合よく理解出来るとか1次方程式や2次方程式が都合よく理解出来るなら
お前は既に適当にごちゃごちゃ言ってるSoftbodyも出来て当然だろ
何故理解も出来ないし使う事も出来ないんだ? 矛盾してるだろ
>>424 こっちが聞いてるんだが?
反証のしようがないって事なら、正当な理由もなく判断してるって事だよな
お前は物事を理由もなく判断しているのかい?
それこそ気分で〇〇だとか言ってるだけのファッションなの?
本題は基礎と応用の相関関係の話じゃねえの?
人間ってのは自分の技量や知性を超えた物や理解出来ない特性があるから
Lv1がLv2の世界を理解する事は出来ないんだが、お前がそれを覆すなら
何故今すぐSoftbodyができないのか説明が付かないんだが説明してみろよ
自分は作例と模倣の話は最近の出来事として倉庫番をイメージして書いたが
>>3 uWWN16AはSoftBodyの事だと認識した
これで伝わるだろうと言葉を端折った自分の落ち度
お互いの前提が異なる状態で争うのは抑えてくれないか
文脈や行間を読むのが不得意でその時のひらめきで判断してるのだろう
そういう仮定で話を理解して会話しないと会話が成り立たないと思う
>>+vuesiX5 アドバイスするにも指摘して反証求めるにも喧嘩腰で話しても反発させるだけ 対話を求めるなら相手に合わせるべきだと思う 行動や発言に不満があるなら無視すべき 文句を言った所で行動を改められないのに数を重ねられるのは不快
>>427 何が改善や打開に繋がるのか理解せず我流で続けるから10数年も掛かって
チュートリアルすらも終えられたことがない
正解を読み取れない人間が不正解を選び続ける事が本質的な原因そのものだし
本道から外れてる事が原因にしか見えないけどね
改善の意思が見られないから改善する気がないのか?と聞いてる 確認なのだが?
そもそも改善する気がない人間にアドバイスなんて意味がないだろ
10数年も追っかけご苦労さん 10数年も成果を得られない壁打ちするのは時間の無駄だと思うよ
結局、目的は答案を見せろ写させろであって、勉強の仕方や賢くなる事じゃない それが勉強を省略できる唯一の方法だと信じて10数年もそれを続けている だから成績が改善しないという単純な問題にしか見えないんだが それを愚者だと言わずに何というのだろうかね? 馬鹿?
初心者に手厚くするのは歓迎だけど努力もしない馬鹿に一から十まで答え用意する義理はないからなぁ それこそAIに聞いてろって話
numpyが使えれば簡易的なpython環境として遊べそうかと思ったんだけど
>>433 これはpythonをインストールしないといけないみたいですね。
pythonは環境設定が面倒なんでgodotだとそれをしないで済むかなと思ったんです。
pythonのメリットてnumpyが使えるのが大きいんでそれが使えれば良かったんです
GodotEngineはpythonに似た構文のGDScriptが使えるってだけでpythonではないからね numpyを使うのが目的なら素直にpython環境を構築するのが良いと思うよ
remoteTransformでリグと同期できたわ ありがとね教えてくれた人
情報がないとは言うがSkelton2Dの公式チュートリアルにおいて 先にカットアウトアニメーションのチュートリアルを実行する事を勧められる このカットアウトアニメーションのチュートリアルの中でRemoteTransform2Dの説明が為されている 公式チュートリアルを全部やれと言うのは難題だが自分のやりたい範囲くらいは丁寧に学習するべきだと思うよ 自分がなぜRemoteTransform2Dを知っていて答えられたかと言えばチュートリアルを読んでいたから 少なくともSoftBodyとそれを実現する情報は存在しているから教えられている
>>378 に提示された記事においてぷるぷるする技術をSoftBodyと呼称している
ではGodotでSoftBodyは使えるのかと調べてSoftBody3Dしかない事が判る
ではSoftBody2Dを実現するにはと調べて
>>379 に辿り着く
情報があってもそこまで辿り着けてないだけ
調べる手順に何か不足があるからだと思うがそこまでは自分には判らない
>>437 なら情報豊富なUnityでもやれば?
わざわざGodot選んでおいて何言ってんの
使ってて思ったけど Godotはとっかかりやすいけどかゆいところにまだ手が届いてないって感じだよな v6くらいになれば機能面でもnext unityになるのだろうか
>>441 2Dで何か作る分には困ることないように思うのだがかゆいところって具体的には何じゃろ?
3Dは軽くしか触ってないがそっち方面かね?
自分はGodotにはVR開発できる快速エンジンとして期待しているのだが
物理演算周りかな 自分は土日のお題のミニゲームレベルのゲーム作ってるだけだけど それですらめちゃくちゃ困ってる(move_and_slideの挙動とか、細かい制御とか) VR開発かぁ、いいなぁ!
>>443 物理演算はかなり荒ぶるね他の物理エンジンなら変わるのかな?
自分が作るなら物理演算はできるだけ避けるかな移動判定はやむなしって所だけど
SoftBody2Dを作ってるappsinacupさんがBox2DとRapierのGDExtension作ってるから困っているなら試すのもありかも
https://github.com/appsinacup 単純置換できると良いがそれ前提で組む必要があるなら面倒だなと思った所で中まで見てないのでどうだかは判らない
VRは情報が少なくて難儀はしたけど手順を理解するとUnityより楽
https://www.snopekgames.com/tutorial/2023/how-make-vr-game-webxr-godot-4 ここの情報だけでWebXRで動かせたのには感動までした
Unityでは良く判らなくて投げ出したから
情報ってあるないより判りやすいとか簡単に使えるって事の方が大事に思う
情報あっても手順が複雑難解過ぎて理解できない使えないって事が多々あるから
Installationを読む限りでは組み込んで設定を変えるだけで物理エンジンを変更できるようだね
https://github.com/appsinacup/godot-rapier-2d サンキューブラザー! 実はSoftbody調べてるときにこの人Box2Dも移植してるのかすげーって見かけて気になってたんだよね 簡単に変更できるならやってみるかな〜 VRゴーグル、ください……(涙
ブロック崩しの人? ボールならslideじゃなくmove_and_collideのほうがええで slideは名前の通りスライドする挙動のときに使うやつ(プレイヤーキャラとか)でそれ以外のときは使わない方がいいっぽい
>>446 AssetLibからダウンロード→高度な設定で物理2Dエンジン変更→再起動
これだけだった、簡単に球が落ちるプログラム書いて動かしてみたが違いは判らんね
Extensionの都合で動作環境に制約が掛かるのは注意してね
Web公開できなくなるのは人によっては困るのではと思う
おもちゃとしてではなく自分への投資と考えたら高くないよ
自分は絵心ないから凝った事はできないけど
テーブルの上の箱を掴んで投げるプログラム書くだけでも楽しいよ
あ、ごめん、ブロック崩しの人ではないです collide使うのかぁ 細かい動作しようとするとその辺(下手するともっとローレベルな仕組み)避けられそうにないですもんね、この辺りがゆいところに届かないなって感じたところだったり
素のCharactorBody2Dでは単純なジャンプアクションしかできないものね 一般的な2Dアクションゲームの挙動しようと思ったら結局がりごり書かなきゃならない 確かに求められる機能として実装されているか実装方法がやさしく解説されていればとは思うね
荒れてる所で書く事か分からんけど、エンジンに求めるのは車輪の再発明しなくて済むよう楽にやりたい事が出来るか否かって面もあるからなぁ ただエンジン自体が複雑になればUnity、UE等のようにラーニングコストが跳ね上がっていくのも事実(Godotの場合大きさや重さも) この辺はにんともだね
うん、今から自作エンジン作ってやるぞよりはマシってレベルでいい気はする なければ作るしかないわけだし、作るのも楽しいしな
いいなー自分もエディタの自作楽しいって言えるくらいになりたい 公式の解説見ながらやったけど自分には早かった…
unityなんかも 既存機能は微妙なんでアセットあるかどうかっていうコミュニティ規模の差でしかないと思う AIの補助が難しいのもgdscriptがマイナー言語だから godotの強みって エディタが見やすくて拡張しやすいとか、エディタ軽いとか、動的型付けでシンプルに実装できるとかで 変なインディーゲー作る小規模開発者みたいなニッチな需要でしかないと思う テンプレゲーを演出で魅せたいタイプなら別のエンジンの方が良いという感想
いいねぇ、その需要はワイにぴったりだわ 人口増えるといいなぁ、Godot
characterbody2dにfrictionはある? physicsmaterialは使えないみたいだ 単に重力を増やすしかない
うん、公式ドキュメント曰く、そもそもCharacterBodyはPhysicsEngineから影響を受けるように想定されておらず、直接コーディングして挙動をコントロールためのノードです、とのこと
つまり、自分でFriction(っぽい動きをする)コードを書くか、RigidBodyにあるものを使うか、その二つということなのでは
とオレは現段階では解釈してる
https://docs.godotengine.org/ja/4.x/tutorials/physics/using_character_body_2d.html どうも フリクションというより単純に移動スピードを切り替えるのがいいみたい
ゲームメカニクスのフレームワークでおすすめある? プロト作っても訳わからん物体が出来上がるだけなので、フレームワークに沿って作りたい とりあえずMDAってやる
それ分析用のフレームワークじゃなかったか? ちゃんと理解できてる?
そうか、がんばれ、おもろいものできたら是非報告してくれ ちなみにフレームワークのおすすめは白紙とペンだ ホワイトボードでもいいものできるぞ
3Dの本でるみたいだねgodotで3Dやる人どれだけいるか知らないけど
割と見かけるけどね3Dの作品 どっちかっていうとシェーダーとかエフェクトのレシピ本の方が欲しい気もする
おっさんだからちょっと暇つぶしみたいなゲームに魅力感じるようになった
業界動向的にもそんな感じはする クリエイターもプレイヤーも高齢化してるってことだろう ※個人の感想です 新興市場でどういうゲームが出てくるか要チェックだな
steamは相変わらず作りたいもの作ってる人がほとんど
ゲームってぶれないコンセプトが必要なんだね 面白そうと思ったコアメカニクスから考えて、コンセプトがブレブレってことがよくある コンセプトはどんな体験を与えたいか、そこから考えるべきだったんだね(*´ω`*)、、、
アクションとしては斬新なものはないんだけど結構やっちゃう キャラのデザインもかわいいし、他キャラがワチャワチャしてるのも楽しい 見せ方って大事だなぁ www.crazygames.com/game/ninja-parkour-multiplayer
発想法とか考えてたら、また何作るか分からんループにハマってしまった シンプルに決める方法とかあるかな?
>>474 何かと何かを組み合わせると面白くなるかも(フルーツ+くっつける+パズル=スイカゲーム、駅+迷路+脱出=8番出口)
逆に既存のものを分解してみると面白いかも
あと、やりたいこと(ぼやっとしててもいい)から逸れると迷走してよく分からなくなると思う
>>475 ありがとう
あくまでやりたいこと優先ってこと?
発想法ででてきたIDEAがやりたいこととは限らないし
結局、取り掛かる熱量がないとダメだし
やりたいことを明確にするには、自己分析とか必要だなぁ
自分が何に快感を感じるのか
とまたドツボにハマる
出来合いのアニメーション付き3Dモデルを動かすのは出来たけど自作モデルを動かすのは面倒な感じですかね
3Dでゲーム全然作らないからあれだけどblenderでモデリング場合によってはスカルプチュアやらやって ボーンぶちこみウェイトとリギング、想定してる個々の動作アニメーションも設定して テクスチャやらペイントで色付けの作業を全ての素材で行うのが苦じゃないならいけるよ ちなみに色々省いてだからクオリティ高くしたいならさらに工数が増える 3Dは作れば資産になるけどそこまで行くのが大変だよね
やる気出る方法ある? 常に手を動かしてないとだめだな 夕方になってやっとやる気がちょっと出てくる godotで3dってあんまり見ないね
3Dの本の1日目でプログラミング無しでキャラ動かすまで行くよ
>>479 エディターはスタートアップに入れておく
PCが立ち上がったらエディターに向かってコメント書きでもソース整形でもプロパティ変更でもいいから触る
あとは前日名残惜しい所で終わらせておく派とキリのいいところまで終わらせる派がいるね
正確には1日目(キャラ移動)で、2日目~4日目を飛ばして、 5日目(カメラとアニメーション)でキャラ動かせるようになった(プログラムもあるけどコピペで)
>>476 実際にやってみるまでどれくらい好きとか分からないから、三日坊主でもいいから数打ってやるのが良いと思う
>>479 ゲームでも何でも、ふとした時にやってのめり込むことが多いから、障壁をできるだけ低くするのがいいんじゃない
>>479 他人にやれと言われてもやる気出ないから
やりたいものやるのがいいと思ってるわ
なんだっけな?漫画家になりたくて仕方なかった人が新人賞を取った時に ずっとなりたかった漫画家になれて今からすごく楽しみみたいな事をインタビューで答えてた事があったな まぁそういう事だよね
クラファンしてるGodot教本が気になる ペーペーで公式のチュートリアルがクリア出来なかった俺の助けになるか!?
boothでも買えるよ。 プログラミング超初心者って訳じゃないから キャラの対話形式みたいなノリ見て買ってないけど
ありがとう(*´ω`*) メンタル落ちてる時期でな、、、
本も1日1ページしか読めないメンタルだぜ今(*´ω`*)
しかし発見があったよ やりたいことと出来ることが重なるところにモチベが発揮されるってこと(*´ω`*) 良く言われることだけど
基礎の完成まではどのくらいかける? ミニゲームパズルゲームくらいなら、2,3日でコアメカニクスを確認するのがいいかなと game a weekでもちょっと長いかなと思う。
フルスクラッチなら時間かかるでしょ 既存のコードパクるなら速いけど
godotでヘックスマップ(昔の戦略SLGでよくある六角形タイルマップ)の構造を簡単に実装できるライブラリ無いかしら
TileMapに設定するTileSetのTileShapeをHexagonかHalf-Offset Squareにする
>>501-502 ご教示ありがとうございます
公式でヘックスマップのサンプルアセットが用意されててYouTubeで簡単に解説してくれる人もいるのに今まで存在に気付いてませんでした
まったく申し訳ないです
>>503 エンジンの機能を全て把握なんてできないからあるない位は聞いて良いと思うよ
調べるのも技術がいるので適切なものを見つけられない事もある
>>502 を試してみた
3系のプロジェクトなので4.2ではそのままでは動かなかった
とりあえず挙動をみるなら3系で動かして欲しい
4.2への自動変換では動かなかったので手作業で移植して動く事は確認した
マスの重みは考慮してない模様
追記 経路検索はダイクストラとA*の二種類に対応 どちらも重み付けに対応している方法なのでその処理を書き足せば重み付けありにできるはず
検証した結果、経路検索は4.2のHexagon配置だと正常な結果を返さなかった なので4系で経路検索するなら自分で書くか4系Hexagon対応の経路検索処理を探す必要がある
経路探索の考え方はオライリーの本を持ってるのでだいたい分かります 自分でコード書く必要がある部分で多少苦労するのは仕方がないですね
Hexagon対応できた 4角前提で近傍セルを取得している部分を6角に置き換え 3系から4系になって便利メソッドが増えているので意識して置き換えると元より処理が簡素化する
経路探索に興味あったのので本買ったこれから勉強する
jrpgみたいなフォーマットでrpg作るならgodotではなくて、ウディタやツクール使う? 2,3日でサクッと何か作りたい感じ
当たり前すぎて愚問だけど何使ってもお前に完成は無理だろ
「算数が出来ないから東大目指すわ」(ドヤァ 毎回この展開笑う
>>502 を4系へ移植した人がいてアセットライブラリに登録してた
検索手法はA*のみになるけどコードはスッキリ纏められていて元より判りやすい
https://github.com/arrrr110/godot_2d-hex_nav_demo godotをダウンロードして解凍して起動したんだけど
下記のような状態で文字が読めないんだけどどうしたらいいですか?
何度起動し直しても新しく解凍して起動してみてもダメでした…
システムの国情報が読めてないんじゃと思われるんだけどセキュリティソフトを何か入れているかい?
ダイアログは読めているからそうでもないか フォントが読めてないか?
とりあえずOSとGodotEngineのバージョンを教えてくれ
セキュリティはなにも入れてないと思います… 公式から何度新しく再ダウンロードして解凍して起動してもこうなります どうしても使いたいのですが直す方法はないでしょうか?
OSはwin10で 公式からGodot_v4.2.2-stable_win64.exeというのをダウンロードしました
フォントっていうかアイコン画像も全部同じ形で欠けてるからGPU関連の相性とかバグな気がする
そのフォントをダウンロードしてインストールしてみましたが なにも変わりませんでした… ちなみに試しに違うverを公式からダウンロードして解凍して起動してみたら 一瞬だけ普通に文字が表示されたのですがすぐまたこのバグった状態になってしまいました どうしたらいいでしょうか 検索しても似たような症状の人が見つからず大変困っています
コマンドラインの使い方は分かるかな? GodotEngine実行ファイルのオプションに--rendering-driver opengl3を付けて実行してみて欲しい
すいませんわかりません… Godot_v4.2.2-stable_win64.exeを右クリして名前を変更で 後ろに--rendering-driver opengl3を付けるとかでしょうか? どうやればいいか教えてくれますか?
ファイルパスは環境に合わせて直してしい スタートメニューを右クリックでポップアップメニューを出して「ファイル名を指定して実行」を選ぶ 開いたダイアログにcmdと書いてOKクリックまたはエンターキーを押す 開いたウインドウにGodotEngineのファイルをドラッグドロップする ファイルパスが書き込まれるのでその後ろに半角スペースを空けて--rendering-driver opengl3を書き足してエンターキーを押す ここまでだが判らなかったらまた聞いてくれ
ごめん一番上の一行はコピペみすったので読まなくて良い
やってる事の説明すると
>>524 の指摘でGPUの表示が変では無いかとの事なので
グラフィックドライバが古いバージョンを使用するオプションで起動させる
これで合ってますか?
エンターを押して起動したのですがやはり文字化けしています…
それともどこか間違ってしまったのでしょうか
起動方法はあってる グラフィックドライバーの対策は上手くいかなかったが一応ビデオカードの種類を教えてもらえるか? パッと思い浮かぶ対策がこれだったのでネタが切れてる
これがエディター起動した時の正常な状態だから
右上を一番上の英語[en]Englishにしてみてはどうですか
英語にして再起動してみましたが同じく文字化けしています
その後再度日本語に戻しましたがやはり駄目でした
ビデオカードというのは
これで合ってますか?
あってるよありがとう hd520はvalkanに対応しているからオプションを付けて動かすとかはしなくてもよさそう
言語と地域を米国にしてGodotEngineを起動しても日本語だった 以前の設定を保存していると判断して%APPDATA%\Godotフォルダを削除して起動すると英語になった これを踏まえて言語と地域が日本語である事を確認し%APPDATA%\Godotフォルダを削除してから起動を試してみて欲しい %APPDATA%はログインユーザーのフォルダ\AppData\Roamingの事
あー俺が馬鹿すぎんな
>>524 の指摘を半端に解釈してた
日本語表示はできているんじゃん勝手にアラビア文字で表示されていると思い込んでた
この場合の対処はグラフィックドライバを最新に更新するだな
OS、.net、ドライバー全部更新してもダメなら 試しに3系にダウングレードして起動してみたらどうよ それでも化けてたらエンジンのバグだろう(意訳、お手上げ)
部分的なGPU機能の損傷って線もなくもない お手上げには同意
デバイスマネージャーからグラフィックドライバを右クリして更新してみたのですが すでに最新の状態になっていると表示されました \AppData\Roaming\Godotを削除した所 ついに日本語で表示されたのですが一度アプリを落として起動し直すと やはり同じく文字化け状態になってしましました… もう一度フォルダを消すとまた日本語に戻りました どうやら\AppData\Roaming\Godotのフォルダを削除すると 最初の1回目の起動だけ文字化けしないということが判明しました 最悪毎回\AppData\Roaming\Godotのフォルダを削除すれば使えるかなと思ったのですが 毎回起動時にこのフォルダを削除することによる弊害とかはありますでしょうか? もしそこまでデメリットがないのであれば使う際は面倒ではありますが 毎回フォルダの削除をして起動するというやり方で使っていこうかなと思っているのですが
Roming/Godotフォルダを削除した状態で先に言ったオプション付きの起動だとどうなる?
Roming/Godotフォルダは設定や作業用の一時ファイルが保存されているから消すと新規状態になる プロジェクトマネージャには開発中プロジェクトが表示されるのだが毎回インポートして登録する手間が発生する
使えるか判らない状態で少し先走った話をするが 古いビデオカードを使用する場合はプロジェクト作成し開いた後に右上のレンダリング方法を互換性に切り替えるのをお勧めする
>>538 のあるがある程度やってみて駄目だったら4系ではなく3系を試すのもある
3系は今オプションを付けてもらっている状態相当な古いドライバで起動する
フォルダを削除した状態でコマンドプロンプトでの起動やってみましたが 最初の一回目の起動だけ日本語で表示され一度落として再度コマンドプロンプトから起動しても やはり文字化け状態になりました… 毎回起動時にフォルダを削除しても登録等少し手間が増えるだけでそこまで重要な問題はなさそうな感じでしょうかね? であれば一応試しに使っていってみようと思います レンダリングの互換性の切り替えもやってみます
プロジェクトを作る時に聞いてきて説明も書いてあるけど valkan,モバイル,互換性で後になるほど古い環境向けになる
Roming/Godotフォルダ内のeditor_settings-4.tresが設定ファイルだから これ消すだけならプロジェクトは残るので試してみて
editor_settings-4.tresってエディタ設定の設定項目だと思われるので これ消して直るなら設定詰めたら問題解決できる気もする エディタ設定に表示されない項目がある可能性もあるので単純簡単とは言えない
気になって調べたらこんなの見つけた
Compatibility renderer (GLES3) incorrect rendering (half quads / cut off triangles) #79955
https://github.com/godotengine/godot/issues/79955 最後の方にノートパソコンの電源オプションをパフォーマンスにしたら治った的なのもあるしよくわからんね
自分は設定ファイルを消したらどうかと書いたが記事読んだら シェーダキャッシュフォルダを消すと問題が解消する場合があるとなってるな グラフィック周りの障害だから関係はありそうね
シェーダーキャッシュを無効化するオプション--disable-shader-cacheを付けて起動できるが非正規オプションぽい
>>549 詳しくないので適当な考察だけどGPUに割り当てられているメモリを
使われていないメモリと誤認識して壊してしまう可能性があるとか?
電源オプションで直るならそれに越したことはないので試せば良いんじゃないかね
このオプションは専用ビルドでしか機能しないのか? 障害はIntel環境で確認されていて3.5なら問題が発生してないとも書いてるな
そこを読むとAMD環境でも駄目だなiGPUの問題か
4.1からって事なら4系使いたければ4.0使えば避けられるのね
>>555 の記事に互換性モードで発生する障害と書いてあるな
最初に互換性オプション付けてもらったのは逆効果だったか
valkan動作に懸念があって互換性モードに切り替わると発生するのかな?
HD520はvalkan1.2に対応していると書いてあったがIntel内蔵だしなぁ
vulkanが駄目でopengl3もだめならopengl3_esを試したらどうなるか気になる --rendering-driverオプションでvulkan指定したら互換性に切り替わらないで動作したりしないだろうか?
ハードウェア特有のおま環対応は難しいよなぁ Godot開発チームも再現性なくて対処療法くらいしか提案できなんだろう バグフィックスしてPullRequest送るか、PC本体を捧げて直してもらおうず
HD520な環境持ってないからHD2500なIvyBridgeで スワップも発生させる為にメモリ2GBのWindows10で動かしたが再現せん おま環強すぎる
Skylake(第6世代)は2022/12でサポート切れでfixはない ドライバ更新も2021/11で止まってる サポート切れてからバグるのも嫌な物だな デスクトップならGT730とか激安グラボ(4000〜5000円)刺すか 中古の掘り出し物探すのが現実的かな ノートの場合はご愁傷様
教えて貰ったリンクのPCがノートPCっぽいので発生要因に含まれるかも スマホでもラズパイでも正常に動いてたので何でもいいから新しめの機械を入手するのが楽かな 色々やって間違ってた事とか確認した事とか折角なので書いとく うろ覚えでHD2500と書いたが自分がテストした実機はHD4600だった --rendering-driverオプションのopenlgl3_esはX11環境の場合でWindows環境ならopengl3_angleになる vulkanをサポートしないHD4600で--rendering-driver vulkanオプションを指定して起動すると 互換性モードに切り替わることなくエラーで終了
ボール同士が衝突した場合に両方消滅させて、新たな大きなボールを生成したいです 要はスイカゲームみたいな仕組みを作りたいんです ボールは1.tscn、2.tscnというようにシーンで作ってます 両方に同じスクリプトをつけてます on_body_enteredで発火させてるんですが、ボール同士という検知をするには、グループにするといいんですかね?
大量にノードを扱うのには向いてないらしいが作るのが楽になるならグループでも良いんじゃないかな? 他にはnameプロパティを適切に設定して名前で判定 add_childする親を同一にしてparentで判定 class_nameを設定して型で判定
衝突検知についてなのですが、安定して衝突を検知してくれるのってなんでしょうか? rigidbody2dの_on_body_shape_enteredを使っているんですが、衝突の角度によって動作しないです。 スイカゲームのようにボールが衝突したときに両方消滅させたいんですが、片方だけ消えて、片方は残るといったことが、当てる角度によって起こります。 その角度というのは真下に落として、まっすぐ重ねた場合です。 プロセスごとに監視するやり方を試してみます。
もう片方の衝突検知の前に片方が消えてるとかそういうのではなく?
あー、そういうことなんですかね。 2つのボールに同じスクリプトを仕込んで消してます。 その衝突タイミングがずれてるのがダメということですか。 func _on_body_shape_entered(body_rid: RID, body: Node, body_shape_index: int, local_shape_index: int) -> void: if body.is_in_group("ball"): self.queue_free()
godotがどういうロジックでスクリプト動かしているか追った事無いけど、同時にスクリプトが起動する保証が無い可能性は高いよ
ありがとうございます 他の方法を探してみます 当たる角度によってはきちんと発動しました
ぶつかった相手を削除する ↓ 自分を削除する にすれば確実に両方消してくれる
>>572 どっちを加被にするかでまた問題になりそう
>>572 ありがとう
とりあえず調整なしで動いているので、完成目指してこのままいきます
動かない場合を再現出来ない
質問させてください。 1つのシーンに番号のついたボールが複数個ある場合、その番号を把握するにはどんな方法があるでしょうか? ボール1は1.tscn、ボール2は2.tscnとしています。同じ番号同士が衝突した場合に発火させる感じです。 シーンのインスタンスにカスタムプロパティ設定するくらいかなと思います。
>>577 ではそれで。ゲーム開発、頑張ってください!
>>578 ありがとう
advancedセッティングのとこですね
>>580 何か勘違いをしている
カスタムシグナルの項を読んでくれ
自分で定義したシグナルに引数を付けて情報を渡す事ができる
https://docs.godotengine.org/ja/4.x/getting_started/step_by_step/signals.html 各シーンのプロパティを読む方法で対処できるなら無理に使う必要はない
クロスプラットフォーム対応IDE「JetBrains Rider」、Godot Engine独自の言語「GDScript」をサポートすることが発表
https://gamemakers.jp/article/2024_06_10_70548/ 使っている人には嬉しいのかね?
統一するならVisualStudioCodeに統一したいとは思う
VSCodeが普通のナイフだとすれば、Riderはよく切れるナイフって感じ 30%くらいは作業効率上がるんじゃないかな まあインディーで採用するのに年間2万円〜は勇気いるよな
効率アップに年間2万か PC操作するより手動かさないで考えている時間の方が遥かに長いから改善するならそっちが優先かな そうでなければ開発機器 2Dなら気にならないのだけれどビデオカード高騰してからリプレースしてないのよね
今更言うのもあれだけど、2月くらいの時点でグラボが安くなるイメージ無いので買うなら早く買っとけとPC板では言ってた その思いは今も変わらんなぁ...
今は必要なら買え買えるなら買っとけになってるね 待ってても安くはならない印象
2040年には現新興国に抜かれるって大本営発表まで出る始末だからな 海外メインの製品とか下手したら必要でも買うどころじゃなくなってるかもな
リアルタイムi2iが主流になったらグラボはなくなりそうな気がする その後はAIプロセッサだけあればいいという時代に そしてgodotからフォークされたAI特化エンジンを誰かが作るから 俺はそれを使う
いやゲームどうすんねんで終わる話 グラボ不要論はゲームが必要としなくなってからの話、当分先だよ
質問させてください body_enteredにコネクトで接続したいのですが、発火しません 原因はわかりませんか? rigidbody側の設定ですが、contact monitorとmax contacts reportedの設定はしています timerノードのtimeoutシグナルはコネクトで接続出来るんですが、rigidbodyだとうまくいきません extends Node2D var ball = load("res://test/ball.tscn") func _ready() -> void: var ins = ball.instantiate() ins.add_to_group("ball") self.add_child(ins) ins.connect("body_entered",_test) func _test(): print("hit")
body_enteredシグナルで呼び出される関数_testに引数が定義されていないから
>>592 どうも 解決しました
body_entered関数と同じだけ引数を設定しないとダメなんですね
ちょっとマニアックだけど Polymorphism とか Function overloading とかその辺のソフトウェア工学の概念を学ぶと理解が深まるかもね GDScriptでどう実装されてるかは知らんけども
上で文字化けすると書き込んだ者ですが この前途中まで作ったファイルをロードしたら文字化けで結局使えませんでした… シェーダーキャッシュフォルダや設定フォルダを消して再起動もしましたがやはり駄目 初めて起動した際は絶対文字化けしないので 最初の1回目の起動で最後までゲームを作り終えればいけるのかもわからんけど そんなの現実的じゃなさすぎるのでgodot使うのは諦めます… 簡単にアクションゲームが作れそうでめっちゃ楽しみにしてて素材も頑張って作り終わったあとだったからショックがでかい
かなり限定的な環境問題っぽくて対策提示できなくてスマンかった 将来新しい環境を手に入れた時に覚えていたらまた挑戦してくれ
GameMakerとか無料で使えたっけか? せっかくだからゲーム作ってほしいよな
そこまでやってるならいっそ新しいPC買うのも手だな
godotでrpgツクールみたいなjrpgってどうなんですかね?
想像だとイベントの管理はあっちのほうが楽なのかなと考えてます。
>>594 どうも
単純に継承みたいなもんだと考えておきます
ちょうど今自己学習でJRPGシステム考察してるが 全部自分で組めるなら自分やった方が楽だと思うし他にも応用できる ツクールは言語習得時間の省略はできるが使い方を覚える必要はあるが他へのつぶしが効かない ツクールの文法から離れなければ楽だけど独創性を出そうと思ったら苦労するイメージ ツクールは参考用に買った奴のチュートリアルの途中までしかやってない時点での感想
全然情報拾ってないので根拠は薄いがツクールよりBakinの方が自由度は高そうと思ってる
元々絵描きでして今までは自作素材でウディタでADVとかRPG作って ふりーむに投稿したり自サイトで配布とかしてたんだけど 前々からアクションが作ってみたくて今回godotに手出したんだ 一応来年以降PC買い替える予定だからその時godotが使えたら良いなと思ってます ゲーム作りは続けるけど今回の素材はgodot用に作ったものなのでもう使えないけど もしいつかgodotが使えるようになった時用に一応取っておこうと思います 長々お騒がせしてすいませんでした
絵を描けるのは羨ましい 自分がGodotで動かしているのはほぼ全てGobot君アイコンかデバッグのコリジョン表示 絵はずっと後の工程だな、そこまで行かないけどw
godotがわかりやすいから部品を集めて組み立てるのは難しくはない ゲーム作りで大変で面倒なのは素材制作なんだよな・・・ 延々背景作っててもう何か月もgodot起動してないわ
>>601 jrpgという型は決まってる感じですね
jrpg作るにあたって、どんなシステムを組む必要がありますか?
>>606 FC時代のDQの再現を目標として必要機能は
コマンド入力とメッセージ出力
フィールド画面とバトル画面
プレイヤー管理、イベント管理、敵管理
これらを連携動作させるゲーム管理
機能詳細を詰める話はGodot関係ないのでこんな所で
>>607 自分には無理そうなのでツクールにします
RPGのキモはバトルなので(これがないと他全てがあってもアドベンチャーゲームになる)この部分だけでも自作できないようだと厳しいね ゲームバランスを持ち込めるのもバトルがほぼ全てと言っていい
エンジンに基本にすら躓いてるレベルなので、rpgはストーリーに集中出来るほうでやります
コネクトの使い方なんですが、 カスタムシグナルでないと独自の引数をシグナルに渡すことは出来ない仕組みなんですか? extends Node2D var ball = load("res://test/ball.tscn") func _ready() -> void: var ins = ball.instantiate() ins.add_to_group("ball1") self.add_child(ins) ins.connect("body_entered",_test,[ins]) func _test(body,i): if i.is_in_group("ball1"): print(i)
>>611 知りませんけど、その仕様で何か問題が発生しているのですか?
>>612 func _test(body,i):
print(i)
としても出力されないので、シンプルに引数が渡されていないようです
生成したインスタンスが特定のグループにあることをチェックできれば、他の方法でもいいんですがありますか?
ins.connect("body_entered",_test.bind(ins)) bindでいけました 失礼しました
んむ、自分で気がつけてえらい! この調子でがんがれ
YouTubeにAIを使ってゲーム開発してる動画がいっぱい上がってるけど UnityやUE版ばっかりなので誰かゴドーでそれをやってみてほしい ゲームはもうAIで作れる時代なんだとけっこう感動してる
動画見てないけど、そりゃ作れるでしょとしか それともGodotで作るとなんか新しいことでもできるようになるって話なの? 今の生成AI関連のゲーム分野の最前線は、リアルタイムプロシージャル生成(レベルデザイン、地形、ダイアログなど)とかだと思ってるけど 学術分野まで含めるともっとすごいことやってるかもしれないな ただ単にゲーム作れるよりはそっちの方が興味ある
実際はモチベない時にコード打つのサボれる程度で 丸々出力するのはgithubに既にテンプレ置いてるような奴 文字通りコピペで作れるようなテトリスはあんま性能の参考にならない
おまじないの類を自分でいちいち書かなくて済む効果はあるかもしれないけどメカニクスのところに使うとバグが増えそうだから生成AIを頼るのはよほどの自動デバッグの天才以外はやめたほうがいいと思う
ネットでggりながら勉強してるけどマイナーエンジンをサポートしてくれるとは思えないです
ヴィジュアルスクリプトは正式に廃止されたんだっけ? エンジンの機能覚えるのが精一杯で、ゲームデザインとあk、レベルデザインとかそういうレベルにすらないわ だからウディタも並行してやってる
スクリプト系の言語やりたくてgodotさわってるからビジュアルスクリプトないのは構わないけど シェーダーもビジュアルシェーダよりGLSLの情報が優勢ぽいわぁ
あ、でもブループリントも結構ややこしくて、コードで書いたほうが楽じゃねとおもった記憶
UEブループリントは、あれを制御するためのスクリプト言語が必要だよね〜ってなってるのが好き
躓くこと多すぎて、プログラミングたのしーとならないのが辛い
そらそーよ 本来簡単なところから初めて天才以外はひとりじゃなんも完成するところまで作りきれんとなって諦める世界よ
プログラムに限らず技術とは知識経験の積み重ねなので ゲームエンジンで楽になったとは言え習得学習は欠かせない 個人的に挫折するのは最初に登る山が高すぎるからと思ってる 技術が足りてないのに最初の山が3DRPGだのACTだのってそりゃ遭難するわって思う ゲームが作りたいのだとしても最初はゲーム以前の基礎学習するべきかと
今の時代プログラミング無しでもある程度のゲーム作れるツールも揃ってるしコード書いてて楽しくないんだったらそっちも手 個人的には躓いてそれを解決するのも楽しさの一つだからそこに面白さを見い出せるか
素材全部用意できてるならいっそ頒布未定のゲームプレイ動画ということにして真面目なプログラミングをほぼオミットして世に公開してもいいと思うのよ 製作者本人が、よしんば完成させてもゲームとして面白いのかどうか判断つかないものは他人のプレイヤーからしたらとんでもないクソゲーかもしれないので、ただ見てるだけでいい動画形態で楽しんでもらう方が素直に評価しやすい 頭の中にあるゲームのダイジェストだとしても雰囲気としてゲームが動いてるようには見せかける技術力いるけどさ
>>634 それってunityとかgdevlopのことかな?
ウディタはやってるよ
ueは2dに向いてないからやってない
プログラミングで疲弊してしまう
プログラムで疲弊するのはプログラムに集中してるのが原因なところもあると思うけどね 絵や作曲、プログラム単体ならインターフェースと睨み合いながら作業できるけど 個人ゲーム制作の場合切り替えの負荷がかかるから紙上で全体の設計を書いてった方が良い ウディタやツクールが楽なのはそういうツールだからな面もある
余計むずいかもだけど、boltも無料ってことだし使ってみようかな ノードベースだと全体像が見やすいのかも
ツール探しのプロになる素質はありそうだな それに何の意味があるのかは知らないけど なんかの役にはたつだろう、例えばツール比較VTuberとか
ワイはベーマガ世代のおっさんだから新しいツールを覚えるのがキツかったりする そこを乗り越えればなんとかって感じ
ノーコード系は制御構造文を隠蔽して使い方に制限かけてGUIで作れます程度だから コンピュータを制御する基礎知識的には習得難度は大きく変わらないのよね 絵で覚えるか文で覚えるか程度の差で潰しが効かないのがネック UEも新しい開発言語としてVerseを打ち出してきてるし どうせ覚えるならノーコードで頑張るよりこっちのが良いんじゃと思う
とりあえずunityのヴィジュアルスクリプティングもやってみる コード見てるだけで疲れてくる
有志のつくってビジュアルスクリプティングとかもないんだっけ? あったとしても情報少なそうでつまづきそうだけどな
プログラムを覚えるのが苦手な人は Unityのほうがいいのかな
レベルデザインにすらたどり着けないからね 一旦unityにvsやってからまた戻りまする
そうだねunityの方があってると思うから今すぐ行ったほうがいいよ
困った時に答えが得やすい日本人コミュニティが大きく情報量が豊富なUnityがまず候補になるが プログラムの読み書きができる事は必須なのでUnityでチャレンジする前に初めてのC#の様な言語学習をやるのが先と思う
>>647 ひどい言い方しないで
>>644 4.2.2では動かないみたい
>>648 ビジュアルスクリプティングで楽になる部分ってないんでしょうか?
>>650 プログラムを作る上での基本が出来ていると想定して
タイプ量が減るがGUI操作とプロパティ設定でプログラミングとしては時間が掛かる様になる
プログラムを作る上での基本が出来ていない想定して
GUIで部品を選択するのでスクリプトならば事前に学習してなければ知らない機能でもそこにあれば使える
ただし部品がスクリプトで実装できる全ての機能を網羅しているとは限らない
自分の考えでは作った後のデバッグも考慮すると普通にコードで書いた方が良いとしかならない
ビジュアルスクリプティングでも頑張ればそこそこ動作する物は作れるだろうけど何をするにもコードの方が応用が効く
とりあえず週1プロジェクトで使ってみてから判断してみます。
>>651 コードだけだと流れがイメージ出来ないので、フロチャ的な効果を期待してますかね
家を作ろうと思った人がいた。 Googleで検索したところ、まずハンマーと釘が必要らしいことがわかった。 その人はゴミ捨て場の中からハンマーと釘を見つけてきた。 使ってみたが家は作れなかった。 そればかりか指に傷が増えるだけだった。 次にGPTに聞いたところ、凍ったバナナという新しいハンマーで家が作れることがわかった。 その人は冷凍庫から凍ったバナナを見つけてきた。 さっそく使ってみようとしたとき、近くを通りかかった人が言った。 「まずは基本となるハンマーの使い方と釘の打ち方を調べ、習得したらどうでしょうか?」 家を作ろうとしている人は言った。 「釘でハンマーを打とうとすると指が傷だらけになります。凍ったバナナで楽になる部分ってないんでしょうか?」 通りかかった人はわかるように丁寧にかみ砕いてもう一度同じアドバイスをした。 「わかりました。週一プロジェクトで使ってみてから判断します」 家を作ろうとした人は凍ったバナナをつかんでそう答えた。 つづく。 ―― 連続ドラマ小説「わなび」
>>649 4.2.2.stableで動作を確認した
インポート時にアセットルートを無視のチェックを外す必要があった
スプライトの座標を変えるだけのスクリプトを組んで動かしてみた
使える機能が一覧で出るが膨大な量なので事前に機能を知らないと目的の物が見つからないと思う
>>656 ありがと 動くね
godotとunity両方触ってみる
何年もあれ触ってみるこれ触ってみるで終わってるのおかしいと思う…
>>651 ビジュアルスクリプトで、実装されているものは動くという思想は危険だよ
UEを見てみりゃ分かるけど(スレタイ的にあってないのはすまない)、それを動かす為の知識が必要
結局は、制作の為の学習が必要なのは変わらない...
程度の差はあるけど
>>658 道具だからね
完成できればなんだっていい
それ長くても一週間くらいで見通しが出る人の言い方なんだけど 橋やビル作っててもそんなかからないよ
>>659 正式にリリースされている物は普通は正常動作する扱いでは?
調べてみたら使ってみたら違うという話なら前提は下調べしないし知識もない未経験者なので
ビジュアルスクリプトで配置できる物は使える前提で使うしかない
動かなかったら動かなかった時に考えれば良い事
>>644 のGodot OrchestratorはAndroidのライブラリまで含んでいるのにarmは含まれていなかった
試しにソースからビルドしてみたら動くには動いたが使用できるクラスがWindowsより少ない
環境毎で違うのかコンパイルオプションの指定が必要なのかまでは判らないがとりあえず報告
vsだとコード拾ってきてコピペが出来ないのがきついなぁ
>>658 英字の新聞をハサミで切ってノートにスクラップしてるのと同じだから
本人はそれで英語が出来た気になってるか英語の勉強だと思ってるらしい
でも何が書いてあるか分からないから何も作れない
あと100年やっても何もできないねこれは
vsやるならgodotとunityどっちがいいんだろ vs自体良くないという意見が多いのかなと思うけどさ
コピペしてやった気分に浸ってただけだから何も覚えてないし身に付かない 天才コピペおじさん
スルー対象には変わりないから顔文字でもコピペマンでもなんでもいいよ
やってるフリしてるだけだからな、適度な距離を置いて眺めるだけなら無害だよ ところで、自作の進捗ってこのスレに貼ってもいいの? だいぶ廃れた文化らしんだけど、Screenshot Saturday ってのやってみたいんだ
>>671 日々のゲーム製作活動記録を貼るスレ
とかでいいんじゃないかな
>>672 おお、こんなスレが! さんきゅ、そっちでやってみるわ!
アンチってのは有名だったりまあ色んな面がある人に付くんだよね お前は正直クソ質問乱発で場を荒らしてる側面しかない なのでこれらは別にアンチや個人叩きしたい訳ではなく、単に荒らしへの防衛反応と見るのが正しい 分かってくれるとありがたいが
別の上級者スレとも書いてないし、初歩的なことがクソ質問なのか? 嫌ならスルーしろ スルー出来ないやつが荒らしだ
>>663 続報
クラス差はスクリプトを新規作成する時に基底クラスを指定していないのが原因だったarmでも普通に動く
使い勝手を見るためにあれこれやってみたがよく出来ているがマニュアルが不整備すぎて大変
シグナルに接続する為のCallableを指定する方法を見つけるのに相当手間取った
やっぱわからんか、虚しいね 論点そこじゃないんだわ 周りと話が合わずぶつかり続けてきた人間が思い浮かぶよ 俺は一対一ならずっとスルーしてるけどお前はこのままなら今後も誰かに絡まれ続けることは想像できる
最低限必要な任意の努力義務すら出来ないポンコツに口を開く権利はない
出来もしない癖にゲームにかこつけて他人を利用してるだけで自分自身は何もしないって図々しいにも程がある そんなの出来なくて当り前なんだから無理してやるこっちゃない
Godot Orchestratorでキー入力でスプライトを上下左右に動かすところまで出来た どこまでやっても自分が理解しているコードを実現する図形を探す翻訳作業にしかならない コードは書けないがビジュアルスクリプトなら効率的に作れる人はもしかすると凄い人かも知れない
BPとかに慣れてる人用じゃないですかね。シェーダーもGLSLのほうが情報が圧倒的に多い UEのマテリアルエディタ使ってたから自分で書く時はビジュアルシェーダになるけど
シェーダーの方が構成要素が少ないので図描画に向いている気はしますね 自分はシェーダーには触れてないので最初にビジュアルシェーダーで覚えればそちらが主になる可能性はありそう
ビジュアルスクリプトは回りくどいけど 会話シーンなんかをつくるには便利だよ 流れが見やすいのも利点
会話はテーブルにしてループで回せば良いと考えていたけど 場面毎にシーンを用意して場面や会話を順に繋げた方が見やすいのは確かだね
>>682 折角だったのでビジュアルシェーダーを少し触ってみました
式を使えばコードによる計算も組み込めるようで使い勝手も良さそうです
今はロジック周りを詰めているのでシェーダーに触るのは先ですが覚えておきます
renderがvulkanだとwebで動かないんだね 危うく詰みかけたわ
新規プロジェクト作成時のレンダラー説明でForward+はデスクトップのみと書かれてるね 自分はスマホ環境を意識してレンダラーはモバイルにしている しかしレンダラーの違いに影響受ける様な凝ったことはしてないので違いは判らない
ゲーム開発エンジンで漫画ビューワみたいのを作りたいんだけど GODOTで作れる? ようはマンガ原稿(画像)を表示してスワイプでページをめくっていく感じ
そりゃ作れるだろ なんで作れないかもって思ったのかが不思議なくらいだわ
UIはなんでもできる、ただFILEIO辺りの制限で詰むんじゃね、そんな印象
>FILEIO辺りの制限で詰むんじゃね GODOTで漫画ビューワだけ作って 漫画(原稿)データは別ファイルで 1話ごとに読み込む感じだといけそうでしょうか
単に画像を読むだけのものなら探したら例が出てきたからこれベースに頑張ればいいんじゃね
https://2dgames.jp/godot-filedialog/ ありがとうございます! なんかイケそうな感じですね ちょっといろいろ調べてみます
漫画を読みながらゲームもできるアプリがあってもいいとは思うがマネタイズは難しそう
おう、青いドンパッチみたいなので盛り上がろうぜ! 英語圏のスレも毎日見てるけど、だいぶ楽しいよ、刺激になるのもいいぜ
特に語ることもないしな Dialogicというアセットを試したが高機能で使いやすかった ノベルゲー作るならこれでよさそう
3Dアンチみたいなのが常駐してるんで書き込みにくいです
みなさんは、Godotでは言語は何を使用してます?
アセットライブラリのやつって使ったら一個一個MITライセンスのコピペ載せないかんのです?
_____ |\ \ .\ | | ̄ ̄ ̄ ̄ ̄| | | Amazon | \.|_____|
>>700 そのアセットではコードを描く必要ありますか?
GODOTでノーコードでノベルゲームみたいのを作りたいのですが
>>710 最初から最後まで選択肢ありのお話を流す程度ならビジュアルツールだけで作れる
キャラクターの入退場や文字の出力に演出も付けれる
進行状況をツリー表示して開始シーンを選択とかしたいならGDScriptとの連携は必要になる
履歴機能はあるっぽいが使い方が判らなかった詳しくは確認してない
>>710 レスありがとうございます
興味あるのでちょっとイジってみます
GLSL?の入門みたいなのとgodotshaders見て練習してるけど そのレベルまで行くのに先は長そう
unityに比べるとgodotのシェーダーは書きやすい glslだから参考文献も多いし
godot使ってみようと思ったけどVSでC#はあんまりよくないのか・・・
C#のベテランでC#で書く方が開発効率が上がるならC# そうでないならGDScriptを覚えた方が良いかなと思う C#を覚えられる方ならGDScriptの学習コストは低く見積もれる
C#も一種のスクリプトみたいなもんだしね できないことはできない
まずC#がいいからやってみるぜってVSじゃなくてVScodeっての使うのがいいのか・・・ 始めるまで色々調べて時間かかりそうだ
C#でやりたいけど、GDScriptじゃないとできないこととか 効率が悪いことがあって躊躇する
プロジェクト内でC#とGDScriptは共存できるので両方使って構わない ただしC#とGDScript間の受け渡し変数は調整する必要がある
学習コストはかかってもネイティブのスクリプトを使うメリットの方が大きいと思いますがね
gdscriptのコードを問題なく読み替えできるならC#使ってもいいと思う 初心者なら素直にgdscriptにしとくべき
gdscriptで先行実装されてC#じゃまだ使えないみたいな差はないんかな
>>721 それは知ってるけど、C#だけでやりたいんよ
>>722 正直分かる、けどGodotのためだけに特殊言語覚えたくないんよ
Pythonに似ているなら、Pythonをそのまま使用して欲しかった
>>723 それが正解なのは理解しているけど、それでもC#使いたいんやね
初心者というか、Godotは初心者やけど言語は一通りできるんよ
多くないけどC#でゴリゴリやってる人もいるにはいるから 結局エンジンが合う合わないかだと思う
別にc#は否定してないよ 参考文献少ないから結局gdscriptを読み替えることになるよ
C#が100だとすればGDScriptの覚えることなんて10もないから好きにしなさい
UNITYメインならC# GODOTだけで生きてくならGDScriputだね
ゲームを作るなら結局C言語を覚えたほうがいいんですよね JavaScriptやPythonの選択肢もあるみたいですけど
PCの性能を限界まで使おうと思ったらC++なんじゃないかな、しらんけど スマホやiPhoneで作るならC++よりネイティブな言語の方が良いんじゃね? でも限界に挑戦できるのは上澄みだけだから パンピーは開発効率の良いツールと言語を選択すれば良いと思うよ
ワナビなやつほど道具にこだわるみたいなことわざなかったっけ、なんかそんな感じ
下手の道具調べ【へたのどうぐしらべ】 【解説】腕の悪い職人ほど、あれこれと文句を言って道具を選びたがるものだということ。 【同義語】下手の伊達道具。下手の道具選び。下手の道具立て。
ああ、それそれ、あとゴルフの下手な奴ほどクラブに文句言うみたいなのとか まあ一番手近なもので決めて、三か月くらいで一本ゲーム完成させてみそ それがコスパ・タイパ共に最強だよ
昔はアセンブリかBASICかさもなきゃCかC++かみたいなピーキーな選択肢しかなかったんだから、それに比べたら恵まれてるのでサイコロ振って使う言語決めて飛び込んでも死ぬことはない
言語の話とエンジンの話の区別付かずに話してる奴が混ざってるな APIが何なのか理解してから語れよ
25年前に工業高校でフォートランとアセンブラやらされたわ ゴミみたいな成績だったけどプログラミングの基礎はだいたい同じだから今になって役に立ってる気がする
ちょっとうらやましい 自分はアセンブラ書いた経験がないから今になってどうやって勉強しようか悩んでる
レトロゲーム機でもなければアセンブリ覚える必要はないと思いますが、CASL学べば四則演算はすぐマスターできますよ 掛け算は足し算シフトを繰り返すだけ、割り算は引き算シフトを繰り返すだけ とかいうやり方でゲームを作るのは大変ですけど、高度な命令がないCPUは概ね何をするにも似たようなもの 簡単な演算で面倒な処理を頑張るだけです それに比べたらC#もGDスクリプトもやりたいことがザクザク書ける神です
TASMだったかCのコード書くとアゼンブラに変換してくれるやつ Z80だけの知識で8086のアゼンブラ見よう見真似で最適化の真似事とかやってた
Switchのプチコン4の並列演算する命令がアセンブラによく似てる
以前godot+C#ではフル性能が出せない問題が ユーザー側から指摘されていたようなのですが 修正改善されたのでしょうか
このサブレとかの話かな、果たしてGodot/C#は最適化される予定があるんかな
GDScript performance vs C# performance (2mo ago)
https://www.reddit.com/r/godot/comments/1cgh6ag/gdscript_performance_vs_c_performance/ 1年前のGDQuestの動画とかだと
本当に性能要件が必要な場合はC++/GDExtentionでやるべきとか言ってるし
それが必要な規模のゲーム(GTAのような)作らないでしょってスタンスな気がする
最近のユーザーのコメントも見てると
GDScriptにstrict static typingをつけてくれってのよく見かける(これはオレもほしい)
まあ今ちょうど、開発チームがアンケートとってるみたいだし
気が向いたら要望出してみたらどう?
Godot Community Poll 2024
https://godotengine.org/article/godot-community-poll-2024/ Godotは開発陣がこうやって積極的にユーザーの意見を拾ってくれるから良い
GLSLさわったことなかったけどUEのマテリアルの感覚で 簡単なトゥーンシェーダとかポストエフェクトの ビィジュアルシェーダ化でけた
ガチ勢はC++で作るのか そこまでの作り込みをやるつもりなら他のエンジン選びそうな気もするけど…
C# vs GDScript は3.x系で逆転したらしい
全く寄せ付けないのがC++ ぶっちぎり
場合によっちゃ100倍の差が出るならキツかったら使うんじゃね? C#で10倍ってのもよく分からないんだが
GDScriptそんなに遅いのかpythonがベースだしなあ
件のスレだとGDScriptはJITだと言う人が多いけどGodotのGithubとか見ても
何か違うという話しか出てこないのでJITコンパイラではないらしい
https://tech.framesynthesis.co.jp/godot/#gdscript にはAOT/JITは使ってない&GithubでVMを使ってる事が書いてある事から恐らく昔のJavaのような
インタプリタ型なんじゃないかな〜 と思ってたらマニュアルにインタプリタ言語って書いてあった
ややパフォーマンスが劣るのは仕方ないかも知れないが、60fpsを大きく切るような事があったら
考えればいいかなって感じじゃないかな? 用途的にかなり稀なんじゃないのかな
>>750 Godotっていま4.2だけど何で今更2018年の話してるの?
調べて出てこなかったからソレにしただけで最新に近いベンチあるならむしろ出してくれるとありがたい GDとC#とC++の比較で宜しく頼む
>>750 すげー差だね
ただそれ、言語の差かな?
GDScriptは知らんけど、C#とC++でそこまでパフォーマンスの差は無いはず
初期のC#ならまだしも、最近のC#はネイティブとあまり差が無いほど最適化されてるぞ
ゲームエンジンでコード部分が遅くて問題になる事そんなないよね 遅くなりがちなものはたいてい関数化でカバーしてあるし
>>758 https://ja.wikipedia.org/wiki/Java Java初期のインタプリタ式で走行されるJavaプログラムの実行速度は遅かったが、
実行時コンパイラ技術と動的再コンパイル技術 (dynamic recompilation) の
導入によって実行速度問題はほぼ解決した。
だってさ 俺もJITかと思い込んでたよ
ある程度プログラミング経験ある人なら、言語はどれでもいけるでしょ だけどGotot自体がGDScriptに最適化されているので、それ以外だと面倒なことが多いからな
>>746 氏及びgodotスレの皆様
ありがとうございます
とても勉強になります
GDExtension C++ exampleやってみたけどGitのサンプルと齟齬が生じていて
まるでカルトクイズだったわ 動かすだけで何時間かかったんだか勘弁してくれ
一応メモ
https://github.com/godotengine/godot-cpp からReleasesのgodot-4.2.2.-stable LatestをDownload
Zip展開してBuilding the C++ bindingsは手順通り
Creating a simple pluginはzip展開したtestフォルダに入ってる中身で代用できるので何もしなくていい
testフォルダにcdしてscons platform=windowsしたらgodot-cpp-godot-4.2.2-stable\test\projectを
本体で開くだけ MSVCは自動的に見つけてくれるのでMinGWとかも要らなかった
MSVC入れてる方がレアケースなんだが無駄にデカいし
example通りにしたいならgodot-cpp-godot-4.2.2-stable\test\srcの中身を退避してexampleコピペで
gdexample.cpp/hとregister_types.cpp/hの4つ入れたらtestフォルダにcdしてSconsでdllが出来る
同様にprojectを開いて新規シーンにGDexampleを呼び出してtexure貼るだけで完成
手順が分かれば10分も掛からない 迷走しまくった俺の半日を返せw
8行目は間違い testフォルダでSconsしないとビルド出来ない
モルダー、あなた疲れているのよ。 ほあー、makeじゃないんだ、お疲れさん、ゆっくり寝てくれ
乙あり
適当なベンチを移植してみた結果GDScriptはdoubleがないので比較ができないと言う事態に。うーん
(勝手にfloatにされてしまうので負荷にすらなってないらしい?)
単純にforループで5億回くらい加算するだけだとC++は早すぎて0ms(測定不能?)でベンチにならないし
かといって複雑だと読めないしなぁ 困った・・・
バブルソートでいいんじゃね、N=10000とかでやれば あとはGDExtentionと.NET側をfloatにしちゃうとか 物理演算ライブラリとか作ってないんだし精度いらないでしょ
floatだと負荷にならないみたい 出来れば5〜10秒くらい掛かって欲しい
ソースコードはコピペなんでこれに何の意味があるのかはよく分からない
円周率の近似式(グレゴリー・ライプニッツ級数)じゃね コンパイラが最適化しちゃうからこの手の単純計算のループはほぼ意味ない計測になっちゃうと思う 実際のデバッグ画面でFPSの計測ができるレベルのベンチ作った方がいいと思うぞ 例えば、1億個のCharacterBody2Dインスタンスを重力で落下させるとかそういうの それをGDExtension/.NET/GDScriptで比較してみればいい
物理は物理で専用のエンジン使ってるとかだから比較する意味ないんじゃない?
うん、だから物理サーバー使わなければいいんじゃないかな
すげーな、ライプニッツの公式って書いてあった コンパイラが賢くて空ループとか消しちゃうとかは風の噂に聞いた事があるような気がする C#→GDScriptは出来るが流石にC++は忘れすぎててC++⇔C#が無理で困る FPSを計るのは何か引っかかるんで手詰まりで諦めたらそれでいくようにしてみるよ あとは出来る範囲で色々試してみる そしてGDでbyteコードが使えないのでまた1つ没になった
がんばーれー、よかったら結果もコミュニティで共有してぇー(懇願)
最適化が効かないやつなら2chからの伝統のトリップキー探索がよいのでは 単なるハッシュ総当りですが
何か探してたらコンパイラの最適化を邪魔するらしい謎の変態C++があったのでやってみた
http://verifiedby.me/adiary/0156 結果はご覧の有様だよ
1分くらい固まるから何かと思ったよorz どうしてこうなった
GDExtention C++はなんでか知らんけど_readyに入れてもいきなりエディタ起動と同時に動き出すので Runボタン押さなくても勝手に始まってしまう なのでエディタ起動の負荷が乗っかってるのでちゃんと測れない点は考慮してね キー入力で呼び出せるように出来ればいいんだけど全然やり方分かりません
>>776 かなり差がつきますね
やはりガチ勢はスクリプトだけだと限界が来るのか
>>778 逆にいざという時は最速クラスの切り札があると考えればよいのではないかと
前にどなたかが話してたけどね
Unityも以前はUnityScriptというJavaScriptもどきだったものが後からC#が登場して入れ替わったけど
処理が遅い所はC++でプラグイン作ったりするのは一緒みたいだし必要に応じて織り交ぜていったらいいと思うだよ
処理速度が必要な部分のみC++を使うで良いが 最初から必要であると判っているならC++ネイティブなエンジンも良いと思う 自分のやってる事ではそんな状況にはならないがその時は国産のSiv3Dを試したい
いいね! 25億回くらいループ回すときはGDExtensionでやろうっと
そこそこ簡単な処理だけど膨大な数をこなすのはゲームでは割とありがちなので、ピンポイント最適化すると気分良さそうですね
こういう人たちのおかげで自分でもエンジン快適に使えてるんだなあって いつもありがとね
GDscriptのfloatってgodot4.xでは64bit精度(C++での倍精度double相当)ではなかったですか? オンラインマニュアル読むと内部的には64bit精度みたいに読めるのですけれど(解釈間違い?) precisionオプション指定でgodot engineをリビルドする必要があるとか 32ビットARMやWebAssemblyやGPU関係で32ビット精度がデフォルトとか検索するほど新旧情報が錯綜してしまいます
いや間違いだった。doubleって書いてあった
https://docs.godotengine.org/ja/4.x/classes/class_float.html#class-float ただしデフォでは32bitでprecision=doubleオプションを有効にしたときdoubleになると書いてある
>>785 ありがとうございます
そうなんですよね
あちらこちらで書かれている内容が交錯していて
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html#float >float
>Stores real numbers, including decimals, using floating-point values. It is stored as a 64-bit value, equivalent to double in C++.
>Note: Currently, data structures such as Vector2, Vector3, and PackedFloat32Array store 32-bit single-precision float values.
godot engine docs のほうでは "stored as a 64-bit value, equivalent to double in C++" と書かれていたりしますので…😥
Vector2/3の各要素の方はリビルドしないと32bit精度なのは分かるのですが…
>>786 はい
GDscript(4.x)のfloat自体は内部64bit精度でも
ただVector2/3構造体をはじめ各種内部関数がC++のfloatがデフォルトになっていると
GDscriptのfloatが64bit精度でもgodot engineの各所で暗黙の型変換によって32bit精度に落とされてしまうので
precision=doubleあたりでリビルドしないとまともに使えないかもしれない感じでしょうか
型は誤解なく明確に指定するサフィックスを大原則にしてもらえたらな 文字数増やす奴は絶対コロ助は当然いるし、省略時オプションさえあればいいだろとか異論噴出するのは分かってるけど うっかり間違えた時のバグによる損失を無視できるほど省略記法にメリットあると思えなくてさ みんなよく管理できてるよね設計上手兄貴しかいないのかな
>>786 https://godotengine.org/article/emulating-double-precision-gpu-render-large-worlds/ Note: This change has already been merged into the engine, however it is only available in the “doubles” version of the engine, so to take advantage of it, you will still have to build the engine yourself using the compile flag precision=double (formerly float=64).
ってなってるから自分でオプションを付けてビルドしてくれって事みたいだよ
shaderもdoubleにしないと効果ないみたいなので最初からdoubleがデフォだと無駄が多い気がする
https://github.com/godotengine/godot/blob/master/doc/classes/float.xml 正しい情報が迷子で分かり辛過ぎるな
floatは64bit倍精度だが、メソッドやプロパティ/Vector2/3ではデフォが32bitで
precision=doubleを使うと全部64bitになるらしい事が書いてある
デフォは計算するとほぼ確実に32bitになるんじゃないのかな?
開発者やマニュアル書いてる人も大混乱してるとかそういうオチのような気がしないでも…
>>790 ありがとうございます
技術文書としてとても興味深いです
現実的には64bit精度非対応GPUが多いので(市場シェア的にもAppleやintel iGPUをサポートしないわけにもいかない)
なかなか難しいですね
64bit精度を32bit精度×2にするアイデアはなかなか目から鱗、言われてみるとなるほど確かに!とても勉強になりました
全てが64bit精度なら至ってシンプルなのですが現実的にはなかなかそうもいかない感じなのですね
CPUで値の保持だけfp64で演算がfp32なら性能低下は起きないけど(それでもキャスト分の実効性能が落ちるかも) 演算もfp64にすると6割くらいまで性能低下する場合がある(Intel14世代Coreなど) これは単純にゲームによく使われるfp32と違ってfp64はあまり活用されてないので演算器が削られているからで 単純に演算器が少ないのでピークパフォーマンスが下がる GPUの場合は更に顕著でクラスタに対してfp64が1〜2個くらいまで削られる事があるので GTX4080などでは理論性能値がfp32が48.74 TFLOPSなのに対しfp64は0.76 TFLOPSまで落ちる 実装が1:64なので1クラスタにfp32ユニットが64基に対してfp64ユニットが1基しかない 昨今のハードウエア事情とはかなり異なる悪手だと思う
活用されないから演算器が削られてるんじゃなく、 コスパ的に演算器増やす意味が薄いから演算器が少ない
VisualScript(Orchestrator)入れてみたけどGDExtentionてデリケートなんだな ちょっとでもバージョンが違うとaddon認識しなかったり
逆にfp16やfp8をSIMD的に使いたかったらどうなるのかな まあ規定に定義されてないやつゲームに使おうとするなバカって話ではあるけど
しらんけど、fp32ユニットでfp16を2つ束ねて出来たらスループット2倍みたいやつ??? コンシューマ向けGTXでは出来ないっぽい HPC向け一部の製品ではfp16がfp32の二倍になるので不思議な手品が使えるっぽいが詳細が不明 TensorCoreでもfp16演算できるのでそれとは別枠らしいけど詳細がry コロナ以降カンファレンスに出向いてアーキテクチャの記事書く記者がいなくなっちゃったんだよね だからここ4年くらいは全くアーキテクチャ解説がない状態が続いてる 何も分からない
大作作ろうとしちゃだめだよな ミニゲームですらきつい
自分も最初は壮大なRPGを構想していたけど 今は1クリックのバカゲーですら手を焼いてる 何度作っても納得いかずに直しの繰り返し 世間のバカゲーをバカにしてても いざ自分が作る番になるとこれが難しい
自分でやる作業は可能な限り削らないとね それでもモチベが尽きたら終わり
そんなに青汁が不味くて飲めないならゲロ吐きながら飲もうとしなくてよくない? ドMなの?
まあ素材はあってもシステムに載せるそのシステムはどうしても自前で調整しなくちゃならんからな どうぶつタワーみたいな物理演算ゲームひとつとっても納得行くまで作り込むとなれば簡単にはいかない
Androidアプリ版でゲーム作ってる人いますか てかスマホでゲームをまともに作れるの?
まともの定義によるができる、Godotの標準機能はPCと変わらず使える 画面周りの設定をAndroid用に調整する必要はある Androidの環境依存の機能がどれだけ使えるかの話になると変わってくる 自分は外部ストレージのパーミッションが取れなくて投げ出した
講座見ながら簡単な物なんとか作ったけど色々面倒で正直Godotで作るうまみは感じなかった
WEB系のフロントエンド技術に明るい人にはわかりやすいってコメントはたまに見かけるね まあこの辺の手になじむ感みたいなものは自分のスキルセット次第だよな
そうなんだ アプリ版はイマイチみたいね ゲーム開発がスマホの小さい画面で できるとは思えなかったから質問してみました
UnityとPythonやってたおかげでGodotEngineの習得はかなり楽だった 前知識あるなしも違ってくるのだろうね 自分が最近触った中ではGDScriptとGameMakerは相性が悪かった
>>810 GDScriptじゃなくてGDevelopの間違い
Java出身だけどC#特有のエラーがうざくてUnityは馴染まなかったな
>>809 すこし読み違えていたAndroid上でGodotを使っての開発ね
あれを使うにはマウスは必要だと思う
後画面が小さすぎるからスマホだと苦しいね
テレビに映すか大画面のタブレットにした方が捗ると思う
機械学習流行ってたからPythonかじってた人は多いんじゃない?自分はシーンとかノードなどGodot特有の用語に戸惑ったよ
ノードツリーのヒエラルキーは他のエンジンでも基本だから慣れだね シーンはGodot独特の言い回しだけどUnityにおけるプレファブと理解したら楽になった
Unityのシーンじゃなくてプレハブなんだよね。そこ混乱した
PackedSceneをpreload以外でロードしてからインスタンス化するのに少しハマった godotといえばsceneとnodeとばかりに注目してたけどResourceも重要だった
Resourceはドキュメントも読んでないんだよなぁ だから今んところ意識して使うところがよくわからん Save/Load(シリアライズ?)とか実装し始めたら出てくるんだよな、確か
>>818 俺も最初そう思ってたんだけどデータテーブル的な使い方もできるよって書いてた
アイテムやモンスターのバリエーションが増えてきたらCustomResource型を定義して.tresファイルで管理するのが楽そう
なるほどね 纏まったデータはRDBで管理しようと思っていたがそっちの方が軽そう
ふふ、調べたい、タスクリストが伸びていく、ふふふ(白目
UNITY使いだけど何らかの事情でUNITY使えなくなったらGODOTに移行すると決めてるよ
CustomResource試してみた setter経由で自動整形やエラーチェック、変更シグナルの発呼もできるからかなり便利だね アイテムを個別管理するのに値をインスペクタで変更できるけどファイル一つ一つ編集するのは手間だから エクスポータインポータか簡易編集ツールを用意するのが良いね
3Dだと大したことやってないのにエディターすごく重くなる 3Dは簡単なプロジェクトしか作れないと思ったほうがいいかも
そんな事で萎えるのはもともと大して作りたくない奴やで
海外配信者は3Dで2.5D、FPS、レース、ロボTPSなどそれぞれが普通に作ってるし 結局スペックの問題では?知らんけど
これ位できるなら十分でないの?個人でこれ以上の事ができる訳ないし
https://store.steampowered.com/app/1963610/Road_to_Vostok/ エディターが重いってのは開発PCが貧弱ってだけよね
>>827 はGODOTで作ったるの?
Unityで作ったと作者が公言してるけど
>>827 これが作れるなら自分の開発PCに問題がありそうです。お騒がせして申し訳ありません
UEでは開発出来てるのでスペックに問題は無いと思うのですが原因を調査してみます。重ね重ね申し訳ない
エディタの設定で解像度下げたりフレームレート制限してどうにかならんのかね
https://pastebin.com/fLLxwc5H 何で環境かかんのか知らんけど、dxdiagでxmlを吐かせるPowerShellがあったのでtxt出力させるように
ちょっと弄ってみたので実行して貼り付けさせりゃいんじゃね?
downloadするとdxdiag.ps1.txtってのが落ちてくるんで、.txtを消してPowerShellの拡張子.ps1にして
ファイル右クリック→PowerShellで実行 するとtxtエディタで開くのでコピペすれば必要な情報が貼り付けられる筈
勝手に文字コード弄られてutf8になってるので和文が文字化けしてしまっているがShift-jisで保存しなおせば直る
>>832 >>833
描画性能は問題ないです。
シーンにノードやシーンを配置するエディター操作自体が重くなる感じです
最近HDDが壊れて破損したプロジェクトを修復したりなど思い当たる節が多すぎる
>>835 >3Dは簡単なプロジェクトしか作れないと思ったほうがいいかも
と大げさに言うから突っ込まれているのにおま環に思い当たる節があるって何だ?
>>836 すいませんgodotで
>>827 みたいなのが作られてるの知らなかったんです
>>837 やり取りの流れが変なんだよ
動作がおかしいと思ったらまず自分に落ち度がないかチェックして
そこに問題がなければ外部に問題があると切り出すもんだ
GodotEngineが2D開発エンジンと思い込んでの発言なんだろうが質問を投げる前に少しは調べる位しろ
答えを貰ってから実は自分の環境に心当たりがありますってそりゃなんだ?
答える方だってノーコストじゃない
無駄な応答が増えれば増えるほど質問に答えてくれる人は減っていくぞ
ちなみに
>>831 はGodotEngineについて知りたい人の為に
>>1 に書いてある
エディター操作は重いけど実行速度は悪くない 海外の開発実績知らなければおま環に気付かないのそんなに不自然な事なんでしょうかね?
こんな重くちゃ作れないわー軽ければなあ残念だー とかで作らない理由がほしいだけ
https://forest.watch.impress.co.jp/docs/news/1124829.html そんなにギャーギャー喚くならこれでモニタリングしてスクリーンショット上げればよくない?
普通にPCスペック依存なだけだと思うけど
このスレただでさえ同じ質問を繰り返す荒らしまがいの奴がいた(もしくはまだ潜伏してる)せいでピリピリしてるのよね おかげで初歩的な質問したらそいつに間違えられないかこえーのなんのって
>>840 日本の開発実績なら知っているのか?
その場の思いつきで返答するからこじれるのだぞ
何か変な事言ったと思ったら
見落としが合ったかもしれないから持ち帰って調査しますと言っておけ
不勉強で申し訳ない海外のスマッシュヒットは何個か知ってるが日本で開発実績あるの? ソニックがあったと思ったがこれも海外製だったわ…
何で作られているかは公表されていなければ解析するしかなく よほどの事情通か研究者でなければ知れないでしょ
エロ同人ゲーだとgodot製いくつかあったなぁ appdataのroamingのgodotフォルダの中にゲーム名でログが残るからgodot製は分かりやすいよ
自分の手持ちだと5本がGodot製だった 知ろうと思えば知れるけど自分が持ってないのまで知れる?
itch.ioならGodotでフィルタリングできるな
国内だと今もUnity一強な気がする 多分コミュティ規模ウディタくらいだよ
Unityエンパイアにさよならバイバイ オレはこいつと旅に出る(ゴドチュー) なお今はタケシ戦くらいの模様
rpgメーカーとgodotで、jrpgを作る場合なんだけど、godotだとどのへんが大変? 例えばセリフの管理とか?
var, if-elif-else, for-in, while, [], {}, func(), return これらの単語を見て呼吸困難になったら、RPGMaker内科へ それ以外の方は、Godot内科へそのまま全速前進してください
挑戦したことあるけどrpgみたいに複雑な機能がいくつも絡み合うようなものはスパゲティー化して辛い ツールで済むものは素直にそっち使ったほうがいいと思ったよ 現存のツールで作れなくてかつ比較的シンプルなゲーム構成のもの作るのに使うのがちょうどいい しかしunityのコード見てると呼吸困難になる俺でもgodotは書いてて楽しいな パズルやってるような感覚になって解けた時が気持ちいい
固定エンカの一本道くらいならチャートも書きやすいやろ 自分がやりたいことが複雑すぎるならツクール使っても難しいで?
個人の感想だけど、 プレイヤー移動とオブジェクト(コリジョンやYソートなど)、タイルマップ、ダイアログ、インベントリ、戦闘システム、敵のAI、NPCの挙動などなど rpgは作るべき要素が色々あってエンジンで一から作るのは大変だった 俺はこれらのシステムを作ったあとシナリオのボリュームを増やす前に力尽きたよ 色々要素削ってシンプルなものにすりゃいけるだろうけど、それだとツクールでええやんって話になるのよな たぶんエンジンで作りたいって人はツクール以上のものが作りたいんだろうし
でも時間あるなら一応挑戦してみるのがオススメ 学びは多いし頓挫してツクールに切り替えるにしてもやってて損はないよ
ダイアログ、インベントリ、戦闘システムは他でも使うし是非とも組めるようになっておきたいね Godot/2D/JRPGにしても 機能1つあたり1週間と見て、最低限のJRPGなら3ヵ月以内にα版くらいにはできるじゃろ と思ってるんだけど、もしかして見通しアマイ?
godotにrpgツールはないよね? ウディタかunite使うしかないか
イッチてサイトにもGODOTのRPGアセットまだないみたいね GameMakerはその手のツールあった
>>824 だが何故か頻繁にディスクアクセスするのでプロジェクトファイルをHDDからSSDに変更したら改善
変なのに絡まれるのでもうこのスレには来ない
頻繁にファイルアクセスというのが気になったので調べてみたらこんなフォーラムがヒットした。nvidiaドライバの影響でメモリリーク?したような話
Windowsもnvidiaも使ってないからわからんけどメモリ見といたほうがいいんじゃないかな
https://forum.godotengine.org/t/godot-4-editor-needs-very-much-memory/43737 16GBは草 一応ProcessMonitor使えばレジストリからファイルアクセスまでアプリが何読んでるのか丸裸に出来る C#使うようになってからメモリリークに無頓着になったけどメモリリークはやだねえ
>>863 ないか、しかしgamemaker乗り換えも大変だし、reddintもほとんど人いないからな
普通にツクールか
ゲームエンジンでメモリリークはアカン なんのためのエンジンや ってエンジン以外の理由なのか
ユーザーから見えるのはアプリという氷山の一角で 水面下で様々なソフトウェアやドライバやOSが支えてるものだしな マルチプラットフォーム化で原因を特定するのもなかなか難しい
加えてゲームを作って配布したら多種多様な環境で実行される訳で原因の切り分けや特定はさらに困難になる 報告されて自分の環境で再現しなければ特定はおろか認知すら出来んしな 知らない出来ない分からないじゃユーザー/プレイヤー/利用者は許してくれない 俺の場合ゲームじゃなかったけど再現しない物をバグるバグる助けろ助けろずっと言われ続けるんだぜ? エスパーしながら2手/3手先読みして潰していって1カ月くらい格闘したわ 結構洒落にならんぞw
うおおおお! アクションゲームツクールの新作がgodotをベースにしたものだってよ!ノーコードもできるしGDスクリプトも使えるらしい アクツクMVの作り安さとgodotの機能性とでずっとどっちで作るか迷ってきた俺にとっては歓喜だよ 来年らしいからそれまでに素材だけ作ろう
ユーザーからあげられたバグは直した方がいいに決まってるけど おま環対応までとなると、個人開発者はどう対応するのが正解なんだろうな 最初から個別対応しないポリシーをかかげる? 事前にデモ版用意してふるいにかけておく? サポート用フォーラムで個別対応? パブリッシャーと契約して保守は全部やってもらうのもありか? なるべく角が立たない、カスハラ対策もできて、お金もかからない はあ、そういう魔法みたいな方法ないかな……
>>874 あっちはunityに乗っかっていながらunity側の機能は改造しないと殆ど使えず実質プラグインが殆どないスタンドアローンのようなものでコレジャナイ感あったけど
まだ詳細ははっきりと分からないけど説明読んだ感じこっちはアクツクぷらすgodotの機能やスクリプトが使えるっぽい(?)から今の所期待しかないw
いやー楽しみだ
水面や滝のシェーダーがまんまGodotのだなあってニヤニヤした まあいいツールになってくれるなら文句はないよ
新作ビジュアルスクリプトだけじゃなくGDSCRIPTも使えるみたいだしこれは当たりでしょ アクツクMVは買わなかったけど新作はたぶん買うわ
アクツクMVは買ったもののあまりの貧弱さに金どぶだったからなぁ
godotの2D関連の機能はすべて使えるようにするって言ってるね
switch書き出しも検討中か もしできるなら目玉になるしこれだけで入れる価値がある
基礎は大事だね もうパクるつもりでゲーム作っていく
>>881 パクリと咀嚼の違いを知らないと一生そこから抜け出せないよ
顔文字は勉強する事もチュートリアル/講座で学ぶことも嫌でプログラミングはずっとコピペだけで済ませて 矛盾が生じたら質問してコピペ済ませるような天文学級のガイジだから相手にするだけ時間の無駄 義務教育丸ごと受けてない人間社会の常識も良識も何もないクロコダイルダンディーだもんな 異次元過ぎて話が通じないってレベルじゃない 遂にredditも完全に相手にされなくなって来てんじゃん
また鬱陶しいのが絡んでくるな 有益な人とのみ絡みたい
redditからここに話題を持ってくるストーカー行動の方が時間の無駄じゃありませんか? 話が通じないなら黙って無視するしかないのではないですか?
オムツ替えてくれと泣き叫ぶ赤ん坊のように他人に依存してるだけで本人は何もしないし出来もしない そりゃまあ質問にかこつけた只の「荒らし」なんだから観察対象にはなるだろ どの面下げて寝言こいてんの?
俺も有益なレスだけ見たいから顔文字がコテハン付けてくれると嬉しいな 汚いキンタマ目の前に出されて無視しろ、嫌なら見るなと言われても困るんだよね
顔文字は利用価値があるかどうかでしか物事を計れない自己中なサイコパスだし
Xやその他SNSで個人的にお付き合いしたいなら止めはしないよ
荒らしだから注意喚起してるだけ
>>888 デスヨネー
大体さー「他人を利用する」魂胆がなかったら偽装して他人のフリして「騙し討ち」する必要なくね?
そいつのヲチすれじゃないんだからもうその話題はいらねーわw それよりAGM楽しみだな! 素材作りつつgodotでミニゲーム色々作ってスクリプト上達させるよ
相手にすんなと言いつつ4レスもしてる奴も俺にとっては荒らしと変わらないんだけど
自分でプログラムできない奴って他人を使って代筆させんのか スゲー図々しい奴だな
荒らしに敵意向けすぎてそいつ自身が荒らし化するのはよくある 誰も聞いてないのに勝手に他所から話持ち込んでくるし諦めろ
荒らし君を受け入れるなら最後の最後まで面倒見ればいいし拒否するなら徹底的に拒絶すればいいんじゃないの? どうしたいの一体?
どうしたいも何も各々が勝手に拒絶したり回答してんだから方針がまとまるはずもないよ
荒らし側はコテハン以外を全NG それ以外はコテハンだけ全NGにすれば住み分けできる 全てがまるっと解決する
あいつの目的はこうやってコミュニティ壊す事だからな うまく行ってるじゃん
存在しないものを壊すとは(哲学) モデレーターのいないコミュニティってどこもこんなもんだし、これでいいのよ 0点よりも上を期待すること自体が間違い
擁護もコテハンにするだけで一律NG出来るし二度と拝まなくて済む さよならバイバイ
こんなグダグダ続けるなら次スレはワッチョイ導入したら
かつてのゲーム製作雑談スレから追い出されたヲチガイジがここに居着いたのか ゲーム製作雑談スレでゲーム製作の雑談をしないように godotスレでもgodotの話はしない
顔文字と違って技術デモもベンチもやってる ソースコード乞食とはレベチ
開発もコーディングも出来ない無能って顔文字以外にいたの? 誰それ?
ところでgodotぬいぐるみは買ったか? ビデオ通話で話のネタになるから買っとけよ
godotマスコットあんまかわいくないから買わない
かわいくないってなんだよ これは野鳥対策で軒先とかにつるすやつだろ、ってじいちゃんが言ってた でも、1,256% Fundedは普通にしゅごい
だってかわいくしたらスイートベイビーが文句言ってくるし
スザンヌちゃんよりは全然かわいいと思うがUnityちゃんのビジュアルが強すぎるから仕方ないな
ゆるっとはじめるGodotのクラファン本が届いたぞー 素人だけどはじめます!
沼にようこそ 俺もまだ学ぶ事が多すぎで途方に暮れてるけどお互い頑張るべ
テストプレイ>リモート>選択中ノード2Dのインスペクターのポジションをマウスドラッグ、で無理やり座標変更できますが、ドラッグの感度が小さすぎてなかなか思うように移動できないです。例えばx座標移動しようとすると0.001ずつ増加、増減してるような感じでしょうか。感度変える設定場所とかってありますか?
聞いたことないですね 直接数値入力、マウスドラッグで微調整するっていうフローで代替できないことなのですか?
そうですか Unityの場合マウスドラッグでおおまかに移動、数値入力で微調整ってかんじでやってましたので 真逆の操作感になりますね まあ慣れるしかない感じですかね 回答ありがとうございます
インスペクタのドラッグstep値が気になってgithubでソースコードをチラチラ見てみたけど全くわからんmain関数の場所すら見つけられなかった まずはビルドツールのSConsの予習が必要か でかいアプリケーションのソースリーディングてコツがわからなくていつも諦めちゃう
godotの最新verの4.2と古いverの4.0って出来る事とか結構内容違いますかね? 最新の4.2だとバグって使えなくて古い4.0だとバグらなくて使えるっぽいので もしそんなに4.2と4.0で出来る事違わないのであれば4.0使っていこうかなと思ってるんだけども
何がバグってるのか知らないけどもっと最新の4.3β3使ってみたら?
rpgツクールなしでrpgであっても、キャラのパラメータとかほとんどないrpgならいける?
4.2でバグってなんだろう気づかずに使ってるわ 扱いきれてないというのが正確かもだけど
>>926 機能の少ないRPGはRPGツクールでその機能を呼び出さなければいいだけなんだけど。
どんな規模のRGPかしらないけど ツクールで機能を呼び出さない方法を調べるよりGODOTで自作したほうが早いかもしれんよ
924です 最新の4.3でもバグるんだなんか文字がぐちゃぐちゃってなってて全く読めない感じ だから古いのDLしてみたら普通に起動できたんで 4.2と4.0でそんなに変わらない感じかな? 3Dとか使う予定なくてノベルゲーなんで立ち絵のアニメーションとか出来たりできればいいんだが
>>930 少し前のおま環の人だっけ?
とりあえず動くバージョンでサンプル動かしたほうがいいと思うよ
他のグラフィック関連のバグを抱えているかもしれないし
>>929 そうだね
先週からツクールとGodotのどっちでやればって悩んでたみたいだけど本当に作りたいものが見えてるならとっとと手をつければいいだけだよね
もう相手するのやめるわ
個人レベルの趣味でゲーム作るだけならgodotが軽そうでよさそうと思ったが 将来的に仕事につなげるつもりならunityの方がいいのかねぇ ここの住人は、godotを仕事絡みで使ってる人はナッシング?
誰もいないからブルーオーシャンだぞ 自分で仕事作りゃいい 人の下で働くならunityだろうけどね
仕事でgodotを使うメリットがないからなぁ ゲームじゃないスマホアプリ作成がコスト安くて仕事にできるかもしれない 他がどれくらいコスト掛かるか知らないけど
個人製作の2dゲーム→godot チーム制作・3d→unity みたいなところはある。 ちなみに英語できるならgodotの公式discordとかで仕事の募集はかかってるよ
godotってビルドしてもスクリプトが平文のまま丸見え steamで配布されてるゲームでもソースが丸見えのものがある みたいな記事を以前見たんだけど今でもそうなの?
コードはバイナリに変換されるから丸見えではないはず 一応暗号化オプションもあるし
>>928 そりゃそうだけど、ツクール使わず作れるならええなと思う
お試しするには結構高いし
>>929 まあ、戦闘とかレベルとかは興味がない
戦わないrpgみたいな
>戦わないrpg なるほど世界を救うのにはもう飽きたわけか
>>940 だって個人が制作したrpgでレベル上げなんてしたくないだろう
有名作品ならともかく
>>943 有名作品でもレベル上げなんてやりたくないよ
ストーリーメインのほぼ一本道ならと思ってね ウディタは挫折した
Unity:(小学生△中学生以上◎と言われる)対象年齢はないがあるとすれば13歳以上 Godot:同上 ツクール:対象年齢6歳以上 ツクールすら挫折するなら知的水準は3〜6歳児相当
逆コンパイルの話してると思うんだけど難読化しないと駄目じゃね C#版はネイティブAOTとやらがUnityのil2cpp相当らしいが組み込みじゃないっぽいな なおかつソースも難読化しないと普通にどうにかされそう ぶっちゃけそこ気にしたら何もかも一からc++で作らなきゃいけなくなるのでは
簡単なツクールはRPGツクールくらいでアクションツクールはもう少し難易度高い
この端末ではスレッドを立てられません クッキー消しても無理だった
Godotで作るつもりがないなら出てってほしいね ネットでいくらでも調べられるのに
小学生にはゲームエンジンは無理だから中学生になってからの方がいんじゃね?
ブロック(ノード?)ごとに色がついててかわいいからでしょ
>>959 ビジュアルスクリプトは4.0で削除された
普通にGDscriptで組んだほうが分かりやすかったから
有償でプログラミング代行して貰えばいんじゃね 10〜20万くらい包めば喜んでやるだろ
>>962 スレ違いになるけど次期アクツクがGodotのビジュアルスクリプト担当みたいな
立ち位置になってくれると使えるかもね
Godot形式で吐き出してくれればありがたいけど
プログラムなしの紙芝居でいいならHTMLやパワポでいいじゃない
世の中にはExcelでスーパーマリオ作るやつもいるのになあ
パラパラ漫画のようにめくるだけ5000ページくらい
>>967 ワークシート関数で作ってるから頭おかしい
初心者ですが、 ゴドーはノードを繋げるだけでゲームは作れますか?
質問です 関数の型を指定したいのですが、例えばrigidbody2dがルートにあるシーンのインスタンスを返す関数の型は、rigidbody2dになるんでしょうか? しかし、インスタンスはnode型だったと思います。 どちらでもエラーにはなりません。
3まではノード組んでノーコードでも出来たけどバージョン4からなくなった でもアドオンで追加できる ただし情報が少ないから難しい
レスありがとうございます ノードだけでゲームを作るのは ちょっと難しいようですね 機能がオプション扱いというのは 何かあるのでしょうか
GDScriptの方が使いやすいからメインで開発するのを辞めたってだけ 無料だから言語使わない人達を呼び込む理由も薄いしね
GDscriptは覚えやすい部類なので初心者でも思い切って挑戦してほしい気もする
GDscriptとっつきやすいよね 慣れるとビジュアルスクリプトよりもやりやすい
もしくは上にもあるけどACTION GAME MAKERがビジュアルスクリプト機能をウリにしてるからそれに期待するかだね 個人的にはデータベース機能に期待してる
GDって要はGodot版Pythonだから正直あんまだろ せっかくC#対応したんだし今から始めるならそっちで覚え始めたほうがよくね
アクツクMVにもデータベース追加されてたけど二次元配列みたいなやつだったし使い所よく分からなかった でもみんなが期待してるのってRPGツクールにあるようなデータベースなのかな? もしそうなら早めに開発に伝えたほうがいいと思うんよね
下手なVisual Scriptingは普通にコーディングするのとコスト変わらんからな 余計な操作が増える分コストが重いまである BluePrintがいい例
>>981 リソースを表にしてくれるだけでもだいぶ違うと思う
プチコンBASICから始めたほうが良さそうな人もいる気がする
仕様が固まっててドキュメントもユーザーアプリも一通り揃ってるからプログラムの概念自体を学ぶにはかなり良いと思う ただハードウェア性能固定ゆえに素材とかが自由自在とはいかないことだけ最大の制約。 やはりこれみたいなPC向け本格開発環境とは規模感が違う。 言語の違いとかは気にしたら負け
コードの大きな流れを視覚的に整理する方法ってありますか? orchestrator使うか、スクリプトを複数に分けて、それぞれを別のノードにアタッチするとか?
紙には書いてます ただ、godot上で出来る方法あればと思って
ソフトウェアの概念設計は普通はそれ専用の作図ソフトを使ってやることが多い 理由としてIDEにそこまで機能載せてらんねーよってのとチーム共有する諸々の都合 あと単純にホワイトボード(個人制作なら紙)最強というのはある UML図とか作図にリソース割いてきっちりやるより手でザクザク書いてつなげて検討する方が脳内の思考スピードに追いつきやすいから時間無駄にしなくていいと思うよ
細かい部分までフローチャートにしようとは思わないですが、大きな流れだけgodot上で視覚化出来ないですかね? ステートマシン的な感じで ノードの階層構造利用するとかで
ぜってー誰も使わねー そういうニッチなのは自作するもんじゃね
PUMLもやりゃ分かるが視覚化に幻想を抱きすぎなんだよなー
人間が意訳して加工しない限りこの程度の意味不明な図が出来るだけで終わる
いったん完成してテストデバッグの時にはそのステートマシン視覚化はたぶんなんの役にも立たない代物になってると思うんだよね… なにしろソフトウェアのほぼ最上流工程だからさ
厳しい事を言えば視覚化 だけ で全部を解決しようと本気で考えてる輩は 現在そんな魔法は存在しないので、ゲームプログラミングの適正は ほぼゼロ なので今すぐパソコンを窓から投げ捨てて諦めたほうがいい それでもゲームを作りたいならアナログゲームでも作ってれば?あれだって大変だけどな
このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 159日 5時間 4分 14秒
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
read.cgi ver 07.7.23 2024/12/25 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250515090134caこのスレへの固定リンク: http://5chb.net/r/gamedev/1708131114/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「【軽量】godot engine【無料】 part3 YouTube動画>13本 ->画像>14枚 」 を見た人も見ています:・ドラえもんギガゾンビの逆襲2をつくるスレ ・ぶつ森の様なネットゲーを作りたいのだが… ・ロックマン8をFC風にリメイク Part4 ・狂った。遊園地と雑談スレッド ・【Ruby/SDL他】Rubyでゲーム制作・総合スレッド ・ゲーム製作者が自由にアンケートをとれるスレ ・C言語×ダンジョン×学園なゲームを創りたいスレ ・【ワナビ歓迎】ゲーム開発者未満の雑談スレ8 ・オヴェルスの翼が最高です ・今、中二でゲームを作りたいのですが ・RPGツクールMZ_26作目 ・【君が代】荒川静香をネタにゲーム製作【金メダル】 ・【おっぱい】エログラミング Ver.0【まん○】 ・アクションゲームツクールMV 5作目 ・オンドゥルのゲームをツクルンデスカ!! ・ゲ制作に使うプログラミング言語について語るスレ ・ワールドネバーランドみたいなゲーム ・RPGツクールMZ_29作目 ・ゲーム製作 雑談スレ【part7】 ・ゲーム製作 雑談スレ【part3】 ・MXスレがSRCを作るスレ ・シューティングツクールXPを待ち続けるスレ Part7 ・【XBOX360】XboxLIVEインディーズゲーム Part1 in製 ・1が年始までにラノベ+RPGを造るスレ ・RPGツクールで2ちゃんRPG作ろうってスレ ・phpで多人数型ウェブゲームを作ろうと思います。 ・正直、コミックメーカーって、どうよ? ・特定班に挑戦 ・こんなゲームを作ってくれ。 ・おっさんがゲームを作るまで ・ゆめにっきっぽいゲームを作るスレ 15部屋目 ・ゲーム作りたいが今はマダマダ未熟で無理な奴の誓い ・SRPG Studio 17章 ・ゲーム制作でのダメポ ・完成しないんだし基本システムを作ることが目標スレ ・RPG Maker Unite 総合スレ_03 ・あなたがたは週末までにゲームを作りましょう。死 ・四次元ゲーム作らないか?? 2次元目 ・Clickteam Fusion/Multimedia Fusion 17 ・【3Dゲームエンジン】Unity総合スレッド45 ・MOD型売春経営エロゲをみんなで作ろう ・ゲームに安心して使えるフォント探せ 2!(`ω´) ・コロッケ! バン王の危機を救え ・P/ECE予約してきました^^ ・みんなのゲーム製作あるある ・釣り先生 ・【ウディタ】WOLF RPGエディター 其の69 ・【SOF2】新・デモバスターを作るスレ【DEMO】 ・自由度の高いRPG作る ・工業高校での研究について ・【ゲームエンジン】Unityなんでも質問スレpart11 ・RPGツクールMZ_28作目 ・【3Dゲームエンジン】Unity総合スレッド44 ・RPGツクールMZ_25作目 ・【初心者】ベッキーと一緒にゲーム制作スレ【歓迎】 ・RPGのストーリーを作ってくれ、参考にしたい ・ゲームを作ってみたいんだが ・【初心者】スレを立てる前にココで質問を【Part27】 ・皆安価でゲーム作ろうぜwwwww ・【アイデア命#】配布型CGIゲームをつくろう ・こんなゲーム作ろうと思ってるんだけど。 ・サルでもできるスロゲー開発 ・RPGツクールMZ_18作目 ・ニィト・無色:フリィタァがゲーム制作するスレ