【ゲームエンジン】Godot Engine
■ このスレッドは過去ログ倉庫に格納されています
せっかく3.0がリリースされたのにスレ無くなってたので
Godot はクロスプラットフォームかつオープンソースの2D/3Dゲームエンジンである。
現在の開発主体はGodot Engine communityであるが、
オープンソース化によってそのような形態をとる前はラテンアメリカの幾つかの企業によって開発、使用がなされていた。 
Wikipediaより
公式サイト
https://godotengine.org https://godotengine.org/qa/9878/how-to-make-keyboard-controls
再度質問です
スプライトの動かし方ですが、キーをバインドしてから、このコードをnode2dに貼り付けても動かないです
ツリー構造は
node2d
└sprite
という感じです
kinematic2dを使うのかと思ったのですが、キネマティックというのは物理を伴った移動であって、単純移動であればnode2dで良いと認識していますが、違うでしょうか?
自分が作りたいのはパズルなので、特に物理は必要ないです。 Node2Dのメンバ変数のposition.x, position.yの値を変えればいい
リンク先のは変数定義してその値変えてるだけ >>106
Google 翻訳でもすれば?
ウェブページ丸ごとも、翻訳できる >>114
どうも
アドオンはつかってたんですが、godotのサイトだと何故か翻訳されなかったです
まるごとコピペします
>>113
メンバ変数というのは、そのノード特有の変数みたいなものですよね 英語読めないって全く読めないってことはないだろうに…
各ノードのメンバもhelp->searchから調べれられる まぁゲームエンジン初心者・プログラミング初心者・英語わからない
だったら素直に日本語の情報多いUnityの方がええんやな でもgodotユーザーが増えるのは嬉しいけどね
色々Tipsの共有とかしたいし unityはエディタがちと重いし、文字サイズ小さすぎて読めないので、、、 結局あのアドバイスで分かってくれたか不安なのでコードを貼ってあげよう
extends Node2D
func _ready():
pass
func _process(delta):
if Input.is_action_pressed("ui_up"):
position.y -= 10
if Input.is_action_pressed("ui_down"):
position.y += 10
if Input.is_action_pressed("ui_left"):
position.x -= 10
if Input.is_action_pressed("ui_right"):
position.x += 10 ↑ありがとうございます
勉強中です
最終的にはリアルなゲーム作りたいけど、小さいゲームでも作れるようにならないとだめっすね、、、 >>120
これって_processというはじめから入ってる関数を使うんですね
これを使わなければ動かせないということなんでしょうか とりあえずイベントドリブンっていう言葉をググれ
それで全ての謎が解ける もしかして_process関数というのはunreal でいうevent tickのようなものでしょうか?
フレームごとに実行するというような機能ですか
func readyがそれだと思っていましたが readyとprocessの意味から推測できると思うが
readyはオブジェクトが作られた時最初に一度のみ実行される
processはオブジェクトが生成されている間なんども実行される(実行間隔はdelta) なるほど、やっとわかりました
ありがとうございます >>120
スプライトにこのコードで動かす事はできたのですが、position変数というのは最初から入ってる変数ですよね
こういった最初から入ってる関数ってどこで調べられるでしょうか
エンジン上で調べられると楽ですが
https://docs.godotengine.org/en/3.0/classes/class_sprite.html?highlight=sprite
ここのバリアブルにはposition変数のってないです、、、(´・ https://docs.godotengine.org/en/3.0/classes/class_node2d.html
Member Variables
Vector2 position - Position, relative to the node’s parent.
クラスの継承という概念について勉強するしかないね >>128
だからエンジン内のHelp->Searchでノード名検索すればそのメンバ変数やメンバ関数書いてあるって教えたでしょ 要はpositionはNode2DのメンバだけどSpriteはNode2Dを継承してるから使えるってだけ
継承はオブジェクト指向の基本 最初何のパズルがいいですか?
まだグリッド移動とかやってる途中ですけど
>>133
親の持ってる機能を使える
といったのがクラスですよね それは継承
継承はクラスを使う利点の1つだけどそれだけじゃない 最近はプログラミングの学習でも小学生くらいからPython使ってたりするし
ちょうどGDScriptはPython風だし
せっかくだからPython使って1からプログラミング勉強してもいいと思うゾ >>134
>>137
>>134
ありがとう
小さいパズル作れるようになる とりあえず func _process(delta):
if Input.is_action_just_pressed("ui_up"):
position.y += 10
この前もらったコードですが
node2dをクラスリファレンスで調べたところpositionという変数がありました
positionというのはvector2クラスの持っている変数なのか、node2dの持っている変数なのか、読み方がよくわからないのですが、教えてください だからプログラミングから勉強しる
これは変数の型という概念だ vector2は変数の型ですか
型であると同時にクラスでもあるのですか? input.is_action_just_pressed
みたいなコードの場合、このドットは階層構造を表しているということでしょうか
フォルダような
input>is_action_just_pressed
といった感じですかね
この場合inputがクラスで、is_actionは関数だと思いますが、
クラス.クラス.関数
といった並びになる場合もあるのですか? Godotって、無料でちょっとオモチャっぽさもあるけど、
UnityやUnrealも理解した上で、あえて通る道ではあると思う。 var list_x=[0,1,2,3]
var list_y=[0,1,2,3]
func _ready():
for x in list_x:
print(x)
パズルで位置を表す場合2次元配列を使うと思いますが、どのように書くといいんでしょうか
このあたりの参考になるサイトがあれば教えてください。
x0y0のいちを表す場合、list_x[0],list_y[0]みたいな感じに表すと思いますが、具体的な書き方がわからないです
とりあえずグリッドを作製したいです Godot grid movement とかでググればいくらでも出てくるじゃん…
あとその書き方だと二次元配列じゃなくて配列を二つ用意しただけ
配列の配列にしないと あと何度も言うがチュートリアルとかドキュメントの初めのあたりは読んでくれ godotに関係ない話を一切するなとは言わないけど
全部godotじゃなくてプログラミングの質問だからなw
プログラミング好きな奴にとってはgodotは結構しっくりくるけど
プログラミング勉強したくない奴は他のゲーム製作ツールの方がいいのかも知れん ユーザーが増えるのは嬉しいんだけどね
ところでここ見てて実際に開発してる人どれくらいいるの?
モチベーション上げるために進捗状況貼ったりしたい
画像は自分の現状(基本的な移動や会話とかは実装したがゲームにはなってない)
https://i.imgur.com/vxSk6Pa.png 言語仕様の日本語のリファレンスがどうしても欲しいならPythonのを探したら
基本的にほぼ同じなので
さっきの質問なら"多次元配列 Python”とかで調べればよい 調べるための前提知識すらなかったです
今から調べます
ありがとう タイルマップを使ってるんですが、エディタ側でテクスチャのリサイズは出来ないのでしょうか?
例えばタイルのサイズが100pxとしたら、あらかじめ100pの画像を用意しなければいけないのでしょうか?1000pxの画像でも、100個に刻むことは出来ますが、この1000pxを100pにしたいのです 知らないうちに日本語が簡単に使えるようになってる。 godotで3dゲー作る人はあんまりいないんですか? unhandled_key_inputとunhandled_inputの違いなんですかね p = get_node("/root/Node/KinematicBody")
print(p)
これでエラーになるのは何でですか?
ノード構造は間違っていないと思うんですが
node=rootなんでしょうか godot apiってなんですか?
apiというのはクラスですか?
nodeはapiと書いていますが https://www.slant.co/topics/1495/~best-3d-game-engines
なぜかGODOTが一位 前ここにゲーム画面貼ったりしたけど
ここ見てる人本当に何か開発してるの?知識交換しようにもまともに触ってる人全然見ない 2Dの18禁同人ゲーなので特に難しいことをするわけでもなく
最新の情報だけは見てる
そういえばGDquestがらみの話誰かするかなと思ったけど誰も書かなかったな R18アクションゲームでGodot使ってたのは一つ知ってるな…
GDquestいいよね
個人的には動画じゃなくて書籍に逆引き辞典みたいな感じでまとめてくれると嬉しいけど欲張り過ぎか 何つくってますか?
個人でFPSとか手間かかりすぎるよね 自分は2dアクションゲーム
3.1で追加されたtilemapの機能だけど、atlasで作るときにcollisionも自動で各タイルに設定ができないんだけどやり方わかる人いる? Discordでも聞いたけど無理みたいだ
仕方ないから前から使ってたプラグイン使うか… fpsはとりあえずやめときますか
モデリングだけでも大変すぎる
パズル系がいいのかな Python嫌いだからC#で始めてみたけどこっちはまだインテリセンス対応してないのか そうなの?
モデリング手間かかるやつは諦めたほうがいいかな なにを作りたいかによる
ゲームの設計をしたいなら仮のモデルでUIとかは作って後で置き換えればいい Unityも触ってるけど大体同じ機能あるからUnityで勉強したのこっちでも使えるね
9 sliced使ったUIの作成とかこっちでもできたんだ RPgって難易度高いすか
ウディタの使い方わからなすぎて 仮に素材の問題は全部解決していたとしても
システムを0から全部自分で作るのは初心者には難しすぎる
一応godotで作られたツクール的なもの(RPG in a Box)や
GDquestの人のやつ ttps://github.com/GDquest/godot-open-rpg があるけど
どうせ他人の作ったもの使うなら日本語情報が多いツクールを素直に使った方がいいだろう
そもそも具体的というなら具体的なビジョンがないから質問が漠然としすぎてる
RPGもどういうタイプを作りたいのかさえ分からないし rpgといっていいのかどうかわからないですが、マシナリウムみたいな感じですね RPGならデータベース管理はjson使って渡すのが管理楽かな
だがまあこういった基礎から組む必要があるのでウディタなりツクールなりのが楽 最初にゲームのアイデアがあってどうしてもそのゲーム作りたいってわけじゃなくて
ゲーム作る練習とかとにかくgodotで遊びたいってだけなら
外国人が良くやってるけど既存のクローンとかパクリゲーでいいとは思うが 同じような手合いが多いがまず公式チュートリアルやって
だいたい構造わかったら"まずはパズルとか"じゃなくて自分の作りたいものを作った方がいい 素材作りとゲーム制作が完全に融合してるのはBGEとArmoryくらいだな 素材作りたくないならUnityでアセットストアから拾ってこればええやん 作りたいけど、労力的に無理よね、3d
マリお64くらいかな ゲーム制作にvisual studio使うメリットはありますかね プログラムの基礎がしっかりできてない場合、vs codeとかで基礎練習をやったほうがいいですか? パズル作るときはカスタムドロー使うんですか?
テクスチャ使うんですか? 3.1安定版まだかな
GitHubのissueが日に日に増えていく Vulkan 対応まだかな
現状では、Mac/iOS 向けの開発には気乗りしないよね Vulkanは3.2からだっけ。待ち遠しいがあと1年は掛かるんじゃないか...? custom drawってのがあるんですね
javascriptのcanvasのような? gdscriptのextendsって、usingと何が違うんですかね? extends はクラス継承元を宣言するのだから
using 名前空間使用宣言(単にこのクラスを使いますって意味)とは全然意味が違う 名前空間もクラスも似たようなものだと思っていたのですが、違うのですか?
都道府県みたいなものですよね
クラスの継承も名前空間の継承?も用途は似たようなものなのではないですか? >>208
あっそうか
クラスを使うという宣言は機能を継承するとは限らないわけですかね ■ このスレッドは過去ログ倉庫に格納されています