-
ゲ製作技術
-
【軽量】godot engine - part2
- コメントを投稿する
-
>>1=shibainuisno1
【shibainuisno1】
本名:サトウアツシ
5ch・Yahoo知恵袋・海外のRedditにまで出没し毎日多量の質問を作り各所で投稿してる人物
Blender関連スレではBGE君、Unityスレではレベルデザイン君と呼ばれています
特徴
・質問を連投する(回答がつかないうちにまた次の質問)
・回答に更に質問を重ねて話を伸ばす
・回答が気に入れば礼を言うが、他は完全スルー
・回答をもらってもそれは違う、面倒など文句を言う
・人それぞれだろうとしか答えようがない質問
・1〜2行の情報が足りない質問でエスパーを強いる
・スレに無関係の質問や独り言
・周期的に似たような質問を繰り返す
・5ch出没スレッド
Blender 初心者質問スレッド / ZBrush質問・雑談スレ / 3DCG作ってうpして楽しむスレ
Unity総合スレッド / Unreal Engine 4 / Godot Engine / WOLF RPGエディター / GIMP / krita
・Yahoo知恵袋
https://chiebukuro.y...hp?writer=1013023941
・Reddit
https://www.reddit.c.../user/shibainuisno1/
知恵袋の異常な量の質問を見ればわかりますが質問すること自体がライフワーク
何年も同じような質問を繰り返し各所で怒られているのにやめようとしません
彼の目的は質問して何かを知りたいわけではなく「レスが欲しい」だけです
丁寧に答えてもまた似たような同じ質問を繰り返します
相手をするだけ無駄なので透明NGして完全スルーに徹してください -
棋譜20万局をDBに登録するのにほぼ一日かかっちまった。
もうちょっとなんとかならんか。 -
すいません、誤爆しました。
-
こんな神ツールがあったとは神ゲー必至じゃないか
-
godot4.0はまだですか(´・ω・`)
-
4はVulkanと最近のレンダリングをサポート
OpenGLのサポートは4.1 -
Unityを使わずgodot使うメリットってなんだろう…
-
sonic colorsリマスターで使われるくらいだし何かしらメリットあるんじゃない
素人目線ではインストールサイズが100MB未満と圧倒的に小さい点、
開発環境は多少機能は足りないもののかなり揃ってて動作も軽い点
上記はメリットだと思う -
オープンだからいくら稼いでもタダ(重要)
言語の柔軟性が高い!
とかもかな -
どっちもc#使えてその上godotにはc++があるんだから皆に好かれてもいいのになあ
日本語情報の多さはUnityの圧勝だけど -
Linuxでまともに動く稀有なエンジンでもある
-
GMSがサブスクになっちゃったのでこっちに本格的に移行しようと思う
日本語でも英語でも参考になりそうな良さげなサイトや情報あれば教えろ下さい -
animationを使い回す機能はある?unityのhumanoidみたいなやつ
-
godotつよつよの民はもう5chなんかにはいないんだろうか
-
過去スレ見る限り進捗スレにする流れが一瞬だけ起こり消えてそれ以降は教えて君荒らしに消費されて英語が読める人はredditやdiscordに移るから次スレはいらないとの結論になったらしい
-
プログラミングに触れたことのない超初心者は別エンジン
それ以外の初心者は公式の日本語チュートリアルをこなし自分のゲームを作る段になってから質問することが好ましく
週一でゲームを作る習慣をつけるgame a weekってものがあるからそれをやっていればかなり力がつくとのこと -
godot民を待ちながら
-
4.0で刷新されるらしいから
そのタイミングで日本語書籍がいろいろ出るといいな -
もう英語で調べるのに慣れちゃったよバトラッシュ…
-
アニメーションプレイヤーにリセット機能なるものが付くらしいけどどんな感じだろう
-
>>22
ログに説明がある
>This is used by the editor. If set to [code]true[/code], the scene will be saved with the effects of the reset animation applied
(as if it had been seeked to time 0), then reverted after saving.
>In other words, the saved scene file will contain the "default pose", as defined by the reset animation,
if any, with the editor keeping the values that the nodes had before saving.
つまり保存時にいつも初期状態にできる -
地味だけどいい機能
アニメーションツリー使うとどうなるか早く触りたい -
https://zenn.dev/sai...s_start_godot_engine
公式Documentの読み進め方がわからない素人でもHello Worldできる記事 -
ZENとかQITTAでGodotのトピックが徐々に増えてるのはありがたいね
公式ドキュメントでも難しく感じる初心者でもとっかかりができてきた
ZEN検索
https://zenn.dev/search?q=Godot
QITTA検索
https://qiita.com/se...ch?sort=&q=Godot
あと、有料だけどダウンロードの入門書も
https://booth.pm/ja/items/1569022 -
QittaじゃねえQiitaやった
Twitterでも実際に遊べる状態のゲームが増えてきてる気がするから
そのうちGodotの名を広めるようなヒット作も生まれるはず… -
使ってる人いるか怪しいけど2Dボーン機能をもっと充実させて欲しいのお
カットアップアニメやりたかったけど使いづらくてドットアニメに戻した -
unityから来ますた
vsでc#書けるのね -
今のところ一番のヒット作は Cruelty Squad か
-
お前のゲームでGodotの株を上げるんだよ
-
3.xでタイル使ってるとナビゲーション2Dで帰ってくるパスがイマイチだわ
他の人はAstarとか使ってるんかな -
3.4きちゃあああ
-
すごい更新量だな
4.0なんてどうなっちゃうんだ -
c#使えるって聞いて最近ちょっと使い方調べてる途中なんだけど、GDScriptとやらが結構有能そうでこっち覚えた方が全然良さそうね
-
めずらしくスレが大賑わいじゃねえか
-
キネマティックとリジッドの混合環境でのコリジョン沼った泣
-
簡体字の翻訳がほぼ終わってるスピードに驚き
中華傘下になったもっとメジャーなGMS2があるだろうに、完全なオープンソースとなると中国人はめっちゃ乗り気なのか -
それだけ人口が多いんだろうな
-
ビヘイビアツリーAIの実装わからん
-
ちょっと前にナビゲーションの話題が出てたんで貼っとく
4.0で2Dと3Dの両方でNavigationノードが一新されるとのこと
https://www.youtube..../watch?v=1c26NezEhmQ -
英語のフラッピーバードのチュートリアルで、
・ローカル変数名
・そのシーンで使ってるノードの名前
・メインシーンでインスタンス化してノードにした他のシーンの名前
チュートリアルが悪いのかどうかはわかりませんが、似た単語が連続して
どれがどれを呼び出してる単語か混乱して困ったんですけど、皆さんはgodot向けのうまく区別する記述法とかなんかやってますか? -
公式ドキュメントでパスカルケース、スネークケースの指南あるよー
ここら辺最初に決めてコード書かないと後々きついんよね
https://docs.godoten...ript_styleguide.html -
いわゆるアステロイドシューティングで勉強中ですが、自機の向きと発射した弾の向きを合わせることがなかなかできず、
1週間くらい悩んだ挙句、↓の超シンプルなコードをコピペしたらあっさりできました。
https://kidscancode....ipes/2d/2d_shooting/
しかし、他のチュートリアルやゲームサンプルではほとんどtransformは使われないようなのですが、
これはあんまり使うべきではないのでしょうか?
https://docs.godoten...d/2d_transforms.html
公式ドキュメント読んでもキャンバスを変形してるとかなんだかイマイチ分からないのですが・・・ -
たぶんキネマティックとか物理演算走らせてるキャラにtransform使うとおかしくなるからじゃない?
-
それキネマティックではなくリジッドボディじゃない?
リジッドボディは_integrate_force()の中でだけtranceformのプロパティ変更していいみたいな制約あった気がする
キネマティックでmove_and_slide使いながらpositionとか変更しても問題ないはず -
>>47
ありがとうございます、でもちょっとまだ自分には難解ですね・・・transformは変形の概念・・・?
公式ドキュメントはもうちょっと例文とかサンプルコード増やしてほしいです
物理演算のボディだとなんかtransformで不具合が出るみたいな英語の情報は確かにありました。(理解はできませんでしたが)
Godotはメソッドの単語が多すぎてどれがどう機能するのやら、思ってたより100倍習得が大変です・・・ -
同じようなチュートリ見ながらtop-down shooter作ってるから情報交換してこう
俺はダラダラやってるから時間かかってるけど要点抑えればすぐ覚えられるはず -
基礎的な質問で申し訳ないけれど
サンプルでこういう変数定義があるんだけど
そのまま使うわけでもないでかい数値を最初に入れるのはどういう意味なんです?
有効桁数かなにか
var shoot_time = 1e20 -
人にプレイしてもらいたい時
どこかちょうどいい公開先ある? -
ふりーむとか?
-
夢現とか?
-
数分で終わる程度のゲームなんだけど
ブラウザでプレイ可能ならよさそうね
thx -
完成させるコツありますかね?
-
4.0まだかなー
タイルエディタ早く使いたい -
デモゲーム、上下する足場にハマって脱出不可能になった…
デモなのにこんなバグあるのはどうなん? -
というかGodotにはプロモーション目的で作られた公式のデモゲームとか存在しないと思うが
-
失敗例のデモとして勉強になるじゃん
-
Godot Add-on Jamなるものが開催されているらしい
ゲームアイディアが泉のように湧き出てくる神アドオンきてくれ -
4.0 alphaキターーーーー
-
アルファ版うちの古いPC環境じゃ起動すらできなくて草…(;_;)
これって、将来的に互換とか対応されるんかな -
製作の息抜きに人柱になろうかな
帰ったら4.0試してみよ -
リジッドだのキネマティックだのが無くなってCharacterBodyに統一されるのか?
古いチュートリアルがますます役に立たなくなりそうで逆に困るな・・・ -
まぁ、正式リリースは早くても年内に間に合わせたいって感じみたいだし
それまでには情報がそこそこ集まってるんじゃないかな -
3.0だとリジッドボディにキネマティックモードとかあってややこしいししかもmove and slide使えないしで困ってたから個人的にはありがたい
キャラをリジッドノードで作るかキネマティックノードで作るか悩まなくて済む -
結構変わるな〜
-
個人的に不便に思ってる点のほとんどが改善されてた
4.0メインで開発しようかなー -
ゲーム完成させた人いるの?
-
英語のチュートリルで苦労してフラッピーバードを完成させたぞ
-
RIGIDBODYで統一してくれた方が参考書の通りになるのでやりやすい(らせん)
-
4.0のアルファ2もうリリースされてた
3.5はbeta出てるしそろそろ正式版出そう -
グラフィックカード古いから「VulkanもOpenGLも対応してないんで無理っす」て言われて4.0起動できない
俺はここまでのようだ -
RIGID BODY=力学で言う所の「剛体」な
その属性を持つアクタが物理エンジンの支配下にあることを暗示してるんだろうが、
カタカナにそのまま置き換えるとかマヌケな翻訳だなw -
質問良いでふか?(^^
Unityで言う所の
PeniScript a = GameObject.Find("You_Penis").GetComponent<PeniScript>();
if(a.aaa=="bokkichin")
{
}
みたいな別のゲームオブジェクト(GEではノード?)のスクリプト取得してそのスクリプトの変数をifるのに使うのはどうやればいいでふか?(^^
ググり方が悪いのかググっても出てきまふぇんでひた(^^ -
var a = find_node("hoge")
if a.aaa == "fuga":
~ -
今度もそのキモい喋り方だったら無視するからね^^
-
優しすぎるな
-
奴は四天王の中でも情弱
-
2ちゃん黎明期みてえな御仁だったなあ
-
フォーラムで同じ話があったから一応対応予定があるのは知ってたけど
思ったより早い実装になりそうで、ちょっと安心した -
Godot4.0でOpenGL ES3実装することにしたらしい
https://twitter.com/.../1496391791867797508
https://twitter.com/5chan_nel (5ch newer account) -
そもそもド素人すぎてVulkanとOpneGLでどう違うのかそもそも何が違うかもよく分かってない…
とりあえず俺の雑魚PCも駄目だったのは確かめた -
軽くて2Dに強いってのが売りだけに、低スペ環境の味方かと思ってたけど
方針としては3Dの方をメインに置きたいのかな -
vulkanはよりリッチな体験をさせるためのやつだから3Dではこっち使って
2Dで幅広いユーザをサポートするなら上のレスにもあるようにOpenGLを使うことになるね
ただvulkanサポート対象外のCPUオンボなんて化石おじさんすぎるからな
早くこの世から消えてほしいものだ… -
steamのグラボシェア率とか見てもユーザー側のプレイ環境はGTX1060/1660くらいは期待していいね
一般的なプレイ環境よりもしょぼいPCで開発してるならそろそろ買い替え時期よ -
Vulkan抜いても他の部分もフルモデルチェンジに近い刷新で
生産性が段違いだからGLES3でリリース前倒しにならんかな
3.xのタイルエディタと早くおさらばさせてくれ -
デバッグする度に出力ウィンドウが開いて邪魔なんだけどどうしたらいいですか
-
godot上でテクスチャ貼り付けることできないんだっけ?
uv情報がないからか
プロシージャルみたいなやつで、uvグリッド的なもんを表示させたいよ(´・ω・`)、、、
https://www.unrealen...ct/customizable-grid
こういう感じの -
$hp.text = str(HP) みたいなことやろうとしてなぜかヌルがどうたらのエラーで糞ほどイラついて切れてたんでふけど(^^
$がunityで言うtransform.Find()に該当するのか、スクリプトがついてるゲームオブジェクト(GodotではNode?)を基準にしてたんでふね(^^
GameScene>Player
>hp (←これが弄りたいLabel)
こんな感じで自分に平行して存在するTextの文字列にPlayerから干渉したい場合(^^
$"../hp".text = str(HP)
こんな風に書かないといけまふぇんでひた(^^
ボッキング!(^^ -
ゴドゥ使うメリットってあったっけ
unity行こうかな -
最近、コード組むのが難しいって人がUEのブループリントでゲーム作ったって記事を見て
自分もミニゲームをGodotのビジュアルスクリプトで作ってみたけど思ったより便利で驚いた -
unityは公式の機能としてはないんだっけか
unrealは重 -
やっぱgodot分かりやすいわ
unityむず、、、
リファレンスもわかりづらくないか -
2Dドットゲー作ってる身としてはUnityは単位がメートルだから違和感すごかった
-
2d向けとはいうよね
-
func readyとonreadyの違いを教えてくださらんか
-
onready var a = hoge
は以下のコードを簡略化した変数宣言ね
func _ready():
var a = hoge
_ready()って子ノードが全て準備できた後で実行される関数なんよ
だから、子ノードが保証されている必要があるときにonreadyを付けるって感じ
var sprite = $Sprite (エラーになるコード)
onready var sprite = $Sprite (正しいコード) -
それぐらいの事も自力で調べられないんじゃGodot使いこなすのは難しいと思うな
-
まあ同じだけど普通はonready使う
onready使わない場合グローバル変数を宣言した後_readyの中で値をセットする二度手間になるしね -
3dで躓く→2dで色々試行錯誤してみる
というアプローチって正しいんですかね?
問題を出来るだけシンプル化するために -
ゼルダチームがやってた
-
そうする
-
ちょっと3dのlook_atが分からんくて
-
godoにはboxcastingみたいなものはなくて、コリジョンのenterとかで検知する感じですかね?
-
godotで現在のフォルダを表す
./
って機能してます?
now_folderにアクセス元のスクリプトがあるとします
now_folder/child_folder/image.png
これはアクセス可能なんですが
./child_folder/image.png
これは機能しません -
godot relative pathで検索
-
検索方法はわかりますよ
英語の理解力がいまいちなだけで -
(漂う地雷臭)
-
こいつが>>2のshibainuisno1って奴か
-
「godotは3Dゲーム作りに使ってるよ」派が優勢に
https://twitter.com/.../1516493125178601477
https://twitter.com/5chan_nel (5ch newer account) -
結局はどちらも慣れれば一緒なんだろうけど、ゴドーって粘土こねながら形造ってゆく感じで弄ってゆけるのが良いですね。さあやろうってときに起動が早いのもメリット。
-
ui関係なんですけど、controlを基礎として作ってく感じですかね?
-
godotって自由すぎて
方法考えるの楽しい反面
面倒くさい -
>>121
unityよりプログラマーライクだしね -
>>120
うん -
最初に相当注意深くプロジェクトのフォルダ構造とかスクリプトの書き方とか決めとかないとどんどんきつくなるな
個々のキャラを、メインシーンにくっつけたスクリプトで動かしたりそのキャラにくっつけたスクリプトファイルで動かしたりしててよくわからなくなってきた
まあ別にgodotに限った話じゃないだろうけど、ほかのエンジン使ったことないんで -
みんなそれぞれの独自のやり方でやってるんだよね
正解がない -
企業ならフォルダ構造とか命名規則は最初に設計書を作るんだろうな
個人製作だから散らかってきたらその都度整理って感じでやってる -
作ってる人が違うから仕方ないが、公式サンプルも命名規則やフォルダ構造バラバラだからなあ
リファレンスには再利用しやすいようにシーンでフォルダまとめるのがおすすめとはあるが厳密に守ってるのを見たことないw -
https://www.peanuts-...breakout/breakout_4/
このチュートリアルの「ブロックの色を編集しやすくする」のあたりについてなんだけど
func set_color(color):
brick_color = color
if is_inside_tree():
get_node("Sprite").set_modulate(color)
このセッターの引数の(color)は何の名前でもいいわけだけど、これは宣言もしてない空の変数ですよね?
なぜエラーにならないのか、これが逆で color = brick_color だと色の変更が反映されなくなって駄目なのはどういうことかと混乱してます。
一応godotのセッターゲッターについてググったら、エディタ上でプロパティの変更を反映させる場合は
同様の書き方になる事は分かりましたが納得できません。
setgetと突然出てくる謎の変数についてヒントがありましたらご教示ください。 -
まずgdスクリプトの元になったPythonを少し囓ってきたほうがいいとは思うけど
>このセッターの引数の(color)は何の名前でもいいわけだけど、これは宣言もしてない空の変数ですよね?
ここが既に間違いで
>func set_color(color):
でcolorは定義されてる
varが無いやろがと言いたいのかもしれないけど関数名横の()内ではvarは省略して書く文法になってる
基本的な文法やイベント発火順序がわかってないように見える
文法をきちんと学習してから取りかかるか、
変更前後でデバッグで1行ずつ実行して関連する変数をウォッチしながら挙動を掴んだ方がいいよ -
>>129
えっ結構色々godotの初心者向け記事読んでましたけど、引数の変数は宣言省略できるとか初耳なんですが
初心者向けチュートリアルって言うならそういう部分の解説が欲しかった・・・
とりあえずpythonの記事探したらすぐ出てきました。
>2.変数や引数の宣言が不要
> Pythonでは変数や引数の宣言が不要です。正確には、変数に値を代入したときに変数の宣言が自動的に行われます。
>したがって、いきなり、print(c)とすると「NameError: name 'c' is not defined」cが定義されていないというエラーが発生します。
したがっての後からいきなりよくわかりません。(宣言と定義って違うの?)
どうにも今後苦労しそうなので、pythonのほうで基礎勉強し直してきます。
godot使いたいからgodotの事だけ調べればいいやってのがダメでした! ご教示ありがとうございました。 -
自分はpython+pyxelでミニゲームは作れるが、gdscriptというのはpythonでは見慣れない用語や妙な言い換えが多く思った以上に習得に難儀している
でも>>128はかなり初歩的な所で躓いている気がするので入門から学ぶのは良いと思う
「独学プログラマー」という本ならその質問の疑問は9割解決するし、ゲームエンジン全般で今後必要になるクラスとかインスタンス化の概念がわかっておすすめ -
GodotのスクリプトはGodotを効果的に使うことに特化して設計された言語
Pythonライクな文法なだけで、Pythonとは構造がぜんぜん違うからあまり参考しない方がいいかも -
言語それぞれに仕様があるからね
オブジェクト指向の基本だけ理解出来たらあとはGDScriptの勉強でおk -
>>128
tool scriptだけどLevel1実行時にも動いてるのでデバッガで中身見れる
https://i.imgur.com/QsOECYU.mp4
ブレークポイント仕掛けてデバッグ実行すれば変数ウォッチで中身が見れる
set_color(brick_color)で待機してるからローカル変数colorには
呼び出された時にはメンバ変数brick_colorの値が入る
そしてブレークポイントはbrick_color=colorに掛かってるから式の代入前に止まる
その時メンバ変数brick_colorには白が入っていて、ローカル変数colorには色がついてるのが見える
その後ステップ実行で次行に移ると色は式の通りに代入が行われる
どうやって動いてるのかデバッガ使わない奴には一生分からないと思う
何のために用意されたツールなのかよく考えて活用しないと宝の持ち腐れじゃないの? -
呼び出された時にはメンバ変数brick_colorの値が入る ×
呼び出された時にはメンバ変数brick_colorでコールバックがフックされた時の値が入る 〇 -
呼び出してるのは別のクラスだから
外部から呼び出されて値を引数に取って渡されているから
呼ばれた時にはまだ値をもらってないと言った方がいいのかな?
適切に理解してるか怪しいが、えらく説明がしづらい -
>>134
こんな機能あったんですね~
さすがにこれは初心者のレベルじゃないので知りませんでしたが、printとか使わずに変数の中身や実行の流れが見られるのはすごい便利ですね。
件のコードは一応なんとなく納得できるようにはなりました。
次に何か詰まったらデバッガも活用してみようかと思います。 -
頑張ってな
疑問に思っていたこともデバッグ実行すれば一瞬で氷解する筈なのでお試しあれ
func _process(_delta):
set_color(brick_color)
とか_ready()の下に付け足して常時呼び出すようにしておいて
デバッガーウインドウのcolorを見ながらF11押してれば分かるよ -
3.x、いまだにアップデート盛んやね
-
Oculus Quest Toolkit のサンプルを再生しようとすると、「initialize: No library set for this platform」というエラーが出てしまいます。回避方法ご存じでしょうか?
-
別スレ誤爆でGodotは軽いってみたけどそんなに軽いの?
-
エディターの立ち上がりは軽い
実効性能や重いシーンを作った場合はUnityやUEより重い -
黒いコマンドプロンプトみたいなやつなに?ログだよな?なんで黒いの?
-
君はGodotくんと仲良くなるにはまだ早いようだ、今はツクールとかが良いんじゃないかな?
-
カリカリプログラミングするのが、
苦じゃない。ではなく楽しい!って人に向いてるしな -
Labelで日本語文章の禁則処理やる方法あったら教えて
-
雑な質問する奴は>>2の教えて君と見なされて相手してもらえんぞ
-
>>146
普通に一つ関数作れば? -
デバッグ機能が優秀。Unityや他の言語に比べて細かい機能が不足してる感はあるけど
個人で簡単な2Dゲームを作る上では問題ないね
Rubyは使ったことあったけど軽量言語のダックタイピングの良さがわかったわ
軽量言語はオブジェクト指向を学ぶのに最適な気がする。使ってて楽しい
コード補間は優秀ではないんだけど別になくてもそこまで不便じゃないってのが実感できる
ただ癖のあるエラーやバグもあってまだ改善途中みたいな感じがする -
Dev snapshot: Godot 4.0 alpha 9
2 June 2022 -
ここのところ国内のチュートリアルが充実してきたお陰で理解が深まり、ついに自力でタイミングゲーやらアイテム拾いゲー作れるとこまで行った(恥ずかしいが3年かかった)
ルートから好きなノード取得したり、グローバル変数もどきを使うようになってからは割とすいすいだった
デバッグが優秀は同意 それにエラーの指摘が他のエンジンと比べて親切だと思う
BOOTHの本も今読み返すと基本をゆるく網羅してていい線いってると思う -
コード初心者なんでPython入門書で迂回しないと
公式ドキュメント読んでもさっぱりわからんかった
ようやく学んだ分手を動かした分どんどんできることが増えるようになってずっと楽しい。すげえ、楽しい
ここらへんのギャップが埋まれば日本でも結構普及するんじゃないかなあ -
最初は本やらブログから手本を写して、
「こうすれば出来る」ってのは分かるようになるんだけど、
「何でそうなる」のかはイマイチ分からなくて、
数こなして経験積んでやっと「なるほど」となる。
Godotはこの喜びが大きいような気がする。 -
・横に動いて弾撃つだけのキャラ
・上に動くだけの弾
・発射エフェクトのパーティクル
このシーンを作って動かすと、普通に表示はされている。
でもパーティクルが、EmittingがONだと発射位置で生成されてるのにワンショットだと一切表示されない。なんで?
Oneshot issueとか頑張って調べたけどどうにもならなくてムカついてきた
せめてスクリプトでうまくやらないとワンショットは表示できないのかどうかだけ教えて -
ゴドー4がリリースしたら移行する予定でずっと待ってるけどなかなか出ないね。
アルファでも問題ないなら、早々に移行したい -
>154
OneShotでも関係なく emitting = true ででるはずだけど…
インスペクターのOneShotオンにチェック入れて、Emittingオンをクリックしてもビューポートに反応がないの? -
LifeTimeの設定が極端に小さい値になってて放出終了即削除されてるとか
透明なまま寿命で消されてるとか・・・
プロジェクト実行してシーンツリーのリモートタブに切替えて、パーティクルノードが意図通りに生成されてるかチェックしてみては? -
やっとできた!呼び出す側のfuncにemitting = true入れてパーティクルに
func _process(delta):
if emitting == false:
queue_free()
これ入れるだけ!簡単!!1日かかったわ!!!
>>156
挙動おかしいから設定ほぼデフォでいじくってたけど、なぜか2D画面にOneshotが反映されないとか
普通EmittingとOneshot同時にONにできないはずなのにできたりとか、原因不明の挙動ばっかりで困り果ててました。
emitting = true をヒントに色々検索しまくって突破できました。ありがとう -
原因不明の挙動というか
-
3.5の安定版もまだだと4.0ベータも当分先なんだろうな
-
早いとこ4に移行しちゃいたい
-
てす🙌
-
godot使う理由ってなに?
情報量は多いけどもunityのほうが少し難しいような気がする
機能がありすぎて難しく感じるのかも
個人開発でそこまでの機能を使いこなすことはないだろうし
godotでいいかな -
エンジンとしては間違いな環境も含めて個人開発者に恩恵が大きい
ただ、Unityより情報や機能が少ないってことは、それだけ自分の力で紐解く問題も多くなる(アセットが少ない問題とかも同じ)
完成までに総合して求められる基本能力はUnityよりも高いという認識だけあれば、Godotはとても便利だよ -
>>誤字:間違いな”く”
-
ここでいうのもなんだけどdiscordの日本語サーバーが盛んで良いよ
-
いや、質問あったらredditで聞きます
-
Juan Linietsky
@reduzio
So, target for Beta is hopefully next month, and stable by the end of the year or very early next.
による英語からの翻訳
したがって、ベータ版の目標は来月であり、年末または来年の非常に早い時期までに安定することを願っています。
午前2:19 · 2022年7月13日·Twitter Web App -
Godot 4.0 alpha 12
14 July 2022
https://godotengine....t-godot-4-0-alpha-12
来月ベータとかマジ? 永遠にアルファが続く気がする……。 -
>>176
ベータになると新機能の追加が禁止になりリリース前のバグ修正に入る -
3.5と4.0も結構進んだみたいだな
4.0のオーディオBPMサポートってもしかしてBGMの音程変えずに速さだけ変えられるようになる?やべえ期待 -
4.0に盛り込まれる機能かなり増えたよなあ
アルファ版が長かったのも納得 -
3.5来てるじゃん
-
3.2で開発してたけどなぜかエディタ閉じる時にフリーズする様になっちゃった
3.5にしたらフリーズしなかったけどなんか気持ち悪いなぁ -
3.5のノードにユニークネームを付けられるようになったの地味にありがてえ
グループとかで参照拾うの面倒くさかったんよ -
RPG的なアイテム一覧(文字のリスト)、店でのアイテムの任意の数の売り買いとか
基本的なデータリストの管理と操作の勉強ってどうすればいいんだ・・・
ジャンプアクションやパズルとか基本的なゲームの作り方はたくさんあるけど、そこから先の応用編的な道が見つけられなくて困ってる
Array shop system inventryとか色々検索してもサンプルゲーム見ても、結局先のことやってて難しく参考にできないし・・・
みんなコツコツ自力で工夫して覚えたの? -
元々は別の言語でゲームを作ってたから、その時にアルゴリズムとかは色々覚えた気がする
エンジン共通だけど、ゲームエンジンはやりたいことをサポートしてくれるだけだから
既にわかってることをGodotのやり方に置き換えて設計してるだけだよ -
>>185
がんばれお前の作ったゲーム待ってるで -
初めて来たけど前スレなんであんなに荒れてんだ?
2Dゲーム作りたくてUnityをと思ってたけどGodotがUnityより2D向きと聞いたので触ったらめっちゃしっくり来たよ
アニメーション周りも癖無くて扱いやすいしsignalとか言う機能のお陰で無思考でもそれなりに動く所まで持って行けて面白い -
ヴィジュアルスクリプト機能が削除されるらしいな
まあほとんどのユーザーに影響なさそうだけど -
ほぼGDscriptかC#でしょ
-
賢明やね
ほかの所に開発リソース振った方がいい -
個人的には使ってて好きだった部分もあるんだけどね
ただ、もっと改善してくれないと実用性は確かに低かったし
Godotのスクリプトが同様に簡単だから、要らないといえば確かにいらないって感じ -
Unityも結局C#だけになったし
複数言語サポートは開発大変になるだろな -
ツクールから移ってきたけどツクール再現難しいね
project Katみたいなの憧れるけどノードの構成とかどうなってんだろう、慣れればわかるのかな -
godot 4.0 alpha14でアニメーションツリーのトランジションが接続出来ないのはバグ?
ビュー上に矢印が表示されてないだけで繋がってるのか設定方法が3系と変わったのか… -
と思ったけどAnimationTreeノード作り直したり再起動しまくってたら接続出来た
-
2dゲー作るとして、ルートノードがただのNodeのときとNode2dのときとで何か違ったりするのかよくわからないな
-
Node2DはtransformプロパティやCanvasItemクラスから継承した視覚的なプロパティを持ってるんよ
メインシーンのルートノードとかなら視覚的なプロパティはまず不要だからただのNodeで問題ない -
Waiting for Godot...
-
ノードの違いよく分かってないまま使ってるんだけど
大雑把な解釈としては「そのノード単体がどんな機能を追加で持ってるか」で
徘徊する敵を構成してるノードの親元が可能であればControlやただのNodeで他に必要なものは子ノードとかで補っても問題ない
UIウィンドウを構成する基幹が2Dノードでも同様
みたいに思ってるんだけど合ってる? -
使い方としてはそれでいいと思うけど
Godotのノードはクラスや継承関係を表しているというのにピンとこなかったら
Python入門書とかをざっと通読するのがオススメ -
androidの出力しようとしたんだけど調べてみたらなんかややこしいね…
調べて試しながらしばらくはPC出力で我慢するわ -
そろそろ4.0betaリリース来る?
正式版は今年中に出来るのだろうか -
https://i.imgur.com/hHvps50.jpeg
https://i.imgur.com/3s6o8Km.jpg
インスタンス化したラベルをループで並べてシングルトンのarray(0 AAA~4 EEE)を表示したいんですが中々成功せず、
悩んだ結果インスタンス化して名前が変わってるから1個目だけ更新してるんだと単純なミスに気づきました。
しかしどうやってもループ中に変化した名前に対応させる方法が分かりません。
英語で調べてもややこしい方法で理解が追い付かず・・・、なるべくシンプルな解決策はありませんか?
と、質問をまとめる間に先にラベルを並べてvisibleとか使えばわざわざ
インスタンス化で表示とかしなくてもいいんじゃないかと思いつきましたが、
ループでadd_childしてそれぞれに値を入れる方法を覚えるのも大事だろうと思いますので、何かヒントがありましたらぜひ。
こんな事でほぼ丸1日終わりました。 -
>>203
案1. label_instance[i].get_node("Name")
案2. TextシーンにName.textに代入する関数を作り、ループ内で呼び出す
案2の方がオブジェクト指向っぽい
テストはしてないので悪しからず -
https://i.imgur.com/w57aqtl.jpeg
うおおおできました!正解は1でした!!
2からやってみようとしたけれど、ラベルにGlobalのシグナル接続して値を渡してみようとか変な事試して
コネクトされたchild全部ループごとにいっぺんにemit受けてるから駄目だとか、また気づくまでにムダに時間かかってしまいました
結果arrayもいらないし本当に凄くシンプルでしたね……生成されたインスタンスでget_childするだけて。
まだまだノードの親子関係が勉強不足ですね。
とりあえず1問解けてスッキリしました。ありがとうございました! -
instance名.set_name("Text" + str(i))
とかでTextの名前連番に出来そうだけどダメ? -
JRPGとかツクールっぽいアイテム一覧メニューの作り方わからない
そもそも全アイテムの情報をどこにどう置けばいいんだこれ… -
コンテナに入れるしか無いんだからリストやマップ
アイテムIDと個数しか必要なければリストに突っ込んで
ソートはアイテムID、情報はIDでマップから取得 -
>>207
俺はまだコンテナの使い方は全然分からないので
画像データとか名前とか設定する共通のリソースから1個ずつアイテムリソース作ってres://にフォルダ作って入れる
何百個もあるならjsonとかエクセルの外部データ読み込めばいいんじゃないの
所持アイテムはglobalの置き場にarray(所持アイテムの種類)とそのarrayをキーにした辞書(種類ごとの所持数)を用意して、
アイテム入手のたびにvar xxx = load(res://~ + str(入手アイテムID).res みたいにしてリソース読み込んで
シグナルでリソース入りの変数と入手数をglobalに渡して、arrayにappend・辞書にも所持数を追加、
globalからまたシグナルでアイテム画面に更新した情報を渡してUI表示更新、という流れで行けると思う -
godotで売れたゲームとかありますか
sonic colors以外で -
駄目ゲーでもとにかく完成させないと、、、
-
>>210
Yakiniku Simulation -
いよいよベータか
大幅に変わってるならさっさと乗り換えるかな -
βキタ━━━━(゚∀゚)━━━━ !!!!!
-
4.0ベータきてるやん
早速週末にでも触ってみるか -
ベータ北僧! 落とせ落とせおとs!
https://godotengine....hot-godot-4-0-beta-1 -
やっぱまだ4.0ダメだな
起動遅くなったしプロジェクト実行するといちいち白い画面が映ってから実行される -
やっぱ動作重いん?
-
godot4
継承元のシーンにAnimationPlayer持たせて継承先でアニメーション設定したらtrack_changedシグナルの接続エラー?が発生する
アニメーション自体は問題なく再生されるけど既知バグかしら -
4.0のexport仕様なんか嫌だな
@export_multilineでArray[String]が何故か出来ないし -
4は3dが強化ということだけども、もともと3dに使われているエンジンなのかな?
-
Unity信者を黙らせるためじゃね?
-
itch.ioとかで色々漁るの楽しいんだけど、ソース見られて良いお手本になる作品とかないかな
-
たしかに他の人のプロジェクトファイルは覗いてみたいな
実践的なシーン管理やノード構成とか知りたいしね
Godot製の作品はちらほら見るようになってきたけど公式のサンプル以外でプロジェクトファイルを公開してるところあればいいんだけどね -
https://itch.io/game...odot/tag-open-source
ここでオープンソースのやつ落として眺めてる -
3.xで進めるか、4.xにしてしまおうか…
-
まだ実際に4.xには触らず他人の評価しか読んでないけど
2Dなら 3.x
3D(Engineが変わったらしい)なら 4.x かな -
4で作ったゲームってIvyBridge以前のオンボだと動かないんだよね
結構なユーザー切り捨てることになりそう…いやもうそんなことないか -
>>229
2Dでもタイルマップエディターが更新されたり物理やナビゲーション周りでだいぶ進化してるから4の方がいいっすね -
3770Kなんてゲーム用途じゃ今のCeleronにボロ負けするくらいの性能なんだから
正直もう気にしなくていいだろ -
4で型付き辞書宣言出来るようにならんかな
まだまだbetaのバージョンアップが待ち遠しい… -
Androidのバージョン稼働割合みたいにWindowsのCPU稼働割合わかるサイトとかないのかな
-
steamでユーザが利用してるグラボの統計たまに公開してるな
-
スレチかもだけど
Godotの方のgdと
Gdevelopの方のGDと
どっちにどんな特色みたいな比較ってある?
GDは素人の俺から見てオブジェクトや処理の案内明瞭でとっつきやすそうなんだが
gdの方が自由度高かったりするんだろうか -
GDScriptよりC#使うほうがつぶしが利くような気がしてきた
-
>>239
その心は? -
GDScriptってこのエンジンでしか使わないから、このエンジンが終わると全て終わるのが怖いのはある
-
ゲームエンジンを使っておいて将来の潰しを心配するのは、色々と視点が間違ってるのだけは伝えておく
-
オープンソースだから
誰かが何とかしてくれる
他力本願で呑気に構えていればよい -
たまにプログラミング言語に対して
これ勉強してこれが廃れたらどうしようって言うやついるけど
それはプログラミングしらない素人の考えでしかないから考えなくていいです -
言語なんてアルゴリズムの表現手段でしかないしな
gdscriptはむしろpythonに近いお陰で他の言語にも置き換えやすいとおもうが -
C#で書いたからといって他のエンジンに持って行きやすいかと言われればそうでもないし
GDScriptもPython派生言語だからそういう意味では潰しがきかないわけでもないし
だいたい、どんな言語でも構造化なりオブジェクト指向なり関数型なり、
ちゃんとプログラミングという考え方自体を身につければ他の言語でもある程度使える
ただし、一番使ってて楽しくまたは楽に使える言語を使った方がプログラミングは身につくと思う -
俺は本職だと一番Python使ってるからGDscriptで書くよ
でもC#もいい言語だと思ってる -
Python風じゃなくてPython使わせてくれたら嬉しいんだけど速度的な理由だろうな
C#とGDScriptは3,4倍速度が違うとかどっかのブログにも書いてあったし -
ごめんC#とGDScriptの速度については
そんな単純な問題じゃないっぽい -
元々独自スクリプトはGCされたくないから作ったって言ってたと思う
-
確か元々はPythonとかの言語を組み込む予定だったけど
試作の段階で様々な問題が発生したから独自のスクリプトに変更して最適化したって話だったと思う
Pythonになってたら逆に使いにくくなってたかもって話だな -
軽いしツールだと思うんだけどやっぱシェア率が低いからか日本語の情報少ないのが…
-
ゆうて機械翻訳でも使えば問題ないだろ
つべで英語字幕つきの解説動画とかも教材になる -
func _physics_process( ):
var velocity = Vector2 (
Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left"),
Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up")
)
var move_direction = velocity.normalized()
move_and_slide(spd * move_direction)
こういう移動のスクリプトで、画像はスプライトの方でまたright - left の部分コピペして対応Vectorに割り当てるっていうやり方見て
なるほどとは思ったんだけど、各方向で立ちポーズとかスプライト増やしていくと同じキー入力のスクリプトも重複していくわけで、
そういうのってバグの原因になったりしない?
結局同じキー入力の動作は1か所にまとめたほうがいいとかそんな事ない? -
そうね。重複処理は避けるようにすると効率がいいしデバッグも楽
spriteとかは最後に動いた方向をcharactor_directionとかのグローバル変数に保存してやればいちいち再計算する必要ないし使いまわせるな
もっといえばPlayerクラス作ってそこに上のコード書くべき
プレイヤーキャラを増やすときにPlayerクラスから継承させればキー入力や向き計算のコードを何度も書く必要なくなる -
>>255
あっそうか、コピペでやったとしてコード変更する場合は全部いちいち直すことになったりするんだね
クラスとかよくわからなくて後回しにしてたけど、それならぼちぼち勉強してみます。
レスありがとう
ところで4.0ベータ新しいの来たけどやっぱ重いなぁ
3D別にいらないから新しいGDscriptだけ移植した3.6出してくれないかな・・・ -
今日はずっとキャラの左右の移動で反転する時にコリジョンとかもまとめて反転させようとしてscale.xでやろうとしたけどダメだった
やっぱりscaleだとめんどくさい事になるらしい
スプライトはflip_hで反転させて、コリジョンは右向き左向きで別々のを使うしかないか -
>>257
この動画みたいにPosition2Dの子にCollision配置して
AnimationPlayerで向きとCollisionの位置管理すれば良いんじゃないか?
https://youtu.be/vDbEfmPcv-Q?t=698 -
以前、「4.0では丸ごと簡単に反転できるようになる」って読んだ記憶がある
まだ付いてないのかな -
カスタムリソース便利そうで感動してる
JSONファイルにデータまとめる必要なかったんや…セーブするときとかは別として -
インスペクターのプロパティにオンカーソルして出てくるツールチップの内容をコピーする方法ってありますか?
マウス動かすとツールチップ消えてしまう…
ドキュメントに飛んだり翻訳したいだけだから内容手打ちでもいいんですけどコピペ出来たら少し楽になるはず -
たぶんVulkanがらみじゃないの
Vulkan自体は高速だけど、高度な3Dグラフィック用途を想定してるから
デフォルト状態では3.xよりは重くなるとか?
2D組にはとばっちりだけど最適化やOpenGL対応を待つしかないかもしれん -
インスペクターでプロパティにカーソル合わせたときに、小さなウィンドウが出てプロパティ名の詳細とか出てくるけど、
その説明を選択してコピーしたりすることってできるのかな… -
4.0ベータ5、win64版zipの中に入ってる「Godot_v4.0-beta5_win64_console.exe」って何?
-
>>266
262(3.5.1)だけど調べたり色んなキー押した感じ多分無いですね…
インスペクターのプロパティを右クリックして「プロパティのパスをコピー」(「プロパティをコピー」だと何もコピーされない)でプロパティ名をコピーできるのでそれ+ノード型でググるか、スクリプト編集画面の「ヘルプを検索」って所に貼り付けて出てきた英語の解説をコピーして翻訳するのが多分一番早いと思います
自分も初心者なのでもっといい方法あったらすみません… -
dome keeperとかbrotatoとか最近スマッシュヒットも多いねGodot
-
結局3.4使ったほうがいいのかな
-
4.0使ったチュートリアル動画見たらシーン実行時に一瞬白い画面が出るのって仕様なんだな
おま環かと思ってた
ムービーエディターとかよりもっと軽量化してくれ -
4.0そんな重いの?
Unityが重いから移ってきたんだけど -
(初回)起動時にはキャッシュの関連で時間かかるようにはなったけど
win+nvidiaの環境では重くはなってないと思う
後ガッチガチの最新の3D使うなら重いのは当然で
UnityやUEの方が最適化されてそうだけど比較してどれくらいの差があるのかは分からない -
godot4 beta6でなんだけど
@export var arr0 : Array[String] :
set(val) : arr = val
get : return arr
@export var arr1 : Array[String]
これでarr0, arr1ともインスペクタで値設定した時にarr0の方だけ起動時に空っぽになるのはなんでだ
そもそも推奨されない書き方なのかただのGDScript2.0のバグか… -
@export var arr0 : Array[String] :
set(val) : arr0 = val
get : return arr0
だった
どちらにせよ空になるけど -
型書いてるのか
-
型書いた方がインスペクタで要素毎にいちいち型指定しなくて済むからな
>>277
Array[String]の代わりにPackedStringArrayってのもあるぞ
バグっぽいしRedditで聞いて何ならGithubにIssue作成しよう -
https://godotengine....ement-4-0-and-beyond
これ見て思ったけど新バージョンに乗り換えるのは4.1出る頃が安牌かな -
3dやるわけじゃないので4.0系は当分先でいいかな
funcref無くせるくらいしか嬉しいところない気もするし -
res://の外をスクリプトから操作できないようにする設定とかないですかね
-
4.0ベータ版OpenGLに(仮?)対応したね
-
beta9出るの遅いと思ってたけど出てたか
-
アニメーションツリーはラグが発生するって知らなかった
見下ろし型で4方向のどこかに攻撃 → 別の方向の移動キーを押しっぱなしすると、
アニメーションプレーヤーの攻撃アニメ後に待機状態に戻る関数呼び出しで攻撃が終わる直前に
その別方向のベクトル拾って一瞬違う向きのアニメーションが表示されてしまう
ツリーは移動くらいにしか使えないか? -
よく分からんけど整理すると
① 攻撃キー入力
② 攻撃アニメーション開始
③ アニメーション中に方向キー長押し
④ 攻撃アニメーションの中で初期化関数呼出
攻撃アニメーション終了
⑤ 方向キーの入力が検知され、ツリー遷移
同時に④で呼出されていた関数が完了
ツリーが初期化後の状態に強制変更される
⑥ 次フレームで初期化後の状態が表示される
⑦ 方向キーの入力が検知され、ツリー遷移
⑧ 結果的にワンテンポ遅れてるように見える
って事か?コードの組み方な気がするが -
>>287
https://i.imgur.com/7m7Q4BY.jpeg
移動、攻撃アニメーションははツリーで管理
攻撃時に攻撃ステートになってアニメーション中は移動できない
呼び出した関数で移動ステート(stand)に戻って動けるようになる
別方向のキー入力してると動く直前に攻撃アニメの1コマ目が見えておかしいってことです
スクリプトはHeartBeastの丸写しなんだけど
https://www.youtube....b_channel=HeartBeast
結局ツリーを使わずステート形式のスクリプトで動かしたら、その変な1コマ表示は出ないのでツリーのせいじゃないかと -
>>288
https://reddit.com/r...ag_in_animation_tree
https://github.com/g...e/godot/issues/52518
調べたらバグっぽいな
ループさせないなりadvance()使うなりアニメーションの終了前にattack_animation_finished()呼ぶなり工夫して回避するしかなさそう
因みに3.5.1で試すと確かに発生したけど4.0(beta9)で見ると発生しなかったから既に修正済みっぽい -
おお、4.0はまだいいかと思ってたけどそのへんも対応されてたんですね。詳しくありがとうございます。
ベータ10まで来てるし安定版そろそろかなぁ
もっと軽くなってほしいけど・・・ -
Godotに限らない話なんだけど
セーブとロードの仕組みって
ゲームの進行で変化する値を
ステージとかマップ座標とか各キャラステータスとか並び順とかこなしたイベントとか
全部辞書変数とかに格納して
JSONとかの形に外部に出力
ロードする時は読み込んだ値を1つずつ所定の変数に放り込んで
ゲーム開始処理も変数の値に基づいて
「このマップのこの座標に遷移」
「先頭のキャラはこれでHPがこうで状態異常がこう」
「宝箱はこのマップのこれ以外は全部開けてる」
とか再現するように関数作る
って感じであってる?
調べても仕組みがどうもピンと来なくて、エラー吐かれたらお手上げするしか無いなってなかなか手出せなくて…… -
結果的に意図した動作になるなら、方法は自分が一番把握できる方法を使えば良い
-
ゲームのコンセプトによってどういう実装が適切かはまったく違ってくるからね
極端な話、あえてセーブがないコンセプトのゲームだってあるんだし
実行中のステートをなるべく完全に再現するコンセプトでも、セーブポイントをいつでもできるようにするか
特定の箇所のステージクリアなど敵味方の配置などは保存しなくていいタイミングにするかでもまったく違ってくる -
必要なだけ再現できるデータを保存すればいいんよ
データからプログラム変数の状態を復元できるように設計しておく必要がある -
とりあえず
必要な変数を外部に保存
読み取ってそれぞれの変数を再配置
再配置したデータを元にゲーム部分を開始
そういう関数を作って必要な場面(ゲーム部分開始前とか)で実行
っていうイメージ自体はセーブ・ロードの挙動からそれほど外れてないっぽい?
基礎的な動かし方さえ変な勘違い無ければ練習してみようかなと思う
あと保存しなくて良いタイミングにするっての何かすごい納得できた
RPGのセーブポイントでパーティ全回復するタイプとかそういう理由もあったのか -
godotあんま触っていからエアプかもしれんけど各ノードでやってもいいと思うよ
SaveGroup作ってグループからノード取得
↓
ダックタイピングorセーブベースみたいなクラス継承してるそれぞれのセーブ関数とロード関数一括で呼び出す
それぞれのセーブ、ロードの実装は
各ノードでやれば全部の配置考える必要ないから
追加・削除が楽 -
あと確かgodotはリソースクラス丸々セーブできたはずだからjsonでなくてもいい
その辺はリファレンス見てくれ -
実装に慣れていない人に新しい知識を与え過ぎると混乱の要因になる
JSONでも何でもいいから、知ってる基本的な知識の中で処理を実装してみることを考えた方がいい
それでも上手くいかない時に、技術的な質問をすれば良い
使い慣れて仕組みがわかるようになれば自然ともっと良い方法がわかるようになる
一応、公式では辞書を使った方法をサンプルを出してる
https://docs.godoten...io/saving_games.html -
丁寧にありがとうございます
ノードの必要な変数を辞書変数に格納して返り値にする関数作る
セーブ用の関数内で各関数を呼び出してそれぞれ取得
公式通りにJSONで書き出し読み込み
読み込み処理後に変数が変わってるか確認
こんな感じから始めてみようと思う
リソースクラスはセーブ調べる途中で見つけて
分かりそうで分からないまま放置してたの思い出した
保存したい項目自作して一意の.tresファイルに上書きみたいに理解してた
間違ってなかったらセーブのやり方理解してから手出してみたいと思う
ResourceSaverとか何者なのか今も全く理解できてないからもっと勉強しないとだなあ -
セーブデータって大体どのゲームでも必要だけど自作すると思ってる以上に面倒だよね
-
いよいよGodot4.0もRC1か
3.xと大分触り心地変わって来たから早いとこ日本語ドキュメント揃えて欲しいな -
4.0正式来たってよ
-
祝4.0‼︎‼︎
-
旧バージョンは3.0のレンダラーだと出力したゲームがCPU使用率はショボいのに
CPUクロックだけ常時フル回転する謎のおま環に悩んで使うのやめたんだが
4.0だと直ってたやったぜGodot始まったわ -
よし作るか!!
-
公開が半年くらい先になるような作品なら使い始めても良いんじゃね
コミュニティでも言われてるけど、イベントに合わせて急いで出した感は結構強い
でも、画面が崩れたりクラッシュだらけのベータ時期よりは結構安定してるから少し待てば十分安定すると思う -
俺Sandyおじさんだから蚊帳の外
-
ブランニューエンジンと言ってるが、ほんまに想像以上に別物で互換がないから、しばらくは3.5でがんばる
3Dゲーム作りたい人は1から作り直ししてでも4.0に移行した方がよさそうだけども -
alphaからずっと4.0使って来たけど3.xに比べてgdscriptの感じも大分変わったし移行するなら早めにしちゃった方が良いぞ
-
今まで使ってなかったけど、新しいgdscriptはちゃんと動くんなら使いやすそうな仕様だね
-
そんなに違うのかー
日本語のレビューとかもっと見てみたいけどね -
床レイヤーと壁レイヤー?と思ったら動く足場用のプロパティか・・・
bodyは名前色々変わってるしYsortノードも無くなってプロパティで設定できると・・・
マジで別物すぎるだろ
これから始める人は3触らない方がいいな -
ラムダとやら全然わかんね
まぁ全ての機能を無理に使う必要ないけど -
↓みたいなCallable型の引数を取る関数があった時に
func foreach(arr:Array, f:Callable):
var i:int = 0
for e in arr:
f.call(i, e)
i+=1
↓foreach()の第2引数に定義済の関数を渡すのが普通のやり方
var result:int = 0
var arr:Array[int] = [3, 5, 7]
func sum(i, e):
print("%d = %d" % [i, e])
result += e
func _ready():
foreach(arr, sum)
print("result = %d" % result)
↓foreach()の第2引数に直接funcを書けるのがラムダ式
var result:int = 0
var arr:Array[int] = [3, 5, 7]
func _ready():
foreach(arr, func(i, e):
print("%d = %d" % [i, e])
result += e
)
print("result = %d" % result)
signalを受け取った時の処理とかもconnect("signal", func():~)みたいな書き方が出来るから
より感覚的にコーディング出来る気がする -
2Dのためにgodot使ってるから4.0はしばらくいいかな…
2Dでも何か利点ってある? -
3D酔いしない
-
>>315
今後のサポートが長い -
Godotの2Dはピクセル単位の整数で座標指定できるから好き
-
現状、4.0の2D系は色々と不足してて不満が多いみたいね(特にドット系)
4.1で多くの問題は解決される予定だから長い目で見ればメリットは十分あるよ
それも来年くらいの話になりそうだけど -
そっか
やっぱとりあえずは3でいいかな
乗り換えの時のために情報だけ何となく拾っとくくらいでいくわ -
3.5の時の3x3minimalテンプレ使いたいんだけど
4.0のAutotileの挙動がわけわからん
情報探そうにもあんまりヒットしないしみんなどうやって理解してるんだ -
タマランノウ (*≧∇≦)y─┛~~~~
-
ラベルノードのインスペクターからテキストに半角で(を入力すると表示されるけど全角の(を変換して半角にすると何も入力されない
4.0.1と4.0.2RC1で確認 -
バグ報告ならする場所が間違ってるぞ
https://github.com/g...tengine/godot/issues -
ちょっと気になるくらいの事なんですけど
change_sceneを行う時、
切り替えたいシーンをシーンツリーにノード化して用意してからロードするのと、
直接 res:から読み込んだ場合で何か違いはあるんでしょうか? -
unityからogodt戻ろうかな(´・ω・`)
unityはいちいち重いから困る
そもそもunity行った理由がアセットが豊富だからなんだけど、このデメリットってカバーできるかな? -
あと、ゲームはsteamとかitchあたりで出したい
-
standard assetみたいなオフィシャルなやつあったらいいんだけどな
-
>>330
そうそう、軌道も遅いしプロジェクトも数Gあるし、、、
大作になると便利なんだろうけど、パズル程度ならもう少し軽いほうがいいかなって
game a weekで交互に使っていく
覚えられるかな療法 -
アセットストアは一向に充実しないわね(´・ω・`)
-
本家もわかってはいてもそこまでは手がまわらんのだろうな
ここはひとつユーザコミュニティサイドでそういうものを立ちあげていくしかない -
まあ自分で作るかitchあたりで探す感じかな
スターターアセットくらいはほしい
ホワイトボックスだけ作ってサクッと動かしたい場合とかあるし -
一番使われてるアセットはゴドーくんの顔
-
アニメーションプレイヤーのループボタンって
暗い方がオンだったのか -
tilesetの編集ってgodot上でできましたか?
tiledなど使わないと駄目でしょうか? -
AnimationTree経由で再生されたアニメーションだとanimation_finishedシグナルが出ないのな
-
>>338
アニメーションの終わりでメソッド呼び出してemit_signalしてみるとか -
アニメーションに終了メソッド呼び出しを手作業で追加するのが面倒だからスクリプト書いた
4では治っているようだがバックポートはなさそう #70278
tool
extends EditorScript
func _run():
var path = "res://units/player.tscn"
var animation_name = "AttackSord"
var target_node = "/root/SystemNode"
var target_func = "animation_finished"
var scene = load(path).instance(0)
var player = scene.get_node("AnimationPlayer")
var animation = player.get_animation(animation_name)
# find last key time
var t = 0.0
for track_index in animation.get_track_count():
for key_index in animation.track_get_key_count(track_index):
t = max(t, animation.track_get_key_time(track_index, key_index))
# add method key
var index = animation.add_track(Animation.TYPE_METHOD, -1)
animation.track_set_path(index, target_node)
var params = { "method": target_func, "args": [animation_name] }
animation.track_insert_key(index, t, params, 1)
var packer = PackedScene.new()
if packer.pack(scene) == OK:
var e = ResourceSaver.save(path, packer)
if e != OK:
print(e) -
GDscriptで組むかC#にするか迷う
-
これとか?
https://docs.godoten...h.html#normalization
後はVector2かVector3のクラスリファレンス見るの良い
https://docs.godoten...r2-method-normalized
https://docs.godoten...r3-method-normalized -
どもっす
vector2クラスのページにあったんですね -
こんちゃす
kinematicbodyは廃止されて、characterbodyになったんでしょうか
move_and_collideの使い方も微妙に変わってる感じ -
↑自己解決
-
質問させてください
https://i.imgur.com/L3oC2wB.jpg
一回、一番上のtreeとrootを取ってから、main_charaノードを取りたいのですが、うまくいきません。
rootが取られてしまいます
これってなぜでしょうか。
ownerを使ってもいいのですが、親シーンにアタッチした子シーンのスクリプトからは、ownerで親シーンのルートは取れません。 -
ところで、シーン1にアタッチしたシーン2(敵キャラ)から、シーン1上のノード(主人公)を取得したいのですが、
ノード名で取得しようとするとノード名を変更したときに2箇所変更しないといけないです
@exportを使って、対象となるノードをインスペクタに指定しとけばいいのかなと思うんですが、同じシーンのノードじゃないと指定出来ないんですねこれ。
考えたのは敵キャラ用のスクリプトをシーン1においておくことですかね。
そこに主人公を指定しておく。 -
↑訂正
シーン1とシーン2があって、シーン2の変数(@exportでインスペクタに表示させる)としてシーン1上のノードを指定したいのですが、それは可能でしょうか -
メインシーン側で敵シーンをインスタンス化する時にプレイヤーの情報を渡せばいいんじゃない?
@exportで指定したプレイヤーシーンはインスタンス化して使うとなるとメインシーンのプレイヤーとは別オブジェクトになるんじゃないかな -
↑どうも
引数でキャラクターを渡す感じですね
試してみます
unityのプレハブになれてたからこのへんは違うんですね -
ttc フォントファイルはパスを手入力したら使えるんか
-
質問
2dでローカル軸方向に動かすにはどうしたらいいのですか?
basisかな -
自己解決すまん
-
いいってことよ
-
characterbody2dってコリジョンの検出出来ましたっけ?
重力ありの弾丸(シューティング)を作ってます
出来ないとたら子供にarea2dなどをもたせるんですかね?
>>358
どうもす(´・ω・`) -
自己解決
適当にやる -
ちわす
他のシーンのスクリプトを書き換える方法はあるでしょうか?
一度シーンをインスタンス化しないと駄目なように思いますが、元のスーパークラス?を書き換えたい場合もありますね -
自己解決 うす
-
rigidbody3dなんですが、lock rotationの固定軸を1つに限定は出来ないんでしょうか?
すべての軸がロックされますなこれ -
HingeJoint3D とかでやるっぽい
https://ask.godoteng...ody-locall-axis-lock -
kinematicbody2dなんですが、ひし形を地面に落として、地面に転がるように出来ないでしょうか
スクリプトでの下への重力と、物理を両立させるのは難しので出来ないとは思いますが
かといって、rigidbody2dを操作するのは結構シビアで難しい
>>364
どうも
rotation.x = 0としても駄目だったんで
インスペクタにはないみたいですよね
やっぱり3dだと余計に手間掛かる感じはありますね、、、 -
キャラクター自体に物理挙動つけるゲームとか難しすぎてやめたほうがいいかな
-
godotでリジットボデイの大きさを変更する場合、子供であるコリジョンシェイプやスプライトの大きさを変更するんだね
親を変更すれば付随して子供も大きくなるけど、これは機能しないのはなぜ -
まあそういもんだと納得しとく
-
ブレイクポイントというのは関数の途中には設定出来ないのですか?
function process(){
if Input.is_action_just_pressed("ui_accept"){
print("1")
print("2")# ここにブレイクポイント
}
} -
sorry レディットで聞きます!!
-
インポートスクリプト最高や
-
略してインポスクリプト
-
2点のVector2オブジェクトからRect2オブジェクト作る関数ってないですか
Rect2.new(pos:Vector2, size:Vector2)はあるけど欲しいのはRect2.new(start:Vector2, end:Vector2)なんです -
それくらい自作しろよ…
-
Rect2(start,end - start)
-
>>376
startとendは左上/右下とは限らないので作るとしたらこうですかね
var min = Vector2(start.x if start.x<end.x else end.x, start.y if start.y<end.y else end.y)
var max = Vector2(start.x if start.x>end.x else end.x, start.y if start.y>end.y else end.y)
return Rect2(min, max-min)
有益なレス感謝します -
GDScriptというかPythonの三項演算子っぽい記述ってやっぱ慣れないな
-
> 有益なレス感謝します
そういうのいいから -
左上右下にするならRect2.abs()もあるかも
-
>>381
何いってんだこいつ -
馬鹿には理解出来ない言葉
-
たかだか算数の問題もできなくていちいち聞きに来てる奴がなんだって?
-
統失か知らんが算数出来る出来ない如きで喧嘩するなら他でやれ
-
殺伐とするのはウディタスレだけにしてくれ
腐ってもgodotの数少ない日本語コミュニティなんだし算数出来ないなら教えてやるぐらいの余裕持とう -
ここは怖いインターネッツですね
-
何に発狂してんだか
-
足し算が出来なくて発狂ってどんな基地外児?
-
godot触ってみたけどわからんちん
Gamemakerは何とか使えてたんだけどルールが全然違うんやね
どこから始めたらいいんだこれ -
やっぱ先ずは理解できなくても講座ベタトレースしていくしかないかー
出て間もない4.1基準の講座は少ないね
でも古い講座は使えない知識混ざりそうであんまり見ない方がいい気もする・・ -
>>394
4.0でVampire Survivorsクローンの講座は有ったな -
Getting Startedの2Dと3Dを見とけば後はできるでしょ
-
完成させる秘訣みたいなものありますかね?
技術が低いのでモック作成までまでも至りません
ハードルを下げまくると面白いとは言えない代物になる
バグとか技術的なつまづきさえも面白くするというのはありだとおもいますが -
完成させる秘訣? そんなの簡単だ
完成させる事で金が儲かるようなことをやることだ
それが無いうちは完成までモチベーションが絶対つづかない -
好きなことをやれっていうけど、やっぱ金のほうが強いかね
そもそもそんな好きなジャンルがないし、あったとしても個人で作れないレベルのゲームだし
まあ頑張る
飽きっぽいからunityとgodot両刀でやってく -
最初はとにかくチュートリアル漁って見よう見まねで完成まで作ればいいんじゃね
作ったもん改良して独自性持たせりゃ自分の作品とも言えるだろ -
公式のチュートリアル読み込みながら進めてたけど、アイコンを
円運動させるところでもう命令が理解できなかった。
var velocity = Vector2.UP.rotated(rotation) * speed
position += velocity * delta
何でこれで円運動するのか訳が分からん。
オンラインチュートリアルが日本語化されてないから
命令文逆引きしてもチンプンカンプンだわ・・・ -
>>400
モチーフを少し改造する方式にするわ(*´ω`*) -
>>401
Vector2.UPはVector2(0,-1)と同じ、要は画面の↑方向を差すベクトル
他にもVector2.ZERO、Vector2.ONE、Vector2.LEFT、Vector2.RIGHT、Vector2.DOWNがある
rotated()は回転させたVector2を返すメソッド
Vector2.UP.rotated(3.14)は↑方向のベクトルを180度回転させたベクトルになるので、Vector2(0,1)が返ってくる
var velocity = Vector2.UP.rotated(rotation) * speed
の行は、Vector2.UPを基準に、rotation分回転させてspeed分移動するためのベクトルをvelocityに計算してる
Node2Dクラスが持ってるpositionプロパティにVector2を渡せばその座標に移動出来るので、
今の座標にvelocityを足す事で円を描くように移動させられる
deltaは_process()が呼ばれる時に内部で渡されるフレーム間合計時間
_process()は1秒のうちに何回も呼ばれるメソッドなのでdeltaを掛けることで1秒間の移動量を調整してる
こんな感じ?
日本語ドキュメントは3.xですら中途半端だしdeeplでも使って根気よく翻訳するしかないな -
完成させるための期限はどのくらいにしてますか?
game aweekだと1週間ですが、自分のスキルにもよるでしょうけども。 -
>>401
サンプルの "rotation += angular_speed * delta" のコードが
rotationプロパティを通して角速度angular_speedでキャラを回転させ続けて、
変数velocityは上向きベクトルをrotationの向きに回転させ、速度speed分進む方向ベクトルなので
組み合わさるとキャラが角速度angular_speedで向きを回転しながら速度speedで前に進むことになり
その姿を想像してみるとたぶん円軌道になるのかなあと
スイカ割りで目隠ししてぐるぐる回されたあとに進むと真っ直ぐ進んでるように思ってもくるくる回るみたいな… -
ゲームの仕様書は変えないことが大事でしょうか
あれもこれもと追加すると延々と終わらないと言いますね、、、
この辺が完成捺せられない理由かも自分 -
最近ワナビースレみないと思ったらGodotスレにいるのか。がんばれ
-
うん ゲーム性が思いつかない
-
どんな題材であっても面白くこねくり回す能力ってなんていうんだろう
その能力が大事なんだろうな
インスピレーション? -
いつまでウジウジ言ってるんだ
最近やったゲームで面白いと思った物は何だよ
それをパクれ -
>>403
>>405
丁寧な解説ありがとうございます。
解説と照らし合わせながら週末唸りながら朧気ながらに理解していったのが
下記の通りで、間違っているかもしれません。
ソースの全体を貼って無かったので
https://docs.godoten....html#turning-around
先ず謎なのが、
delta の機能で、ヘルプには「最後のフレームからの経過時間」とあるけれどどゆこと?
類推するに、60fpsで動いてる場合0.0166666を返すって事でいいんかな?
func _process(delta):
は毎フレーム実行される処理「常に実行」という関数って事でいい?
こういう所ヘルプが足りてない気がする。
それともプログラミングする上での常識?だとしたらごめんなさい。
最低限プログラミングの素養が無いとgodot触れないなら諦めます。
次に、
var angular_speed = PI
何でこの変数がPI(3.14)必要なのか?
rotation に入れる値って角度じゃないっぽい・・・と、調べてみると
コードから指定する rotation はラジアン値なんやね。
存在は知っていたけど調べてみたら何とも扱いが面倒な単位・・・
なんでや・・・プロパティでは角度で入れるのにコードから入れる時は
ラジアン値とか混乱するやろっ!
という事でラジアン値とPIを色々調べて相互変換式を見比べて何故PIを
変数に入れたのか、何で
rotation += angular_speed * delta
の式で2フレームで画像が360度(2PI)回るのかが理解できました。
うん中学の頃の授業でやったやった・・・。 -
次が大問題の
var velocity = Vector2.UP.rotated(rotation) * speed
Vector2.UP がレスで教えてもらったので.UPの定数が理解できましたここで基準方向を指定
その方向から続けて記述される.rotated(rotation)角度へ向けて
* speed 分移動させた位置(これが円周運動の半径になる)を velocity に格納
って事でいいんかな?
何で * speed したら「その方向にspeed分移動」になるのか理解できない。
式として理解できないけどそういう命令として受け入れるしかないのか・・
続けての
position += velocity * delta
で現在の位置に velocity に * delta する事で1フレーム分の移動値を position に
加算するという処理にたどり着くのに三日掛かりました。
頭フット―しそうです。
ただ、疑問なのが rotation 値がPI(3.14)の時はノードは180度回転して
下を向いている筈で、その時 velocity は時計で言う6時の位置という事になる筈だけど
円周運動の場合その時のノードの向きは進行方向である左を向いてないといけないと
思うんだけどもこの考え方だと180度(下向き)になるのでは?
感想としては命令文を理解しようと検索してもオンラインヘルプの記述が
異常に難解で苦労しました。
GameMakerのオンラインヘルプは使用例や解説とリンクがとても分かりやすかったので
ヘルプ周りを参考にしてほしいところです。
この先もこの調子だと手に負えないかな・・・ -
ラジアンは高校で習うんだよ
三角関数と一緒に使うからね
わからない関数が出たらマニュアルの検索ボックスに突っ込むのが基本 -
>>411
>60fpsで動いてる場合0.0166666を返すって事でいいんかな?
これは大体あってる。処理が重けりゃfps不安定になるからdeltaも乱高下する
>毎フレーム実行される処理「常に実行」という関数って事でいい?
合ってる。詳しい事はgodot processとかでググればドキュメント出てくるはず
chromeなら右クリ、スマホなら︙から翻訳出来るから英語ページも漁ってみ
因みにupdate関数の概念はUnityとかにも通ずるから基本と言えば基本
πの概念もゲームだとよく出る
座標系、ベクトル、三角関数は避けられない
因みにgodotだとdeg2rad(角度)で弧度に変換出来てrad2deg(弧度)で度数に変換できるよ
>何で * speed したら「その方向にspeed分移動」になるのか理解できない。
要はposition += Vector2.UPとした所でpositionの位置から(0,1)ずつジワジワ動くだけなので、position += Vector2.UP*speedにして沢山動かそうってだけ
矢印で考えたら、掛けた分矢印の長さが倍になるイメージ
(0, 1)*100 = (0*100, 1*100) = (0, 100)ってだけなんだけど、まぁ色々試すなり一旦チュートリアル進るなり場数踏めば意味も理解出来るんじゃね
>この考え方だと180度(下向き)になるのでは?
意味を掬い取れてるか分からんが…考え方は合ってる
もし12時の位置から同じ方法で円を描けば、180°の頃には6時の位置で左向きになる
サンプルでは0°が上向きで9時の位置だから180°の時には下向きで3時の位置になってるけど
ドキュメント周りはまだ発展途上なツールだし多めに見よう -
>>414
大体理解があってたみたいで良かった。
サインコサインタンジェントもやたら使うのでちゃんと勉強しておけば良かったと思う
今日この頃。変換関数あるのは楽でいいね。
* speed の意味もその解説で理解できました
Vector2.UP自体がベクトルに1進めるという移動量を持っていたのが理解出来てなかった。
* speed で400倍してるけれど、次の position で位置指定するには大きすぎるので
* delta で0.0166666倍してると・・・ってそれ二度手間やないかい
と思って speed を4にして * delta を消すと二度手間を簡略化出来た!
何でこの二度手間させてるんだろう?
向きの辻褄が合わないのは解説のお陰で理解できました
開始位置が9時方向だったのか(なぜか0時開始で思い込んでた)
そうよね、最初Vector2.UPで上向かせて rotation が3.14*0.0166666だから
ほんの僅か右に傾いた上方向に向かって移動開始だから9時方向からか・・・
理解した瞬間声が出たw
丁寧な解説ありがとうございます。
この調子で少しづつ理解していければ、いいなあ -
>>416
あれから他のチュートリアル見てて気が付いた
var velocity = Vector2.UP.rotated(rotation) * speed
この式は方向にスピードを掛けて「速さ」を出してるって意味だったんやね
で、deltaが時間/1fps で
position += velocity * delta
速さ*時間=距離の公式で移動距離をpositionに足し続けて移動を表現してたのか。
なるほど。
ベクトルも内包してるのが公式とは違う所だけど、何でこの掛け算してるのかが理解できた。 -
モーション系は_process(delta)よりは本来_physics_processの方が適してる
というか_processを_physics_processの仕様で置換え統合してもよさそうな気もするのだけれども…
定速と可変のギアは使い分けた方がいいってことなのかなこの辺どんな議論になってるのか分からない -
いまだにゴドットと読む人いるなぁ
スレタイに読み仮名つけたほうがいいかもなぁ -
後藤
-
Tilemapのterrain設定がよく分からん…
ぴぽやのマップチップにパターン設定したいんだが似たような事してるサイト無いかな -
後藤を待ちながら
-
ゴドーだと思ってたけど
ある本を呼んだらゴトーって書いてあった
実際何が正しいの? -
スクリプトのテキストエディターなんですが、どこから変更出来るでしょうか?
uiのテーマではなく
uiのテーマに同調するわけじゃないみたいです -
イギリス ゴドゥ
アメリカ ゴドウ
フランス ゴドォ
日本 ごどっと -
ゴー・ドット
go! dot!!
これが一番かっこいいんで、こう呼ぼうぜ -
テキストエディタのカスタム教えてください マジわからん
-
godot4系はuiのテーマとsyntaxのテーマが一致しなくなってる
なんでやろ -
gd4だとなんでテクスチャにフィルターかかってるんだろう
-
4系でパネルをフロートにするとなんかuiがバグる
まだ3にしとくか(*´ω`*) -
Godotを初めて見ようと思うのですが
公式おススメのスクリプトでの実装って、実際問題やりやすいんでしょうか?
元々C#が使えるので、新しいスクリプト言語習得かC#による実装をやるかで迷ってまして…… -
遣りやすいとかやり難いとか
そんなん個人の技量やん
やりたいならやれ -
Unityの幹部にお級吸えるためGodotに来たよー
起動が爆速でびっくりだな。ファストインプレッション100点 -
godot4ってまだ安定してませんか?
よくフリーズしたりする
godot3に戻そうかな -
あと、インデント幅が広すぎて深くなりすぎる場合の対策ありますかね?
font hintingの設定してますが、それでも深いです -
>>432
GDevelopにおいで -
vscodeユーザーは何入れてるん?
とりあえずgodot-tools入れてみてるけど -
Unityから引っ越してきてC#を使って2Dチュートリアルを終えたところです
ノードの参照ってパス直打ち以外にありませんか?
unityで言うところの
[SerializeField]型名変数名で、インスペクターに指定の型を持つシーン内インスタンスやtscnファイルをD&Dする
GetComponent<型名>()で下に指定ノードが1つしかないことを前提にパスを省略するなど
とにかくタイプミスとか親子関係や名前変更などで参照が壊れるのが怖いので、文字列直打ちは避けたいです -
一つしか無いならget_child(0)とか
NodePathにはJavaScriptのセレクターみたいなのはないんよな -
お二方ありがとうございます。
NodePathはtscnになってないノードを入れられるんですね
今のままだとPacked共々ノード(tscn)が何でも入ってしまうので、指定したノードを持っているノード(tscn)のみを設定できる方法はありませんか
指定した種類のノードは1つでも、別種のノードは追加するのを想定していたので、インデックスが必要なgetchildは難しいですね
言葉足らずですみません -
特定のノードを含むPackedSceneのみをインスペクタで指定できるようにしたいということ?
そんな機能あるんかな -
インスペクタープラグインならプロパティ値の選択方法も変更できるみたいだから
プラグインを書けばいけるかも、試したことはないけど
https://docs.godoten...spector_plugins.html -
例の騒動から触り始めたけど2Dなら案外何とかなるな
AnimationTreeをbool値で遷移管理するところまでは行けたから調べながらやってみるか -
AnimationPlayerのタイムライン自由度高くていいね
-
アニメはアニメでも位置移動系か
自機スプライトアニメの移植やっと終わったんでボチボチやるわ
Pythonライクだと楽でいいわC#の情報ほぼないけど -
ゲームエンジン「Godot Engine」の利用者が急増中。Unityの新料金システム発表を受け、乗り換えを模索する動き活発化か - AUTOMATON
https://automaton-me...sjp/20230918-264924/
グラフで見ると面白いね -
やっぱり世の中金や、金や!!
実際にはおそらく「どうしようUnityから何か移行するのにどれががええやろか?
とりあえず色々ためしてみるか・・・」みたいな流れで一時的にお試しユーザーが増えてるだけだろうけど -
インスペクタープラグインを作ってみたけどNGワード出てリンクが貼れないわ
-
短縮URL噛ますとか……?
-
ローマ字にしろ
-
だ、誰もいないじゃん。只今unity炎上中‥
-
2D→Godot
3D→Unreal
になっていきそう -
非公式でGodotでLive2D動かすやつ作ってくれてる人いるのか
これはいいな -
>>458
これは誤爆だったわ。無視してくれ -
質問です。
Godotでマルチプレイサービスやコンソールポートについて、サードパーティを選ぶ場合、
やっぱりW4 GamesのW4クラウドとコンソールポートが今後本命になってくるのでしょうか? -
JavaScriptが得意なら2DはGDevelopという選択肢もある
-
テラリア開発元がgodotに10万ドル+月1000ドル支援するらしいね
unity,UEに並ぶ第三勢力になれるのだろうか注目してる -
個人〜数人規模には向いてるけど商業には厳しい気がするが
-
>>8
今 -
個人制作の2dゲーにはかなり良い感じだな
-
座標をピクセル単位で指定できるのが心地いい
-
結局Unityが今まで覇権とってたのって、Unityの性能や開発のしやすさとかそういう要素より
これでつくっときゃiOSもAndroidもどっちもほぼ変更なしでそのままいける、ってのが大きかったんだよな
Unrealはレンダリング性能で完全にUnityを追い越してたけどそのあたりが面倒だったからUnityの後塵だった
Godotはそのあたりどうなんだ -
>>470
フレームレートはurpより出ないという書き込みもあったけど。時間の問題じゃないかな。 なんならエンジン側もカスタム出来るんだからやりたい放題できるから問題ない -
GDScript、これPythonとか触ってたならすぐ使えるようになるな
ユニットテストのプラグインもあるし、わりかし十分感ある
あとRider辺りとの連携機能が強化されるのを期待したい
GDScriptはサポートしてくれてるけど、実行/デバッグはC#で書かないと無理っぽいし…… -
VSCode の godot-tool はGDScriptのデバッグができるから対応次第やね
-
>>470
プログラミング関連に共通して言える事だけど結局一番重要なのは情報の多さだと思う
書籍数でもUnityが群を抜いてるわけじゃん
で、色んな人が使ってるからこれ使っときゃとりあえず安心みたいな風潮が出来上がってしまった -
godot4の日本語情報が少なすぎる
これじゃあUnityがいくらゴミ化しても移住できない人が大半 -
そりゃ急だったからね
-
逆に考えるんだ。
今Godotのレクチャー動画とかKindle書籍出したらフロンティア -
よーし!あらたなブルーオーシャンの出現だ!!みな船を漕ぎ出せ!!大漁じゃああああ
・・・とはなりそうにないのが、いかんともしがたい -
とりあえず調査だけはしとくか的需要で1000円以下の電子書籍とかなら結構売れると思う
-
へーすごいな
思うけど、イベント的になにかあってから「それ急げ!」ってやってもだいたいまにあわないんだよね
常日頃から「そんなのやってて意味あるの?」みたいなのを地道にコツコツやってたのが運よくひっかかる感じ -
漁ってみたらkindleよりもboothの方がニッチな書籍はあるみたいだな
-
ページ自動翻訳すれば何の不便もないのに、何で日本語情報を求めるんだろう??
あと書籍よりWebの方がピンポイントで必要な情報にすぐに辿り着くと思うんだけど。 -
ほんまブラウザ翻訳様様、便利な世になったもんだ。
大まかに書いてる内容を知るのにホント助かってる。 -
>>483
慣れてたらそれでもいいかも知れんがはじめたての頃は文字の羅列よりも図解の方が読みやすいじゃん
自分は一回学習した事が合ってバージョンアップの差分とか個別具体的な事はWebで調べるが
新規に分野は書籍で読んでじっくり体系的に理解する方がトータルで効率がいいと思ってる -
大まかに書いてることはわかるけどちょいちょい誤訳やわかりづらい部分があってスッと頭に入ってこない情報で新しいことを学ぶのを人は嫌がるものだよ
特にUnity使う層は非プログラマーやかじった程度のゲーム開発者未満が多いわけだし
そして、そういう層がいるから人口が増えてアセット販売やら書籍販売で稼ぐ人も現れてコミュニティが育つ -
ウニティ騒動で興味が出て、5°をダウソしたのですが、c++を使ってプログラミングする方法がよくわかりません……
ゴドーのバージョンは4なのですが、その場合はGDExtension を使用してC++でのプログラミングが可能になりますか? -
みんな4の書籍急ピッチで書いてそう
-
教えてください
enemyキャラをシーンに3つ配置したとして
Mainスクリプトからその中の一つだけの変数を書き換えたいって場合
どうやってスクリプト記述するのでしょうか? -
どのタイミングでその中の一つを選ぶのか書いとかないとわからんのじゃね
-
自己解決しました。ノードを配列で確保してインデックスで選択することでいけました。
-
godotってopengl3が無いと出来ないんですかね?プロジェクト作ろうとするとエラー?が出ます
-
Godot4.xのデフォルトはVulkan 一部のintel GPUは未対応だったりドライバ不具合で動かなかったりエラーが出る
4.xの互換モード(OpenGL3)はまだ対応途中という話だったとおもう
Godot3.xはopenGLES2以上対応してるならほとんど動くはず -
俺の使ってるマイナーなエンジンも最新バージョンだとOpenGL4〜Vulkan必須なんだけど
ホントユーザーの環境のこと一切考慮してないよな
割と新しめのGPUじゃないと対応してないだろ 2Dがメインのエンジンで無駄に必須環境ハイスペ求め始めるのやめて欲しいわ -
俺の職場のPCはSandyBridgeのオンボだから
Godot4もBlenderも動かないぜ -
オンボ環境だと最近のCPUでもVulkanじゃ2D表示すらできんってこと?
そんなことある?
使ってるのF付きインテルだから試せないわ -
低スペや古い環境含めて多様な環境で動く事を期待しての汎用ゲームエンジンじゃないのか
最新ハードだけなら自前でもいいのに -
しばらくはGodot3使うほうがいいのか?
-
エンジン作る側はたぶん開発マシンぐらい定期的に更新しろやって思ってる
-
つーか古いグラボもちゃんと対応するようにしするとどうしても
新しめの技術は実装できなかったり実装がむずかしくなったりする
現代のWEB社会の何でもトレンドにのっかって目立たないすぐに埋もれてしまう風潮では
とにかく新しいものに次々対応していってまっせ!という態度をみせないとしょうがないのだ -
古いハードなら古いソフトでいいじゃない
-
Vulkanが出る前はos毎に初期化が違ってるんじゃなかったかな
今更戻したくないだろうなあ -
vulkanのランタイムは入ってるよね
インテルの場合は自分で入れなきゃ入ってないんじゃないか -
ビルドしたゲーム自体は古いPCでも動くんか?
-
別にopengl4もvulkanもそんなに新しくないだろ……
-
インテルのオンボードは個人的には対応したくないレベル
-
結局3と4どっちでやるべきなんだ?
-
4やで
すぐに3は終わっていく -
>>509
そんなにopenglのドライバだめなの? -
言い出しっぺがやるのがOSS
公式に投げたらvulkan未満対応は実質足を引っ張る方向性だからフォークしろってたぶん言われる -
俺まだ3でいいや
そんなに変わんないでしょ -
4使うわ
十年以上前のPCを使うゲーマーお客様すまない、さすがに買い替えろ -
対応してないのはwin7(8)時代のPCだろ?
そんなもん切り捨てて良いと言いたいけど
日本の同ゲユーザーは古いの使ってるの結構多いからなあ… -
久々に来たがUnityのアレでもっと伸びてるかと思ったの
-
この板自体が元々過疎で今は5ch離れも加速してるからね
-
交流はみんなメインはDiscordだろ
-
GodotでRust使えるって説あるけど使えたとしてもあんまり使い勝手はよくない感じ?
-
>>520
使い勝手?4系は楽になってるよ
GDExtensionライブラリの再読込が治るのが4.2の予定#80284
なのでコンパイルが必要な言語では読み直しにgodotの再起動かプロジェクトのリロードが必要
3系はRef関連が複雑でなれるまで分かりづらいけどgodot側のリロード問題はない -
うすーく興味あって調べてるんだけど、アセットストアも一応あるんだね
https://docs.godoten...hat_is_assetlib.html
Unityレベルに賑わったら強くなるだろうなぁ -
アセットクリエイターは儲けたいだろうからウニほど盛り上がらないだろうねえ
-
Godotハンブルバンドルに登場20アイテムがUS$25.62
https://www.humblebu...ot-4-encore-software -
C#は慣れてるけどUnityすら満足に触ったことのない初心者の俺が来ました
とりあえず2Dゲームが作りたくてノードから理解を進めてるけどなかなか取っ付きにくいね
しばらくはスレを眺めるだけになりそうだけど困ったら助言をよろしくオメガいします -
スレタイが小文字だから目立たないじゃないか
Godot Engineでなきゃ -
UNITYでいうプレファブがGODOTではシーンになるっていうのを見た。
ということは現在のシーンにシーンを呼び出すってことだよね。
つまりキャラをインスタンチエイトでどんどn増産してくとシーンだらけになっちゃうってこと? -
>>529
tscnファイルはシーンだから中身がキャラでもシーンでインスタンス化して使える
PackedSceneクラスを使うとノードをpackしてファイルに保存したりもできるので
ツリーの一部を編集してシーンファイルに保存するエディタスクリプトも書ける -
同じOSSのBlenderの有料アドオンは結構繁盛しているし大丈夫なんじゃない?
-
使うだけで金を取られるMayaの対抗としてのBlenderと
比べてunityとUE5は使うだけなら無料だから盛り上がりは
どうしても違うかと -
>>531
シーンをインスタンス化ってのがよくわからないというかピンとこないんだよね
例えば現在のシーンが青色の背景だとした場合
黄色の背景のシーンを呼び出したらどうなるの
混ざって緑色の背景になるってこと? -
シーンの中身次第
インスタンス化したシーンをツリーに追加すると今のシーンの中に組み込める
手でシーンツリーを作るのと同じだけど何度も使うようなキャラなんかは別ファイルのシーンにしておく
gltfファイルをインポートするとコレもシーンになるのでパーツとして考えると良い -
インスタンス化という名前の通りクラスのインスタンス化と同じです
-
>>535
せっかく詳しく答えてもらってるのに全然理解できない…
なぜUNITYみたくオブジェクトじゃなくてシーンなのかがわからない
なんか必要性があってこういう仕様になってるってことだよね
こういうのは頭で考えるより実際に触ってみたほうが早いかもしれないね -
Unityのシーンを忘れてGodotではオブジェクトもシーンと呼ぶと思った方がいい
-
シーンっていうのはオブジェクトのグループみたいなもんで
Unityのそれとは違う感じだね
シーンというよりクラスに近い認識 -
シーンはノードの集合を一つのファイルに保存したもの。
上位のシーンの下に部品として他のシーンをぶら下げられる感じ。ぶっちゃけ触ればわかる。 -
11月予定のGodot 4.2から、プロジェクトフォルダの色分けが正式対応になったんやね(UnityのRainbow Foldersみたいなやつ)
https://github.com/g...ine/godot/pull/80440
なにげに嬉しい -
godot-rustで3系から4系に移植してるけど結構違うのね
-
2Dやりたい人がチラホラいるようだがこれじゃなくてelectron+WebGLで十分じゃないの
それならスマホだろうがPCだろうが何でも対応できるし
大ヒット作ヴァンサバもそうやってるよ -
どこからelectronが出てきたの?godotってjsじゃないでしょ
そう思ったならお前が勝手にそうすればいいじゃんって話
これだから自己顕示欲マンは -
PixiJSとかBabylon.jsならまだしもWebGL書くのどれだけ大変か分かってないのは流石にエアプだろ
-
2Dならsdlやdxlibでいい気はする
electronはいらんけど -
エディッタがあるのがゲームエンジンのいいところだしな
-
ヴァンサバがWebベースからネイティブに移行して劇的に軽くなったしな
不要なボトルネックは作りたくない -
どのゲームが何で作られてるかってどうやって調べるの?
-
クレジット表記とかですかね……
-
いくら2Dとはいえ今時エディタなし環境は流石に効率が…
-
例えばsdlで作るとしても全部コードベースじゃなくてtiledやldtk使えばグラフィカルにできる
内蔵のエディタとどっちがいいかは一長一短
連携がいいのは内蔵だけど外付けだと自分が気に入ったエディタ使える -
タイルエディタは今時ですらないが
話通じとらんな -
godotで作る2Dで本格的なものがいるとはとても思えんが
-
お?ゲーム作る時間も惜しんでレスバか?いいねえ
-
どのエンジン信仰するにしても
スレ違いで喚くようにはなりたくないものだ -
SDL使うならRayLibの方が良さそうだけど
-
単にエディタとだけ書かれるとテキストエディタかと思う
-
レベルエディタなしではなにもできないのは
流石に問題あるんじゃないかと思う私は老害かな -
単に無意味に時間を浪費するってだけの話でしょ
-
俺俺エディタ使ってるやつでちゃんと作品として完成度高いの稀じゃね
勿論Noitaとかサクナヒメみたいなケースはあるけど、自分の実装ベースで頑張りを評価しちゃうから相対的にしょぼいか遠回りが多い -
アセットも同じだけど、結局エンジンでは自分のやりたいことが出来ないから自前でつくる!って話だね
-
いくらgodotスレが過疎ってるからって
だらだらgodotと関係ない話しなくていいよ
雑談スレですればいい -
Unity、UE以外のゲームエンジン・ライブラリ総合
https://mevius.5ch.n.../gamedev/1695665257/ -
ツクールとかじゃなく、ある程度のプログラミング言語が使える汎用ゲームエンジンでやりたいことができないって相当特殊な実装を要するか、宗教上の理由か?
-
Godotの話とはズレるからほどほどにしとき
本当に雑談スレのはなしだから -
そう思うなら違う話題した方が早いよ。話題についていけず消えていくから
-
自己顕示欲マンは注意されても
反省したら負けの精神だから質悪いよなぁ -
じゃあ俺が
Unityではロックマンの真似事ゲームを1ステージ分作ってみたくらいは勉強したんだけど例の騒ぎでGodotに移行するつもり
これから始めるなら4.1と3.5LTSどっちがいいかな?
とりあえず両方DLして4.1動かしてみてる -
Unityから来てGodot4始めたが
コードの記法が3xからいくつか変わってるんで
最初は変更点を確認しながら作った
そこ乗り越えたら特に問題はなさそうと思っている -
すぐに完成させたいなら3で
じっくり使っていく予定なら4じゃないかな -
よし4でチマチマいこう
みんなありがと -
4でアニメーションの挙動が変わってるのな
アニメーションが終わると元の値に戻るから色々やり直しだ -
公式サイトが攻撃受けてるっぽい?
-
質問です
プレイヤーオブジェクト上にマウスがあるときにデバッグ表示をするだけのプログラムなのですが
デバッグ表示の順番が
「プレイヤースクリプトから呼び出し」
「エネミースクリプトから呼び出し」
となってしまいます。左上のシーンツリーの順番を逆にしても結果が同じです。
この呼び出される順番はどのようにして決まるのでしょうか?順番を指定する方法はありますか?
Player.gd(プレイヤースクリプト)
func _on_mouse_entered():
print("プレイヤースクリプトから呼び出し")
Enemy.gd(エネミースクリプト)
func _on_player_mouse_entered():
print("エネミースクリプトから呼び出し") -
質問です
プレイヤーオブジェクト上にマウスがあるときにデバッグ表示をするだけのプログラムなのですが
デバッグ表示の順番が
「プレイヤースクリプトから呼び出し」
「エネミースクリプトから呼び出し」
となってしまいます。左上のシーンツリーの順番を逆にしても結果が同じです。
この呼び出される順番はどのようにして決まるのでしょうか?順番を指定する方法はありますか?
Player.gd(プレイヤースクリプト)
func _on_mouse_entered():
print("プレイヤースクリプトから呼び出し")
Enemy.gd(エネミースクリプト)
func _on_player_mouse_entered():
print("エネミースクリプトから呼び出し") -
おっしゃる通り2つシグナル繋いでます
順番はかえれないのですね
ありがとうございます。 -
繋いだ順じゃないの?と試してみたら
インスペクタのノードのシグナルから設定すると確かによく分からない順番になるな。(法則性はあるようだが)
ただし、コードからconnect()を使えば繋いだ順に呼び出されるっぽい。 -
インスペクタでシグナルを設定するとVMapに入れて管理され、中身はキーでソートされているようなので
決まった順に呼び出されるが入れた順ではない
connectするとリストに順に入れて見つかった順に呼び出すので入れた順で呼ばれる -
godot始めたばかりだけど4.0でコマンド変更がたくさんあるみたいで混乱するね
-
質問させてください
godotにGPS locationの機能っていつか追加予定があるかわかりますか??
ぐぐると、個人?のgithub上にpluginはありますがいつか公式でサポートされるか知りたいです -
https://github.com/g...ine/godot/pull/47702
でGPS location のPR出した人がいるけどコアには入れないそうだ
プラグインでやれとのこと
公式でAndroidプラグインとか出してたっけ? -
586です
ありがとうございます -
ウニの規約再修正でGodot見に来たけどウニに帰っていく人も多そうだな
-
元凶追い出したのはいいけど
結局あの騒動のおかげで簡単に信用できなくなったからしばらくGodot使うよ
2Dに関してはUnityあんまり使いやすくないし -
残るから追い出せてないよ
-
お偉いさんのポストから退くだけか ややこしいな
残るならなおさら戻るの嫌だわ… -
株不正取引してた幹部勢軒並みクビにする必要あるけど、
それはそれでUnity終わりそうだからなぁ… -
すみません質問させてください。オブジェクト生成の手順が以下のように記述が必要なようですが、
例えば自身の子ではなく生成先をほかノードの子にしたい場合ってどういうふうにするのでしょうか?
var mob=Mob.instantiate()
add_child(mob) -
親とするオブジェクトを get_node とかで取得しておいて
parent.add_child(mob) -
>>595
ありがとうございます! -
度々すみません。オブジェクト(シーン)をFor文で複数生成したところ1つめはmob(シーンで作った名前)ですが2つ目以降名前が@Node2D@2、@Node2D@3といった感じになるのですが、
これってあとあと当たり判定処理とかで「相手の名前がmobだったら〜する」みたいなことってやりにくいですよね?
生成時に名前を.name=”mob”+str(変数カウント+1)みたいにリネームしておくみたいな方法で対処するんでしょうか?
それともどこかに元の名前のプロパティが存在するんでしょうか? -
>>597
グループやclass_nameで判定することがほとんどなので杞憂だと思います -
>>598
グループというのがあるんですね。class_nameってNode2Dがそれなのでしょうか。
クラスの知識がなくてまだよく理解できないと思うので先にグループ調べてみたいと思います。
ありがとうございます! -
4.2まだベータだけどOpenGLにシャドウ対応してるじゃん
やっと俺の古いパソコンでもGodot使えるわ -
UNITYから来たんですけど
GODOTってオブジェクト(AREA2Dとか)に対して貼れるスクリプトの数は一つと決まってますよね?
オブジェクトに共通スクリプトやコントローラースクリプトやその他なんかしら機能するスクリプトとかを
複数つけたいときってあると思うんですがそういうときどう対処するんでしょうか? -
>>601
全共通はシングルトンで指定したスクリプトに定義
https://docs.godoten...letons_autoload.html
部分共通はそれ用のシーンをnodeとかnode2dとかで作ってスクリプトアタッチしたものを使いたいシーンで読み込めば良いと思う -
あなるほど 部分共通はオブジェクトの子にするってことなのですね
シングルトンはゲームのスコアとかに使えるアレですね
ありがとうございます -
みなさん、こんばんにちGodot!
ウニティ騒動で興味が出て最近使い始めたものです
私の悩みは、アドチャイルドしたシーンをプロセスアップデート&ドロー(描画)させずにメモリ保持する方法についてです。
まだ使い回しそうなシーンをフリーしてしまうとメモリの再確保等が煩わしそうなので、アドチャイルドで実体を保持させたままルートノードに他のシーンをアドしたりしなかったりしつつ、不活性にしておきたいそのシーンだけは更新等させない方法はございますか?
私のオツムでパッと思いつく感じだと、_prosess関数内部にenumwaitingといった感じのマッチ分岐を作る、という方法しか出てこないのですが……
これではシーンのオブジェクト等は描画されてしまうはずです(`・ω・´)
どうすればいいのでしょうか教えてください -
いろいろやり方はあるけどremove_childでツリーから削除するのが楽
https://docs.godoten...scenes_manually.html -
remove_childでシーン上から消すことが出来ました\(^o^)/
消したシーンを配列で管理して、戻すことにも成功しました!
自分が欲しかった関数はこれです
ありがとう -
4.1.2でDecalのAlbedoにAtlasTextureからRegionを指定しても全体が表示されてしまうんやけど
atlasには対応してないんかな -
GODOTでインプットキーマップを設定して、それをすべてのプロジェクトで使える用にする方法はありますか?
現状やりかたがわからずプロジェクト作るごとにキー設定を毎回やりなおしてるので手間に感じています。 -
そんなにポコポコ新プロジェクト立ち上げるものなのかとも思うが、
まあ単純に project.godot をテキストエディタで開いてコピペすればいい。 -
>>610
キー操作をWASDでやりたいのと、まだプログラミング練習中でして
毎日新しいプロジェクト立ち上げて小さなテストをやってます。
教えていただいた方法でキー操作も移すことに成功しました。
これは便利ですね。ありがとうございます! -
シングルトンにスクリプト指定するのとスクリプト持たせたシーンを指定する違いって何?
参考探してたら稀に後者のパターンがあるから気になった -
https://docs.godoten...toload.html#autoload
スクリプトのみの時は自動的にNodeにアタッチされてrootにぶら下げる。
シーンの時はそのままrootにぶら下げる。 -
FEZのようなゲームを作りたいと思っていて、UnityとGodotのどちらで作るか迷っています
FEZはこんなゲームです
https://www.youtube..../watch?v=4KzrIlt1Q5k
これを作るとしてどっちが良いですか?
Unityだとエンジン側の都合で開発に困ることはなさそうという印象があって
本当なら迷う理由がないのですが、最近の料金プラン騒動でGodotが選択肢に浮上している状態です
Godotでも作れそうでしょうか? -
UEかな
フォトナに近いから相性良いと思う -
UEとかよっぽどハイスぺなPC持ってないとまともに開発できんやろ
-
Godotの由来がゴドーを待ちながらなのは分かるけどなんでゴドーを待ちながらにしたのかがどこにも載ってない
-
公式のデスコードとかで聞いたらいいじゃない
-
よく知らんけど
https://godotengine....odot-history-images/
>We knew it would take a long time, so we used a name based on a play by Samuel Becket to represent that feeling. -
ゴドーってドラクエに居そうな名前だなと思ってググったらなぜかFF7に居た
-
>>619
なるほど!ありがとう!! -
日本的に言えば賽の河原の地蔵菩薩みたいなものか
-
完成しないことを示唆するような名前なの
なんか縁起悪くないっすか -
>>623
ウォルト・ディズニー的に捉えれば良い言葉なのかな? -
手を出すかどうか気になりつつまだ日本語解説少なくて
躊躇してるところで
kindleの99円読み放題で見かけた「Godotかんたん入門」
が気になってるんだけど、ズブの素人が読んで
godot判るようになるかな? -
手を出すかどうか気になりつつまだ日本語解説少なくて
躊躇してるところで
kindleの99円読み放題で見かけた「Godotかんたん入門」
が気になってるんだけど、ズブの素人が読んで
godot判るようになるかな? -
Unityとか他のゲームエンジンについてある程度知ってる
プログラミングわかる
英語わかる
これなら本なんか読まなくても余裕だけど
全部わからないならそんな質問してる時点でおそらくNOだ -
Unityよりちゃんとプログラム書かなきゃいけない割合多いよ
-
敵のAIのチュートリアル動画で、索敵エリアに入ったらbodyを変数に入れて
if player != null~ みたいにnullかどうかで制御するやり方を見かけるんですが、
これは普通にフラグの変数のtrue/falseを切り替えるやり方と比べてメリットとかあるんでしょうか? -
技術書展にgodot本いくつか出てたけどどうなの?
-
>>629
メリットと言えばbodyを変数に保持する事で衝突先を使い回せる事と、bodyの保持変数を用意するならわざわざフラグ変数用意しなくても良いことぐらいじゃね
処理が複雑になるようならフラグ変数で条件管理した方が分かりやすいかもだけど -
>>629
やっぱりそういう感じなんですね。ありがとうございます
自分のスクリプトなのにboolじゃないとすぐ混乱するのでフラグ方式じゃないと無理なわけですが・・・
また別のチュートリアルでもbody格納してたので海外では一般的なんですかね -
普通というかチュートリアルだからシンプルにしてるのかもね
俺は逆にフラグやステートで混乱する事多いわ
命名規則適当だし追加すればする程どれが何を意味してるのか曖昧になってしまう -
Godot 4.2が今日リリースしました!
https://godotengine....-2-arrives-in-style/ -
ほうほう、どれどれ・・・
-
Godotのアプデのたび思うことだが
Godot サイズちっちゃwww -
>>629の質問した者です
areaでplayerを検出して変数に格納すると、processで変数.positionなどを追跡できるということをやっと知りました
get_nodeいらずじゃん・・・こういう基礎っぽいテク重要だなぁ -
これマジでいいエンジンだね
敷居が低いし
もっと流行っていいのに -
Unity6が期待外れすぎて今こっち試してる
簡単すぎて逆に怖いんだが
Unityで苦労してたのはなんだったんだ -
ちなC#。
おま環かもしれんがgoスクリプトは補完が効かないんで一回触ってやめた。 -
スクリプト言語の最大のメリットはevalのdslだと思ってる
c#だとその辺りはなかなかめんどくさい -
結構C#で使えない機能あるんだな
あとVisualStudioのデバッガ動かねえの地味に困る
調べてもC#の情報ほとんどないのな -
GDExtension経由で使えない機能そんなにあるかな
callable.bindは4.2で実装されたようだ
使ってるのはgodot-rustだけど -
GDScriptは使ってて楽だが負荷的に基本C#一択らしいんで、
C#拡充は割と重要ではある -
なんか文句ばっか言ってる気もするので
Unity勢としてGodotを誉めさせてくれ
・判定デバッグ表示が標準!すげえ!
・ヒエラルキーアイコン区別が標準!すげえ!
・BGM区間リピートが標準!すげえ!
Godoterには信じられないかもしれないが、Unityでやろうとすると全部外部アセット(もしくは自力)なんだぜ・・
よく比較で「Unityはアセットが充実」って言われるけど、こういう意味も含むんだよ・・ -
なんでそんな優れてるのにUnityより出てるゲーム少ないのん?
-
ハイパーカジュアルなんてこれ使えばいいのになんでUnity使ってたのん?
-
まぁgodotが使いやすくなってきたのもここ最近だしな
-
ハイパーカジュアルならさらに手軽がGDevelopでじゅうぶん
簡単なゲームなら5分で完成させられる
なんならAI自動作成機能使ってグラフィックだけ差し替えれば1分で作れる -
>>650
じゃあなんでこの世のハイパーカジュアルがGodot使わないのよ -
たしかに日本語だけで生活できるならバイリンガルトリリンガルを目指す必要はないもんな。
-
個人ならともかく法人はそうそう動けんし。
Event,Collision,StateMachineBehaviourでバラバラ(Unity)だったのが
Signal一本で管理できるの楽だな。
公式が「C#でメソッド自動生成できないのはバグだよ」って言ってるので
次バージョンあたりで直ってほしい。まあそれくらい自分で書くけど。 -
godotみたいな3番手のエンジン使うやつは分散型SNSが好きな層と同じでマイオナ厨だから
ハイカジ作るやつはUnityに流れるんだよ -
Unityがちゃんとしてれば大々的に注目されることはなかったろうけど
ちゃんとしてなかったからこうなったわけで -
Unityエバンジェリストたちの更新も事件で減ってから戻った感じがしない
こっちの記事はぽつぽつ増えてる感ある -
話題になるのは良いけど結局キュレーションサイトの初心者向け焼き増し記事ばかりになるだけなのがなぁ
-
結局いちばんUnityが使いやすいなになってると思う
今回のCEDECでもGodotの話1ミリもしてないし -
Unityだってキュレーションの焼き増し記事バリバリだし
初心者向けがでてナンボ
いまどき選択と集中なんて考えてたら足元掬われる -
焼き増しばかりで発展が無いのがね
話題だけで持続がない -
三か月じゃ変わらんだろ
今作ってるのが終わらないと動きようがない -
まあgodotの場合フォーラムと公式ドキュメントで大体解決するし
-
unityだと触るの億劫だなぁと感じるときでもgodotなら触れるとかそういうパターンありますかね?
軽量でエディタが統合されているのが魅力ですよね -
Unity騒動があって注目されたけど、広まることなく終わりそうだな
理由はGodotの仕事が無いから
仕事の無いエンジンは流行らない -
チュートリアル思ったよりすんなりいけた。
ver3→4で大分使いやすくなったらしい。
今のところ引っかかったのは2つ。
1 ノードパスのユニーク化はアイコン表示(%)されるが、プロパティのユニーク化にはなく、確認が面倒。
2 シーン(ヒエラルキー)内の子シーン非表示にしても物理判定が残る。見えないキャラに当たる。なんでや。
間違ってたら訂正よろ -
とりあえずgodotでリハビリしてく
情報量少なくてunityに浮気してたんだけど、やっぱもたつくのが辛い -
Vulkanバックエンドのパフォーマンス最適化にGoogleが開発協力するらしいので
今までより軽くなることを期待したいところ
結果は蓋を開けてみるまで分からないけど -
unityとの違いは学習リソースや仕事の有無だけど、godotでの仕事とかあるもの?
ゲーム完成しないで仕事なんて考える必要がないのだけど。 -
仕事ならUnityかUEだね
同人系である程度知識がある人なら扱いやすいだろうけど -
まあ潰しというのも変だけど気になる人はC#とかでやればいいんでないの?
実行速度の関係とかそういうのはちょっと自分は分らんけど -
どもです
ゲーム完成させることが目的なんでgodotに戻ります
完成させなきゃ仕事もないだろうし -
1つのゲームどのくらいで完成させてますか?
大作は完成しないので2,3日が理想ではありますけど。 -
godotでできないことってあるのかな?
厳密にはできないというか、アセットなどの手助けがないということかもしれないです -
Unityに往くことにした
godotを学んで一本作ってもその先がないのはきつい
自分でゲーム売って稼げるのは一握りだし -
就職とか案件?
-
そうだね
稼げなくてもいいっていう完全に遊びならなんでもいいけど -
ゲーム売れなくてもチュートブログとかやってる人は、(クラウドソーシング介さずに)自分で案件とか取ってそうですよね
-
godotのdiscordとか行けばインディーゲーの案件割と出てるけどね
英語必須だが -
ま、稼げるように頑張ろう
godotならカジュアル限定で -
godotって日本語情報はホントないですよね
英語の動画見てなんとなくでやっていく感じ
イモムシが浮島に糸飛ばして、そこを登っていく仕組み
line2dを使うみたい -
普段仕事でPython使ってるからGDScriptがめちゃ快適なんだけどやっぱパフォーマンス突き詰めていくとC#なんか…
-
4系なら型アノテーションさえ付けていればGDScriptもC#もそんなに変わらなくなってきてるよ。パフォーマンス突き詰めるならC++だね。
-
godotの3d商用ゲームってある?
2d向けエンジンよね どちらかといえば -
4から3Dもがんばってるので好ご期待
-
せやけど、、、
-
まあエンジンにこだわる必要はないよね
unityのアセットの多さはメリットだけど、それ使いこなすのも大変だし -
>>688
わぁきれい -
完成させたことない人は何のジャンルがオススメ?
2dの落ちるだけアクションに取り掛かってる -
完成というのはどこまで作ることなのか分からないけどゲームとしての体裁を作り上げたことがないのであればまずはテトリスでいいから模倣で一通り作ってみるといいと思う
ゲームが始まって終わるまで作ったあとスコア表示、タイトルやハイスコアなどの別画面をどうするのかとか、実際別画面作ったらその画面遷移も必要になったりする
ハイスコアはセーブしないといけないなどゲームそのものではない周りの構築が出てくる
で、そういうのを一度やっておけば使い回せるしそのあと作り込みもできる
ゲームを作りたいならメイン画面だけ手をつければいいし、完成させたいなら先に周囲を固めておいたほうがいいと思う -
品質が悪くとも遊べる状態なら完成と考える
品質よりもまず完成させることだろうけど長年できてないね
やっぱりコアだけに集中したほうがいいね
機能つけすぎず -
RPG作ってたけどやっぱむずい
godotに限らないけど、こういう仕組みはこうやってコード組むのが最適解ってのが分かってないと
自分流で組んでると規模が大きくなるにつれてスパゲティーコード化してぐっちゃぐちゃになるね
で、作り進めるのが困難になって挫折しそう -
ある程度勝手がわかった後に一から作り直せるかどうかよね
それか最初から思ったもの全部搭載するんじゃなくて小さいものを完成させつつ次に進んで活かす繰り返しの方がモチベは保てそう -
あるあるだよ
完璧に綺麗なコード目指してたら終わらないし
ゲーム自体の仕様を完全に切ってから設計するなんて難しい
例外処理が多いほど面白いって言い切るプログラマもいるから -
実際に商用のゲームのプログラムしたことあるならわかるが
はっきりいって綺麗とか完璧とかめざしてたら仕事にならない
いくらモダンで美しいプログラムを書いても、それが仕様を満たす動作をしない
つまり金にならないなら、ただのゴミプログラムにしかならない
だから、ごく一部の超一流の会社をのぞき、商用ゲームでつかわれてるコードは
クソみたいなスパゲティコードのほうがはるかに多い -
綺麗で完璧なのを目指すの自体は姿勢として正しい
優先順位としては仕様を満たしたりゲームとしての面白さの方が上ってだけ
ゲームならではかもしれないけどね -
doomやquakeのソースは整然として完璧に見えたけどな
-
ジョン・カーマック級ならな
草野球してる人に大谷翔平を目指せって言ってるようなもの 目指すだけならできるが挫折するような事はいえないよ
まぁ外国人の方がソースは綺麗で勉強になるな -
自分が遊びたいものを作るのが一番だな
-
シンプルなアクションゲームであっても、なにか1つ独自要素を入れたいんだけど、斬新な要素考えるコツとかあるかな?
それが面白いかどうかはどうだっていい 新しいことをやってみたいだけ -
新規開拓は先進的な考え方が求められる
なにか新しいことをやりたいのにその方法を他人に聞く時点で遅れを取ってる
まあ、ひとつ言えることはとにかくひたすら大量にアイデアを捻出して消去法で残ったものを採用する -
一言で言えばサンコーレアモノショップ方式だな
-
実戦空手道とブーメランを組み合わせた全く新しい格闘技みたいな斬新さ?
それでいいなら友達と酒でも飲んで酔っ払って考えるのがいい -
うん、pinterestでも見まくる
-
2D横スクロールアクションでなんか微妙に鬱陶しい問題で困ってます
プレイヤーをY120の位置にセットしてるのに実際着地したY座標は119.9989とかになって、(毎回ちょっと変わる)
シーン実行時に is_on_floor()がfalseで開始されてしまうので、空中にいることになって
いきなり着地モーションから始まって見た目変になっちゃうんです
onreadyでglobal_positionを設定しても毎回微妙にY座標が違うので意味無し・・・
実際のステージ開始時は画面外から走ってくるとかの演出でごまかすというアイデアも考えてますが、
なんかモヤるので普通にニュートラルな立ち状態から始まる方法は何かないでしょうか? -
画面を暗くしておいて少しだけ上から落下して床に立ってから画面をフェードインさせるとかじゃダメなの?
-
公開出来るサイトで大きなとこって
itchになるのかな? -
>>709
AnimationPlayerで変な設定してるとかじゃね?
_init()でself.position = int(round(self.position))とself.global_position = int(round(self.global_position))実行するとかやっても意味無いかな
_onready()でやっても無理なら意味無いか -
Godotは知恵遅れの馬鹿しか使ってないゴミゲームエンジン
-
ヘイトスピーチ禁止!
-
エンジンの差異というのは重要ではない気がする
もちろんunityのほうが機能は多いだろうけど、そのせいでとっつきにくさもあるわけで -
日本語なら無難にふりーむとか?
審査に時間かかってレスポンス悪いのはちょっとあれだけどなんだかんだ人はいると思う
ブラウザゲームとか具合をすぐ確かめたい時はitchioとかのほうが絶対楽 -
>>715
俺もそう思ってたが機能だけじゃなく情報量とかコミュニティがUnityやUEと比べるとカス過ぎて逆にこっちのがとっつきにくいまである
開発元も弱いし将来性もないしUnityの一件で人口増えるかと思ったがやっぱ過疎だしgodotは負けエンジンだわ・・・と感じてる
ただ、ちゃんとしたゲーム作る人には向いてないけどやっつけクソゲーつくるエンジンとしてはアリかも -
日本では過疎かも 海外では良くわからんがフォーラムは賑わってるね
軽いのでモック作るのにはいいかも -
日本語の情報量の少なさは確かに
将来性ってのは良くわからん
医療とか建築とか色んな分野で使えるのはわかるが、自分がそこまで求めているかというと -
海外は未完成のものでも自分たちで鍛え上げるって考え
日本はある程度完成されたものしか手を出さない
考え方というか文化の違いだな
Unityの初期にいわれた事のまんま
そんなに日本語資料はすぐ揃うものではないよ
技術書展で3つくらいは出てた気はするが -
日本語の情報量が少ないと思ったらまず自分で出すのじゃ
クレクレ厨はどのコミュでも嫌われる -
オープンソースなんだから自分で読めばいいよ
行数にしてもせいぜい十数万行ぐらいだろ
数週間で全部読んで把握できるよ -
まあ頑張ろう 作ろう
-
>>724
物理演算ありきのゲーム性なの? -
ハードルは高いよねgodotは
拘りなければ素直にunity使ったほうが幸せになれると思う
自分で言うのもなんだけどgodotに手を出す人ってマイオナをはじめどっか拗らせてるところあるでしょ -
俺はオープンソース中毒拗らせてる
SNSはMisskey、メールはProtonMail、検索はSearX
ビックテック滅びろ😡
💢😠🤜💥🔲💦💥💥
☝俺 ☝unity -
ただ軽いから使ってる
unityはリフレッシュとかでいちいち中断されるじゃん? -
浮動小数点数についてはgodotドキュメントにfloatの項目があるよ
ごく一般的な内容だけど
コンピューターである以上は浮動小数点数に誤差は付きものなので許容誤差を見積もりながらコードを書くしかないのでは -
godotで3dゲームという困難な道を行くのもなんか興奮する、、、
unityはね良いエンジンなんだろうけど、シンプルと程遠くて疲れる -
制限は悪いものではないと思う
-
学習リソースが多いのはもちろんunityだけど、自分にとってはその部分が重要だったかな 今のとこ
少し前のcore i5にgtxだし、pcのスペックも悪くはないけどね -
学習リソースもアセットも多いunityを大人しく使ってた方がいいのは分かってるけど新しいものに手出すのが大好きで…
-
あ、あと英語に慣れるいい機会というのも理由としてある
-
前にも書いたけどevalでdslはスクリプト言語最大のメリットだよ
-
>>709
ChractorBody2D+CollisionShape2D(Capsulesh)でやってみた
地面はStaticBody2D+Rectangle
Readyでコンソールに座標出しても誤差ないぞ
コリジョンのサイズ設定とかどうよ? -
モーション変えるコードをmove_and_slide()の後に書けばいいんじゃないの?
is_on_floor()の値はスライド後に設定される筈 -
characterbody2dに摩擦はないのかな?
壁ひっつきを作りたい
リジッドボディをキャラクターに使うといろいろ問題がでそうで -
あー、でもスクリプトでコントロールすることを考えると、レイで壁を検知して落下を止めるってのがいいのかも
-
is_on_wall()とかじゃダメなん?
-
つまらないことに色々と続けてアドバイスを頂けたようで、なんかすみません・・・
色々やってみたところ、physics_processの1行目にmove_and_slide()を書き、
StaticBodyの上にキャラを乗せておくと普通に立ちポーズのまま開始できました。
しかし背景はタイルマップで作りたいのですが、タイルの上だとどうやっても着地が出ておかしくなります。
タイルのコリジョンは1ピクセルでスナップして設定して、ツール上でもピクセルスナップで置いてズレは無いはずで、
プレイヤー位置:(87, 122) false ← if not is_on_floor():でtrueになる空中判定変数をonreadyでfaiseにしておいても
(12) プレイヤー位置:(87, 122) true ←結局着地しちゃう
(94) プレイヤー位置:(87, 122) false
--- Debugging process stopped
Yが一致しててもおかしいのでさすがに諦めます・・・
しかし、スタート位置のタイルマップにStaticBodyを重ねて置いて透明にすれば問題無しです。解決しました! -
関係ないけどパイソンってこう構造が見づらくない?
かっこが無いからかも -
スクリプトで追加したノードと、シーンウインドウ上で追加したノードの、検索に反応する挙動が違ってしまい困っています
スクリプトで追加したノードをfind_childで取得したいのですが、それが検索に引っかかってくれません
デバッガーでは子ノードの配列に当該ノードの存在を確認し、検索名も合致しており、find_child関数が他のノードを取得出来ることも確認いたしました
しかしスクリプトで追加したノードのみ取得してくれません
get_childrenで配列を取得し引数に数字を与えると目当てのノードは取得できるのですが、正直この方法は使いたくありません
じょれはバグなのでしょうか?
解決方法がわかる方いらっしゃいますでしょうか?
どうかお願いいたします
簡単な図を載せておきます
Main Node◇←スクリプト
+Stage Node(動的に追加する)
+Player Node
+Enemy Node(動的に追加する)
+Timer Node
メインノードにアタッチしたスクリプトからステージノードやエネミーノードを動的に追加削除して使用します
タイマープレーヤー等は名前を合致させれば取得できるのですが、ステージエネミーは名前を合致させても取得できません -
>>745
第3引数をfalseにする -
連投すまそ
godotにもgmクラスみたいな概念はあるんですかね?
uiやゲームの進行を管理するクラス
これは開発環境にかかわらず、プログラミングにおけるパターンなんだろうけど -
あるよ。AutoLoad。
-
同じスクリプト言語ならjavascript系を採用して欲しかったよなあ
ツクールやgamemakerはその方向なのに -
完成させるなら見た目とか妥協しないと駄目だね
ui周りとかこだわりだすときりがない -
godotって他のノードはget_node使わないと駄目な感じかな?
unityみたいにpublicして、インスペクタに指定することとか出来ない?
逆にget_nodeのメリットとかあるのかな?慣れるしかないか -
クレクレなってた
悪いね -
検索してもなかなか見つからないことはgptに聞くといいね
答えが見つかりやすい -
ノードの取得方法なんですが、get_treeはシーンツリー全体を取得ということですか?
つまり、そのプロジェクトに含まれるルートのシーンを最上位とした、シーン全体の取得
get_tree().get_root()
とすればget_rootは1つのシーンの最上位という意味合いになるんでしょうか
ここは調べてもわからなかった -
Godot Japan User Community
https://twitter.com/godot_jp
ここでDiscordサーバーあるから分からん事聞きたいなら入ってみたらいいんじゃない?
https://twitter.com/thejimwatkins -
>>749
遅ればせながら、本当にありがとう上手くいきました!
恥ずかしながらリファレンスをよく読んでいなかったのと、オーナーという概念がある事、そしてスクリプトはオーナーを持たない事を初めて知った(◇selfでadd childする目的は…?)
こんなスパゲティ質問をサラッと答えられるイケメンになりたい -
>>759
NodePathクラスのページに書いてある
^"/root" # Equivalent to get_tree().get_root().
^"/root/Main" # If your main scene's root node were named "Main".
rootはGUIに表示されているシーンのノードの1段上の階層にあってゲームのウィンドウに相当する -
tree→root→シーンの一番上のノード、
といった構造ですよねおそらく
treeはシーンツリーのことで、シーン同士の関係図みたいなものだと理解しています
各々のシーンが持つウインドウがルートですね
この辺の図とかどこかにありますかね? -
4のドキュメントがそろうまで1年くらいスクリプトだけでゲーム作ってたけど、
戻って感じたがGodotこんなに快適だったのか
視覚的にスプライトシートから1セル切り出したり、
簡単にカメラや衝突判定が実装できるだけで天国だよ
1ドットの点やテキスト表示するだけでやたら手間がかかる短所など今考えれば些細な問題だわ -
シンプルでいいよねunityは操作覚えるだけで大変だった
-
そうなんだシンプルなんだよ
今まで商業作品作るわけでもないのに要りもしない膨大な機能を駆使しなきゃ損だと思ってややこしく考えすぎてた
ファンタジーコンソール+αぐらいの気持ちで使う方がうまく行く気がする
個人的にはコリジョン系ノードと同じくらいTimerノードが手放せないので
諸々のゲームエンジンに搭載して欲しい -
ある程度制限あるけどフリーでswitch向け出力できるようになるって
-
しかし、ゲーム完成しない、、、
完成させる力が足りない -
ゲームって何だかんだプログラム組むより素材集めがダルいよね
イメージと違ったり欲しい物がなかったりすると自作する必要出てくるし -
形とか色とか制限してる
ブロックだけ、色は黒だけとか
あとから差し替えられるし -
エンジニア寄りの人がゲーム作ろうとするとアセットで詰まるんよな
プログラム興味ないけど絵描くの好きみたいな人のほうがツクールやノベルツールでどんどんゲーム完成させるっていうね -
そうなんか
-
ノベルゲーとかツクールのシステムまんまのゲームならUI用意されてるからこだわりなければそのまま使えるけど自分でUI作ろうとするとほぼお手上げ状態
ゲームに合う素材探しもめんどくさいし見やすいUIの組み方もわからない -
まあデザイナーの才能ないからすべてオリジナルにする必要ないし、オリキャラだけオリジナルとかね?
-
素材間の絵柄やクオリティに統一感が必要だし
自キャラ、敵キャラ、背景、UI、エフェクト、タイトルロゴetc
それらすべてが調和してる必要があるので、既存の素材を使うと調整が大変だよ -
気分転換としてバックルームのモデリングしてる
-
ゲーム開発っって当初の構想を脱線しないほうがいいよね
あれもいい、これもいい となりがち
より良いと思えても後回しかな -
ボタンをクリックしたらラベルの文字を変えるって処理はできたのですが
同時に画像を変更する(ノベルゲーのキャラの立ち絵の表情を変える)って
処理はどの辺のチュートリアル読めばできるようになるんでしょうか?
シーンを作って呼び出すのがいいのか、スクリプト(今はこっち)でやればいいのかもわかりません -
>>780
シグナルじゃないですか? -
Resourceクラスを継承したオリジナルのstatus.tresを作成し、それをベースキャラクターノードの派生ノードに保持させる事で擬似的なコンポーネントパターンのようなものを実現したと思っていました
しかしこれらは設計として非常に便利なのですが、保持している変数が同じ値を参照してしまいspankbangます
そのせいで別々に実体化した敵キャラが同時に死んだり、同じタイミングでqueue_free()
されてしまい困ります
これを防ぐにはどうしたら良いのでしょうか……?
Resourceを個別に実体化する等はは可能なのでしょうか?
どうか教えていただきたいです
簡単な設計としては以下のようなものです
stats.tres
∟var hit-point
∟func Damage()→もしhit-pointがゼロになったらHP-is-ZEROをemit
∟signal HP-is-ZERO
Enemy.tscn
∟@export var stats:Resource→インスペクタ上でstats.tresをドラッグドロップ
∟func _ready()→ HP-is-ZEROをPopにコネクト
∟func Pop()→自身をqueue_free()
変数のヒットポイントは全てのEnemyインスタンスで共通してしまい、シングルトンを参照したみたいになってしまいます……orz
おそらくシグナルも同時に飛ばされている筈…… -
え?リソースを直接書き換えてるってこと?
定数データとして扱うか、
敵の数分リソース作るかじゃないの -
インスペクターでstatus.tresクリックしてResourceのresource_local_to_sceneにチェックいれてみるとか?
-
逆に見た目から作るのもありなのかな?
ホワイトボックスだと面白くないものな -
ゲームのルールが思いつかない
-
一般書にない様なニッチな本とか技術書展では結構出てるからBOOTHはマイナー技術関連の漁り場にしてる
-
確かに凄いが初心者向けの本でSwitchでゲームが動くってのは誇張表現じゃないかなと思うな
こないだ本屋でGodotの解説書が売っているの見たし流れ来てるな -
clamp関数とかprint関数とか、どの言語にでもあるような基礎的な関数?ってのは、リファレンスにはないのが普通なんですかね?
-
ここに書いてある
https://docs.godoten..._%40globalscope.html
「はじめに」にはこう書かれている
https://docs.godoten...of-the-documentation
>クラスリファレンスのドキュメントがエンジンのスクリプトエディター内から直接閲覧できるようになりました。
>すべてのクラス、関数、シグナル等の情報をここで見つけることができます。
[ヘルプを検索]を選べば検索ウインドウが開く
ショートカットはF1またはキーワード上でCtrl+Middle -
間違えたMiddleでなくてLeftだ
-
この手の数学関数とかはどこでも必須なのであるよ
-
ありがとう 頑張って完成させるど クソゲーを
-
godotに戻ってきて良かった
軽いのは正義
開発へのハードルが低くなる -
エディターの構成とかスクリプトとの連携とか全体的にGodotの方が洗練されてるんだよな
Unityはデファクトスタンダードでアセット類が多いってだけで作り的には大分とっ散らかってる -
キャラクターボディとスタティックボディの衝突シグナルはどうやれば取れますか?
ドキュメントを探してみましたがそれらしいものがリジッドボディしか見つからず困っています -
>>804
シグナルじゃなくてmove_and_なんとかの返り値や関連メソッドで判別する -
>>805
ありがとう 無事見つかりました -
他ツールでも結局最終的に頼りにしてるのは公式ドキュメントのサンプルコードな自分
個人サイトとかだと参考にはなれど権利とかライセンスがとかめんどくさくてさあ -
get_tree().paused = trueでポーズ画面作ってるんですが、get_tree().paused = falseで戻せないです
入力受付なくなるのでプロセスが止まっているらしいです
入力も受け付けなくなる感じ? -
_process()は止まるけど_input()側で入力受付出来なかったっけ
func _input(event):
if event.is_action_pressed(入力キー):
get_tree().paused = !get_tree().paused -
ありがとうございます
ポーズ画面作る場合はpausedを使うのでいいんですかね?
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready():
get_tree().paused = true
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _input(event):
if Input.is_key_pressed(KEY_A):
get_tree().paused = !get_tree().paused
print("release")
今試したんですが、インプットでも受け付けないみたいです -
>>810
すまねえこういう事だった
ノードのProcessModeがWhenPausedかAlwaysじゃなきゃ_processも_inputも止まると
https://docs.godoten...g/pausing_games.html
ちゃんと一時停止の例まで載ってた -
gptくんグーグルより的確すぎる
-
func _on_body_entered(body):
fail_text.visible = true
get_tree().paused = true
await(get_tree().create_timer(2).timeout)
get_tree().reload_current_scene()
get_tree().paused = false
衝突したときにリトライ処理をさせたいのですが、こういうコードの書き方だとシーンがリロードされたあとにbodyenterdが呼ばれるので、エラーになりますよね。
シーンがリロードされる前にポーズモードを戻したら解決ですが、シーンりろーどで単純にbodyenterd関数が破棄されると考えればいいんでしょうか?
シーン周りが難しい、、、 -
4.21になってからノード追加するときとか数秒もたつくな
-
スクリプトのついていないノードを複数取得して、同じ回転を適用するみたいなことは出来ないかな?
これは別シーンで作って呼び出す形でやるのかな?プレファブ的な -
Object.get_script でnullが返るノードを処理すればいいけど
グループに入れておい一括処理すればいいんでね -
動きは共通で、大きさだけ変えたいなんて場合は、スクリプトだけ共通にすればいい感じだね
理解 -
スクリプトからインスタンス化すると2つ目以降のノード名がへんてこになるからどうやって取得したもんかと思ってたけど
グループで行けたわ、なるほどありがとう -
ゲームエンジンってどれも似たようなもんかな
将来、ユニティに戻るかもしれんし
今は軽さ、手軽さ重視
pcもちょい古いしな(*´ω`*) -
godotってノードの一時的な無効化って出来ないのかな?
目玉マーク押すと非表示にはなるけど、コリジョンとか残ってるし -
基本的には似たようなもん
覚えた要素がアップデートで変わるだけで混乱する人も居るので人による -
動く床と壁粘着ってけっこうめんどいな
動く方向が同じだとひっついてトレなくなる -
エラーしたコード書くとウインドウがフリーズするけども、いちいち閉じるのが面倒なんですが、unityのようにエラーがあったらプレイ出来ないような設定にできますかね?
-
状況が判らないなエラーコード書いたらハイライト表示されてフリーズはしないが
-
親ノードのスクリプトから子ノードを取得して、子ノード(rigidbody2d)のメソッドを使いたいのですが、この場合はオートコンプリートは出ないものですか?(apply_impulse)
子ノードにスクリプトつけて、そこからなら効くんですが
>>827
プレイ画面のことでした
エディターのエラーを見て実行しなければいいだけなんですけどもね -
ノードをget_nodeで取得していると仮定するとこうかな
var node = get_node(path) as RigidBody2D
エラーがあっても可能な限り止まらないで動作させるポリシーらしいので
動かす動かさないは利用者に委ねられるのでしょう -
みんなgodotでシコシコどんなゲーム作ってるん?
ちなみに俺は何も作ってない -
var a : RigidBody2D
こうじゃないの
ダックタイピングしないときは型は書いた方がいい、可読性が全然違う -
短くしたかったので一行に纏めたのが良くなかった
宣言と初期設定と使用が分かれるならこんな感じ
_readyの中で型指定しても_processからは見えないから上位で型指定する
var node:RigidBody2D
func _ready()
node = get_node(path)
func _process(_delta):
node.apply_impulse(impuls) -
自分はreadyの中でよそのシーンをインスタンス化しても何故かシーンツリーに登録されないから
だんだんready使わなくなったなあ
readyは全ノード読み込み済みの最初のアップデートと云うけれど、なんか挙動が掴み切れないというか -
多分ノードツリーを変更する場合はcall_deferredを挟むのと良いのではないかな?知らんけど
-
>>836
こんな感じに書き換えたら行けましたぞ
ありがとう!
func _ready():
node = node_scene.instaniate()
get_tree().root.call_deferred("add_child, node)
ちなみにルートにぶら下げないで、単に
func _ready():
node = node_scene.instaniate()
add_child(node)
って書いても無事にインスタンス化された
ルートの準備okなタイミングがスクリプトより遅いとかそんな感じなのかな -
root配下の全ノードを処理している最中にノードの変更があった場合にどうするのが正しいのか?
ノード変更のタイミングによってノードがあったりなかったりすると不安定な挙動になる
なので確実に_readyや_process等のノード処理の完了後に動作させる為にcall_deferredを使う
add_child(node)で動くのはたまたまな可能性があるのでcall_deferredお勧め -
ソースを見てないので推測だが一般的にツリーノードは再帰処理で回しているはず
root直下のノード群は最初に取得済となって後から追加しても無視されると思われる -
>>833
ありがとう
自動型つけってこういうデメリット?があるんですね。自動で取得したノードの型まで取ってくれるわけではないのはなぜなんでしょうか。
あと、型つけ忘れたりありますが、gdscriptで型付け強制出来ますかね -
>>840
ノードの型は実行時に取得するまで判らないので編集時はコードから判断される
型指定は宣言時に自分で行う
宣言時に初期設定も終わらせるなら
var rigidbody := get_node(path) as RigidBody2D
で宣言時の型指定を省略できる
付け忘れ対策はlintの様な外部ツールを使うしかないと思う
便利機能安全機構が増えるほどプログラムサイズは大きくなり処理は重くなる
GodotEngineは軽量な点が魅力なので標準でなくて構わないと自分は思う -
>>842
調べたらプロジェクト設定 debug/gdscript/warnings/untyped_declaration を errorに設定するとエラーになるっぽい
使うならエディタ設定の型ヒントをオンにしたほうが良さそう
他にも使えそうな警告がいっぱいあった -
エディタの設定だと思ってプロジェクトの方見てなかったありがとう
-
>>842
明治してやらないと駄目なんですね そう受け入れます
untyped decralationを設定したらそうなりました
ありがとう(*´ω`*)
unityと併用すること考えたら型付けしといたほうがいいですね -
スクリプトのデフォルトコードって型付けされたものになるもんですか?
自分の環境ではならないです -
ローグライクみたいなコテコテの2DRPGならjs使えるツクールの方が向いてるんじゃないの
作るなとは言わんけどシステム的に要求が多すぎて挫折しがち -
試しに今触ってるプロジェクト設定のuntyped_declarationを変更してみたが後から変更だと修正キツイ
他のIgnoreになってる設定を有効にすると更にキツイ
自分が使うなら開発開始時にuntyped_declarationを有効にするまでかな
>>846
デフォルトコードの意味が解らんのでエスパーするが変数宣言は以下の様な書き方ができる
var a #Variant型になる
var a = 0 #Variant型になる
var a:int = 0 #int型になる
var a: = 0 #設定値の型が適用されるつまりint型になる -
型付けもライフサイクルもドキュメント見りゃ大体丁寧に書いてあるけど皆そんなドキュメント見ないのかな
-
他の言語触った事ない(GDが初めて)ならドキュメントの見方読み方もよくわかんないんじゃない
-
自分で調べられる人は質問しないから質問が多く見えるのだと思う
-
あくまで主観だけどGodotのドキュメントは他の言語に比べて大分分かりやすい方だと思う
質問多いのは構わないけど書いてあるのに読まない知らないはドキュメントが勿体ないなと -
Godotのドキュメントは読みやすいし使いやすいと思うが
使いたい関数がリファレンスに無いのかって質問にリファレンスに書いてるって答えても調べてくれないからな
調べ方を書いても反応なかったのでどうしていいか判らんな -
デフォルトコードうんぬんはエディター設定の型ヒントを追加のやつじゃないかな
スクリプトテンプレートにも型が付くようになる -
あーそういうことね完全に理解した
-
>>848
スクリプトを新規作成したときに、readyとprocessに自動的に型を指定してほしいなと できれば
しかし、gdscriptでも型付けというのはしたほうがいいんでしょうか?
そのほうがトラブルは少なそうですが -
>>857
どうも、英語情報調べてるだけじゃ分からん情報でありがたい
このスレも賑わって嬉しい
1週間程度のそんな大きくないプロジェクトなので、untyped declarationなしで、部分的に型付けを使う方式にしたいと思います
混合しないほうがいいのかもですが -
godoもなんかたまに重いことがあるな
本体とプロジェクトのサイズが小さいだけで、動作の軽快さってのはそんな変わらん? -
GDScriptは他のコンパイル言語と比べて処理速度は遅い
速度が必要な処理はC#やGDExtensionで多言語に処理を投げる
がしかし個人製作の場合はこれが問題になる事は少ないだろうと思う
プログラムは適当に書いても動くが性能を求めるなら効率の良いコードを書かなければならない
プロファイラーを使うか自前コードで計測して遅い部分を把握する
https://docs.godoten...ug/the_profiler.html
適当エスパーしとくと
_processの様な頻繁に呼ばれる個所では可能な限りループ処理はしない
リソースは動的に呼び出さない参照は最短で最低限にする
高性能なGPUを持ってなく機能も使う必要がないならレンダリング-レンダラーを下位の物に下げると良いかもしれない -
多分エディタの動作の話だと思う
-
エディタだと大本の環境依存すぎて難しいな不便だけど自動補完を切るとかかな?
-
環境の話題ついでだけどAndroidでもRaspberryPiでも動くから
重くて不便な環境で嫌気差す可能性もあるが
安上りな教育環境として利用できるかもしれないと思いましたまる -
バージョン4になってから微妙にもたつく様になったと思う
unityとエディタの重さ自体は変わらん感じ
プロジェクトの小ささはいいけどね -
gptがコードの間違い探してくれるのは助かる
無能だからコードのエラーが解決出来ない -
エディタはUIを詰めれる感じはするね
Unityからくると余白の大きさにびっくりする
あとアニメ画面が操作メニューと設定同じ位置に表示されてたり(Ver3のがマシ)
日本語表示でFPS隠れてたり -
3万円で買った6年前のThinkPadでも余裕で動く
何ならブラウザで30個タブ開いてチュートリアル動画流しながらでもギリ動く -
しかし、軽くてありがてぇ
シンプルでありがてぇ
unityはメニュー多すぎてパンクする -
staticobdyって当たり判定にはあまり使わない?
area2dのほうがそれ用のシグナル多いし
すり抜けじゃなくて、衝突はさせたい -
コリジョンマスクって衝突させるものと、衝突されるものを、双方向に指定しないと挙動がおかしくなるもの?
片方からのみ指定すると挙動がおかしい
ただ、単にすり抜けるなら分かるけど、衝突はするという
ただ、衝突の結果がおかしい -
衝突判定で使うオブジェクトの違いはここら辺読めば良いんじゃない?
https://www.reddit.c...dy2d_vs_rigidbody2d/
https://code.luasoft...d-vs-kinematicbody2d
PhysicsBodyが衝突したとき片方はMaskオンで片方はMaskオフの場合
Maskオンは接触の影響を受けMaskオフは影響を受けない(ほぼStaticBodyと同じ) -
selfで補完されるものはconstやstatic指定された静的な物でメンバーが出ないのは理由があるのだろう
ピリオド押せばメンバーは表示される
そうでなければvar _self: = selfと変数宣言して_selfでアクセスすればそれっぽい結果は得られる -
GDScriptは
ほとんどPython
でも
defではなくfunc
変数も宣言しないと使えない
この辺りはゲームエンジンに必要な
処理速度に合わせている -
Godot 2.0の頃から
ダウンロードしていたけど
Unity炎上の敵失とはいえ
5ch.netで
Godotを
議論する
時代が来るとは
驚きです。 -
個人制作レベルで速度を気にしなくてもいいかなと、今のところ考えてます
まず完成目指さないと自分は -
何故お決まりと思ったのかが疑問だがselfを使う必要はまず無い
メンバ変数のsetgetを呼び出すのに使う例と古いconnect関数を使う例くらいしか見かけない
ローカルとメンバでやむなく同名使った時くらいしか必要ないと思うしそんな事はしない方が良い -
いろんな説があると思うが自分はとりあえず動くものを完成させる派だな
最初から完璧目指すと計画変更が発生する事に耐えられなくなる -
アプリによって「マスク」の意味が
真逆だったりするのが落とし穴というか
マスク=見えるよ派
マスク=隠れるよ派 -
>>884
機能的に意味があるというより、明示的に書いておくといいみたいな話を聞いたことがあります -
Pythonにおいてはクラス変数とインスタンス変数の使い分けで使う
GDScriptは変数宣言が必要なのでPythonの例は完全には適合しない
selfを付けると明示的にメンバ変数と判るくらいのメリット
気になってスタイルガイドを読んでみたがself句の説明はないな
https://docs.godoten...ript_styleguide.html
今まできちんと読んでなかったから自分が守ってない事が沢山あるのに気が付けたのは良かった -
不完全だけど日本語のページ
https://docs.godoten...ript_styleguide.html -
godotでテンプレート化って出来ますか?
スタート画面、ゴール画面といった使い回せる部分というのはあると思うんです
エクステンション化するとなるとC言語必要かもしれないし、だいたいそこまでやらずにテンプレ化する方法あるんでしょうか?
>>889
ありがとう
あまり気にしないことにする -
シーンとスクリプト、他に使っているファイルがあるならそれもコピーすれば動くんじゃない?
AssetLibでaddonsにインストールされてるのがそんな感じだから
addonsに置かないで自前テンプレート用フォルダ作った方が管理はし易いと思う
ついでに言っておくと自前スクリプトでも継承できるから理解できるなら効果的に使える -
あー、単純にシーンを使いまわせばいいのか
ありがとう -
「新しい継承シーン」という機能もあるにはあるが、あまり素人にはお勧めできないか
-
ユニーク化を忘れてドツボに嵌る未来
-
ユニーク化?
-
area2dみたいに衝突シグナルを発生させたいけど、衝突もほしい場合って何を使うんですかね
staticbodyだと衝突シグナルがない
重力ゼロにしたrigid使ってみます -
>>897
KinematicBodyダメ? -
ありがとう
調べてみたんですがmouse_entered系しかなかったです
rigidが衝突したときにシグナル出してほしいなと -
【Godot4.x】RigidBody2Dで衝突の検知をする方法
https://2dgames.jp/g...detect-body_entered/
要点の検索キーワードでヒットするのならこれじゃね? -
スクリプトのコメントで日本語入力すると、漢字が中国語になってるのが気持ち悪いんですけど
エディター用の日本語フォントの設定ってどこにありますか? -
それが探せないなら開発ツール使えなくない?
-
>>903
「コードのフォント」以外のどこにあるのでしょうか? -
そこで使いたい日本語フォント指定すれば変わるでしょ
-
has_method・has_signalって処理重いかな
ダックタイピング慣れなくて書きたくなるんだが -
>>905
日本語フォントにするとインデントが狭くなって逆に見づらいし~・・・
と思ったのですが、ふとインデントの調整については調べてなかったと気づいてちょっとググったらすぐ出てきました・・・。
ビヘイビアという馴染みのない単語の項目はうっかり見落としておりました。
メイリオフォントにしてインデント幅とか微調整したらすごく良い感じです。
結局解決できましたので、どうもありがとうございます。
でもほんとにこんなんでエディタ使ってるのはダメだなって反省します・・・ -
言っている意味がやっと解ったわ
等幅フォントとかコーディング向けフォントとかでフォント探すと良いよ -
聞く前に調べる力は付けよう
-
ここで聞くのは調べる内に入らないのかな?
-
ricty deminishedとかsource code proとかだね
-
source code proは中華フォントで表示されるのでSource Han Code JPの方が良いと思う
パックされているから分解する必要はあるけど -
フォントどうしてたっけな〜と思って設定見たが
サイズ以外初期のままだったわ
皆わざわざ変えてんのか -
1週間で作成してるゲーム完成しなかったら仕切り直す?
いやまあ完成したけど、クソつまらない物体になる -
立ち絵の表情差分をsprite2Dで用意して素体・目・眉・口・装飾画像を子ノードで作って
変数で合成して呼び出すみたいな事ってこのソフトでできますか?
NaninovelのLayered Actorsイメージ -
godotでマグネットは簡単に作れる?
吸着と反発を作りたい -
マグネットのような物でよければ簡単
ball.apply_central_force(magnet.position - ball.position)
これだと磁力=距離なので適宜修正は必要 -
ありがとう
単純にforce系でいいのね
パチッという感触を表現するのは難しそうだけど、加速度かなそのへんは -
瞬間的に張り付く速度だとすり抜けを考慮する必要がでてくる
磁性体一つで引き寄せ不要で張り付くだけならRaycastで接触点に移動すればいい
なんだったら単純にpositionのコピーでもいい
やりたい演出で必要な処理が変わる -
https://i.imgur.com/rEFiR4H.mp4
3.5で作りかけてた見下ろし型ゲームをこりゃダメだと思って、使えるキャラ素材は使い回して
敬遠してた4.0に切り替えて2Dアクション作ろうと2か月がかりでようやく基礎がほぼできた……
崖とか壁にはみ出す影をどうにかしたかったけどクソ面倒で無理なので影は諦めたり、
見下ろし型と全然違うvelocityの制御とかに苦労しまくった
4.0から機能も全然変わってていろいろ困った
でもgodotはゲーム制作なんて初めての俺でもかなり分かりやすくてありがたい
22年前に専門学校でC++でテトリス作らされて以来だけど、こんなガンプラ感覚でちゃんとゲーム作れるのすげえ時代だわ -
凄いね自分なんか頭でっかちで手動かさないからプログラムも動かないw
便利オブジェクト並べたら動くのは確かに楽だけどC++の知識は役に立ちました?
GDScriptやクラス概念の理解には役に立ったのではと思うのですけど -
専攻外の授業だったのでC++の知識は全く覚えてなくて、
しいて言えば工業高校でやったフォートランやアセンブラで
四則演算程度の超基礎プログラミングを勉強してた記憶の方が役に立ってる気がするw
integer、real(float)、go to~ みたいな
当然オブジェクト指向云々もクラスも具体的には全然わかってないです
結局bool変数でなんとかしてるパーツばっかりですし
検索でヒントを探し出す根気とグーグル翻訳がありゃなんとかなります! -
言語違っても既に言語の基礎は習得してたって事ですね納得しました
クラスの理解なんてプロパティに値を設定できてメソッドが呼べれば十分かと
何よりもここまでやると思った所まで作る熱意が続く事が大事だと思います
元気貰えた気がしますありがとう
よし明日から頑張ろう -
モデリングの手間が少なくすむ3dゲームのアイデアとかある?
なんちゃら通路みたいなループ系はなるほどなと思った -
godotってプリミティブな図形は入ってないんですかね?
-
普通にメッシュインスタンスに入っていた
-
ちわす
ボール同士が合体する仕組みを作りたいです
例えば、1と2が衝突したら、加算されて3のボールになるという感じです
1と2は消滅します
スイカゲーム的な合体を作りたい感じですね
このとき、1か2にシグナルを仕込むのですが、両方にシグナル付けずに、片側から判断するんでしょうか? -
同じもの同士が合体しないのであれば片方からだけでもいいと思う
接触判定やシグナル送り自体は全部やって番号で合体させるかどうか判別させる方が応用は効くかも -
どうもです
共通の球体を用意しておいて、そこに共通のスクリプトをつけて、そのベースを元にして1,2,3という球体を作る感じですね
書き方はgptに聞いてみます -
ゲームサクサク作れるようになったら楽しいんだろうな
-
数字を加算するような仕組みを作る場合は、例えば1から1000まで すべての画像用意するのは大変だから、テキスト系を使うのかな
-
デザイン重視なら数字画像を用意しておいてテキストのように組み合わせる方法もあるから
-
ありがとう
数字画像はどっかから拾えばいいか
内蔵テキストを背景に組み合わせてもいいやもね -
contact monitorの設定めんどいな
設定しないとbody_enteredが効かない
うっかり -
Area2Dの衝突を即座に検知する方法ってないですか?
攻撃判定が食らい判定に重なったらダメージモーションに移行っていう当たり前のやつをやりたいんだが
ノードの移動変形が反映されて見た目では完全にパンチ食らってる状態なのに
衝突判定が更新されてなくて棒立ちのまま……っていう瞬間が1フレームだけ生まれてしまう -
https://www.gdquest....t-practices/signals/
ここに書いてることでどうにかなる? -
すごく初歩的な質問だと思うんですが、シグナルがこれで発火しないのはなぜでしょうか?
以下のコードをrigidbody2dにつけていて、staticbodyに衝突したときに発火するようにしてます
チュート見てるとコードからシグナルを使っているパターンがあるので、勉強中です
func _ready():
self.connect("body_enterd",_on_body_entered)
func _on_body_entered(body: Node) -> void:
print("hit") -
godot4だと
シグナル自身がconnectする形じゃないっけ?
hoge_signal.connect(hoge_method) -
>>937
->Area2Dの衝突を即座に検知する方法ってないですか?
無い、Area2Dは物理サーバーだかの更新時に一斉に判定されるからワープ直後にいきなり判定とかは無理
Area2Dを毎フレーム動かしてるなら_physics_processを使った方がいい
状況がよくわからないがどうしても気になるなら最大FPSとか物理ティックをいじるしかないんじゃない -
見た目上攻撃受けてるけどダメージモーションは次のフレームからって状況は商業ゲームとかでもわりと普通の挙動な気がする
-
気にしてるのは制作者だけってパターンもあったりするし
実際どういう挙動なのか見ないと何とも言えないけど
食らい判定をもう1つ追加して実際のダメージ判定より前に置いて、
攻撃がボディに当たる手前でモーションだけ変化させてタイムラグごまかすとかどう? -
そうなるともう公式をよく読んでとしか
-
>>949
どうも
contactmonitorの設定は大丈夫なので、コードの書き方だと思うんですよね
ヘルプでコネクトしらべました
connect(signal: StringName, callable: Callable, flags: int = 0)
リファレンスにはないし、どっち見ればいいのかわからないですね
第一引数は名前で、第二は_on_body_enteredというシグナル名、第三はよくわからないので書いていません -
ごめんなさい
単純に関数の引数と型とか書いてないのが悪かったみたい
これないだけで動かなくなるんだ
func _ready():
connect("body_entered",_on_body_entered)
func _on_body_entered(body:Node)->void:
print("hit") -
connectはgodot4を使っているならSignalの方が良いObjectの方は互換性維持の為に残っているのだと思う
文字リテラルが無いのでより安全なコードとなる
https://docs.godoten...by_step/signals.html -
>>952
コード内からシグナル呼び出す方法がconnectで、エディタだけでやる場合はシグナルってことじゃないのですか? -
新しい方が使い勝手が良いだけだから目的通りに動いていて問題ないならそれで良いよ
Objectクラスのconnectメソッドは3.xで使われている古い形式
https://docs.godoten...ng-a-signal-via-code
Signalクラスのconnectメソッドは4.xからの新しい形式
https://docs.godoten...ng-a-signal-via-code -
ありがとう
動けばいいね 完成目指す -
>>937
検証してみたが仕様っぽい
_physics_processが呼ばれるすぐ前に判定が行われるのでどうやっても1フレームのディレイが発生する
RaycastとかShapeCast、DirectSpaceStateとかは影響受けないからそれかな
パフォーマンスは知らん
https://forum.godote...d-1-frame-late/37354 -
godotスレも伸びたもんだ
次スレのテンプレも考え良い頃では? -
【軽量】godot engine【無料】 part2
* ダウンロード
https://godotengine.org/
* フォーラム
https://www.reddit.com/r/godot/
https://forum.godotengine.org/
* リファレンス
https://docs.godoten...en/stable/index.html
* こんなのが作れるよ
https://www.youtube..../watch?v=UAS_pUTFA7o
https://www.youtube..../watch?v=ao34A0Y2x6c
-----------
↑これでいいか?
★次スレは950がたててください -
【軽量】godot engine【無料】 part3
--テンプレートここから--
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/
■こんなのが作れるよ
https://www.youtube..../watch?v=W1_zKxYEP6Q
https://www.youtube..../watch?v=UAS_pUTFA7o
https://www.youtube..../watch?v=ao34A0Y2x6c
■前スレ
【軽量】godot engine - part2
https://mevius.5ch.n.../gamedev/1619755427/
★次スレは>>950がたててください
--テンプレートここまで--
少し直してみた、前スレ無くても良いかと思ったが見る事もあるのかなと -
https://tech.pjin.jp...eloper/godot_basic11
godotはグローバル変数がないのね(*´ω`*)、、、
キャラクターから玉を発射するとき、その弾の発射位置を決めないといけない
キャラクターの位置から発射されるとして、キャラクターの位置情報を玉シーンに渡したい場合はグローバル変数でいいのかな? -
目的が達成できるなら厳密な定義のグローバル変数があるとかないとかは重要には思えない
キャラクターが弾を発射した際に弾シーンをインスタンス化して使用しているなら
グローバルを介さずともインスタンスの設定処理を呼ぶなりプロパティを直接変更するなりできるのでは? -
ありがとう
単純にpositionを指定すればいいだけでした
ありがとう
常に共有する必要ないならグローバルにすることもないすね -
ゲームはヘタに長編とか企画しないほうがいいかな?
完成すらままならないし game a week -
これの通りにやってみてるんだけど13:30辺りのbuildまでやるとGodotClassとNode2DVirtualが見つからなくてエラーになるんですがどなたか分かる方いますか?
https://www.youtube..../watch?v=z14cfTc40uQ -
全部に目通せなくて適当なんだけどLaunch.jsonの中のパスは自分の環境に合わせた?
-
動画コメントにNode2DVirtualが最新ではINode2Dに変わったってあってそこの次には勧めたけど
今度はBase<Node2D>にget_position()がないって言われた -
質問させてください
1,2,3,4,5という球体があって、その球体を箱の中にバラマキ、衝突した者同士を合体させたいです
1と2が衝突したら、3に加算されて合体する感じです
こういうスクリプトは1つのコードで作れるのでしょうか?
ボールの基礎となるballBaseというシーンを作り、そのシーンを継承したシーン1、2,3,4,5を作っています -
>>969
まずはこういうの見てみたら? -
ごめん貼り忘れた
https://2dgames.jp/godot4-suikagame/ -
単純な加算なら
・各ID(1~5)を保持する変数
・接触時のID加算メソッド
・生成用シーンのパスまたはExport
をベーススクリプトに置いて
継承側でID指定しておけばいけるんじゃないかな
ソラで考えたから適当やけど -
ありがとう
設計考えるのは難しい
創作部分に力を使えない -
1つのノードに対してスクリプト1つだけのようですが、スクリプトを増やしたいのならノードを増やすのですかね
1つのスクリプトがゴチャつくと嫌なので -
>>960
乙 -
>>959
gj -
>>937の者ですがShapeCast2DによるArea2Dの検出を使うことで解決しました
大量の衝突を扱うにはパフォーマンス的に向いてなさそうではあるが自分の用途的には問題なさそう
色々アドバイスくれた人に感謝
備忘録的に自分が引っかかった部分を書いておくと
Area2Dの移動後にArea2D.force_update_transform()で物理サーバー上の位置を更新しておかないと
ShapeCast2D.force_shapecast_update()の検出が思ったようにいかないので注意 -
シグナルってゴドット独自の機能ですか?ユニティには同様の機能は無いですか?
-
ないよ
-
onClickみたいなやつがシグナルじゃないの?
-
ユニティーで言うところのonClickみたいなかんじでしょうか
まだ使ったこともないのでよくわからないのですが
シグナルって自由に名前定義できてどのスクリプトからも受信できるっていう認識であってますか?
例えばプレイヤーが敵に衝突して死んだ場合
プレイヤースクリプトからplayer_deadっていうシグナルを発信
メインスクリプトでplayer_dead受信したらゲームオーバー処理
みたいなことができるのでは?というイメージなのですが -
そんな感じです
名前定義は出来ない認識ですが、よくわからない -
独自シグナル実装できるだろ
https://docs.godoten..._basics.html#signals -
シグナルをイベント発火時に外部ルーチンを呼び出す処理と見なすなら
Unityで同等の事を行うにはこの記事が参考になる
https://ekulabo.com/send-messages-sample
シグナルの良い点は発火側が受信側の存在を意識する必要がない事
受信側が必要に応じて接続する
必要がなければ接続しなくても問題がない
シグナルの別な良い点はawaitに対応している事
シグナル発火までawaitで待つ事ができる -
こんにちわ
カーソルの位置をキャラクターをゆつくり移動させるために、move_toward関数使ってみたんですが、以下の減算するだけのコードでもいけました。
extends CharacterBody2D
var SPEED = 300
var cursor_position
var player_position
func _ready() -> void:
pass
func _process(delta: float) -> void:
cursor_position = get_global_mouse_position()
player_position = self.position
player_position = (cursor_position - player_position).normalized()
move_and_collide(player_position * SPEED * delta)
単純にこれでいけたのですが、move_towardというのは見当違いの機能だったでしょうか? -
move_towardは(target_position - org_position).normalized()*deltaをまとめてやる関数っぽい
-
>>986のコードではcursor_positionに到達した後に微動作し続ける
move_towardを使えばtoの位置で止まるので静動させるならmove_towardを使う -
GodotってAPKの中身丸見えでスクリプト構造も丸見えで
オープンソースだから対策もさほどできなくて、ずっーと丸見えなんですって?
やだぁ〜エッチ〜w -
自己満開発だから気にした事なかったが調べた分には暗号化の機能はあるようだぞ
https://docs.godoten..._encryption_key.html
プロプライエタリなUnreal EngineやUnityであってもガンガンMODが作られている時点で気休めにしかならないとは思うが -
>>988
move_towardは通り過ぎちゃうのを切り捨てる処理も入るって事か -
>>990
やだぁ〜これって独自の Godot エンジンをコンパイルすることが前提条件らしいじゃないですか〜マイッチング
将来もっと簡単になればいいのにぃ〜、こうなったらもう丸見えでいくわ、うっふーん
https://godot.commun...t-from-decompilation -
平凡なしくみを面白く仕上げるのがクリエイティビティなんだろうか
ただのバウンドするボールを面白く仕上げるとかね -
インデントについて、4でもタブとスペースの混在は駄目なんですかね。
-
>>986
このコード投稿したものなんですが、これはマウスカーソル位置にキャラクターを徐々に動かすもんです
途中にウンコが落ちていたとして、それを迂回するように回避する方法ってあるでしょうか?
https://www.youtube..../watch?v=fS0IhyZrzts
この動画だとパス使ってるみたいですが、コードでできればいいです
ウンコに大きめのコリジョンをつけるか、ウンコの領域に入ったら、キャラクターのコリジョンを広げる方法を今ためしてみます -
テンプレで次スレ立てを深く考えず安易に950で指定してしまったが
現状や他スレを見るに980辺りで良かったと思う
次スレが立つのはずっと未来の話だが立てるタイミングの調整とテンプレ修正が必要
>>996
単純な回避でも左右どちらに避けるギリギリで避ける早めに避けるだの考慮する点は多い
Navigation2Dは複雑な地形であってもルート算出してくれるのだから使えるならその方が楽だろう
>>995
インデントの問題は議論はしている様だが現状のまま
オプションで選べても良いとも思うが綺麗に書く心がけをしていれば問題ない
スペースを可視化するオプションがあるので有効にすれば打ち間違いは目視できる
>>994
跳ね返るボールを打ち合うPONG
跳ねるボールを壊すキャノンボール
転がるボールを運ぶマーブルマッドネス
ボール一つ取ってもみても歴史があり様々なアイデアがある
アイデアを具現化するのがクリエイティビティなんだと思う
面白い面白くないはアイデアの評価でありクリエイティビティとは関係ない -
>>996
ありがとう
何が何でもプログラムで動きを作る必要はないのだろうけど、この辺一度やってみたいから、シューティングでもやろうかな
ゲームは既存のアイディアを改変死たほうがいいと思う
0から作ろうとすると面白くもなんともない物体が出来る
身の程を知るというか -
う目
-
梅
-
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1028日 6時間 46分 36秒 -
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
↑今すぐ読める無料コミック大量配信中!↑