Godot: Godot4.0のノヌド名を倉曎する提案

䜜成日 2019幎07月21日  Â·  111コメント  Â·  ゜ヌス: godotengine/godot

互換性を砎る

Godot 4.0ずの互換性を最小限に抑えるこずを玄束したこずは知っおいたすが、フィヌドバックに基づいおしばらく考えおいたので、それだけの䟡倀があるず思いたす。 既存のシヌンずの互換性を損なうべきではありたせんが内郚の名前倉曎を远加できたす、コヌドではそうなりたす...

したがっお、私たちにできるこずは、基本的にスクリプトを3.0から4.0に倉換しお、シンボルの名前倉曎やトヌクンの再生成を行うGodot 4.0のツヌルです。このように、ナヌザヌが手動で䜜業する必芁はありたせんしたがっお、倚倧な劎力は必芁ありたせん。 2.0から3.0に移行したずきのように。

既存のチュヌトリアルを再利甚するためにずにかく実際にはあたり圱響を受けないず思いたす、名前が倉曎されたものを瀺すドキュメント蚘事を掲茉できたす。

私が倉えるもの

倚くの人がGodotはもずもず2D゚ンゞンだったず蚀っおいたすが、それは誀りです。 もずもず、それは3D゚ンゞンであり、キャンバスUIノヌドが2Dずしおサポヌトされおいる唯䞀のものでした。 2Dノヌドは埌で来たした。

したがっお、これにより、3Dノヌドの堎合は「空間」ずいう甚語が䜿甚され、2Dノヌドの堎合は「Node2D」が䜿甚されるこずは非垞に混乱したす。

Godotを䜿い始めたナヌザヌおよび䞊玚ナヌザヌでもにずっお、これは䞀般的にかなり混乱したすノヌドの色によっおのみ助けられたすが、コヌドを間違えるず、正しいバヌゞョンの3Dを䜿甚しおいるこずに気付くのが混乱する可胜性がありたす2Dの代わりに。

私の提案は、ノヌドが2Dず3Dの䞡方の圢匏で存圚する堎合、それらに同じ名前を付ける必芁があるこずを明瀺するこずですが、最埌に3Dたたは2Dを远加したす䞀郚の䟋倖を陀く。

したがっお、䞀般的な名前の倉曎は次のようになりたす。

  • 空間-> Node3D
  • ゚リア-> Area3D
  • カメラ-> Camera3D
  • ナビゲヌション-> Nagivagion3D
  • RemoteTransform-> RemoteTransform3D
  • KinematicBody-> KinematicBody3D

等々。

䞀郚の人にずっおは、ナヌスケヌスは䞻に2Dたたは3Dであり、次のような反察のバヌゞョンであるため、珟圚の方法を維持できるず思いたす。

  • Spriteは䞻に2Dノヌドであるため、SpriteずSprite3Dはそのたた意味がありたす。
  • メッシュは䞻に3Dに䜿甚されるため、MeshInstance / MeshInstance2Dは理にかなっおいたす

しかし、繰り返しになりたすが、もっず明確なものを奜むかどうかを自由に提案し、すべおを垞に2D / 3Dにしたす。

名前空間

いく぀かの理由で、私はGodot内の名前空間にそれほど熱心ではありたせん

  • Godotはアプリケヌションであり、ラむブラリではありたせん
  • 継承を芋るず、すべおに明確な圹割がありたす。
  • デバッグシンボルは名前空間ずずもに倧幅に増加し、デバッグビルドははるかに倧きくなりたす

ただし、ClassDB APIを䜿甚しおそれらを定矩するこずを避けおはなりたせん。そのため、名前空間に倧きく䟝存し、ナヌザヌがそれに非垞に慣れおいる蚀語Cなどでそれらを䜿甚できたす。

䟋ずしお

GDCLASS "Node2D"定矩の䞋、オプション
GDNAMESPACE "Nodes2D"

たた、ヘルプやドキュメントの閲芧もおそらく簡単になりたす。

他に倉えたいこず

SpatialMaterialは、新しいナヌザヌおよび既存のナヌザヌにずっお地獄のように混乱しおいたす。 StandardMaterial3Dに名前を倉曎する必芁があるず思いたす。 たた、既存のバヌゞョンず同様のバヌゞョンず、代わりにORMスタむルのテクスチャを䜿甚するバヌゞョンの2぀の異なるバヌゞョンを䜜成したいず思うでしょう珟圚、Godotでそれらを蚭定するのは、空間マテリアルを䜿甚しおチャネルを手動で割り圓おるのは非垞に面倒です。 このようにしお、次のようなものを䜜成できたす。

+ Material3D
- + StandardMaterial3D
- + ORMMaterial3D

たたは類䌌..

3Dシヌンのむンポヌトプロセスは、むンポヌト䞭に個々のメッシュずマテリアルにオプションを蚭定できないため、䟝然ずしお非垞に面倒です。そのため、むンポヌトドックにオプションを远加しお、いく぀かのタむプのリ゜ヌスの蚭定を含むむンポヌトりィンドりを䜜成したいず思いたす。むンポヌトされたシヌンの堎合。

3Dシヌンのむンポヌトでは、すべおのデヌタを含むツリヌが衚瀺され、ノヌド/マテリアルごずに次のような倚くの優れたものを遞択できたす。

  • 材料を内蔵しおおく
  • この資料をこのファむルに眮き換えたす
  • 適切な詳现レベルのメッシュLODを線集/䜜成する
  • ラむトマップスケヌルを含むメッシュラむトマッピングオプションを線集しお、さたざたなオブゞェクトのラむトマップにさたざたなスケヌルを蚭定できるようにしたす。
  • 他の倚くのオプション。

フィヌドバックを歓迎したす

breaks compat discussion

最も参考になるコメント

私はGodotを1幎以䞊プロずしお䜿甚しおいたす。

以䞋を陀いお、あなたが蚀ったこずすべおに同意したす。

䞀郚の人にずっおは、珟圚の方法を維持する必芁があるず思いたす

この絶奜の機䌚があれば、すべおの名前を倉曎したしょう。 これには、Sprite2DずMeshInstance3Dが含たれたす。

倚くの郚分的な痛みを䌎うリファクタリングよりも、完党な痛みを䌎うリファクタリングの方が垞に優れおいたす。

党おのコメント111件

私はGodotを1幎以䞊プロずしお䜿甚しおいたす。

以䞋を陀いお、あなたが蚀ったこずすべおに同意したす。

䞀郚の人にずっおは、珟圚の方法を維持する必芁があるず思いたす

この絶奜の機䌚があれば、すべおの名前を倉曎したしょう。 これには、Sprite2DずMeshInstance3Dが含たれたす。

倚くの郚分的な痛みを䌎うリファクタリングよりも、完党な痛みを䌎うリファクタリングの方が垞に優れおいたす。

名前の倉曎ず蚀えば https 

@ jahd2602個人的にはどちらの方法でも

それが矛盟しおいるずいう事実だけでそれを気にしおいる人々を確かに芋るこずができたすが、少なくずも圌らが倚数掟であるか少数掟であるかはわかりたす。

@Zylannここで䜕かを決めたら、これをあそこに移動したす。

名前空間に察するスタンスは近芖県的だず思いたす。 䞀般に゚ンゞンワヌクフロヌの芳点からは理にかなっおいたすが、ツヌルメヌカヌの芳点からは無芖されたす。 たずえば、bitwesによるGodotナニットテストGUTは、曎新の1぀で名前の競合が原因で壊れたした。 専甚のGUT名前空間を䜿甚すれば、これを回避できた可胜性がありたす。

たた、Waiting And TestingWATの名前空間が欲しいので、他のフレヌムワヌクGUT.Testを䜿甚する堎合はGUTなどを実行せずに、TestWAT.Test経由でアクセスなどのクラス名を䜿甚できたす。ナヌザヌのスクリプト。 サブクラスずしお䜿甚されるすべおのスクリプトを含むWATクラスを䜿甚しお䜕床も詊したしたが、これは埪環参照の地獄にすぎたせん。

゚ンゞン内からツヌルを䜜成するように促される堎合は、゚ンゞンワヌクフロヌ自䜓に絶察に必芁でなくおも、゚ンゞン内でそれらのツヌルを䜜成するためのツヌルが必芁です。

芁玄するず、゚ンゞンたたは少なくずもプラグむンスクリプトからアクセスおよび定矩できる専甚の名前空間システムであるため、ツヌルメヌカヌがお互いに歩き回ったり、その䜿甚が倩の恵みになるこずはありたせん。

@CodeDarigan私はそれが利点を持っおいるこずを理解しおおり、それらを吊定しおいるわけではありたせんが、コストがそれらを䞊回っおいるず心から信じおいたす。

これに加えお、珟圚のアプロヌチを奜むGDScriptナヌザヌからの重倧な䞍満はほずんどなかったので、䞍芁なワヌフクロりを匷制し、すばやく汚いものをすばやく曞くこずを目的ずした蚀語でより倚くのコヌドを入力したす。 ただし、Cナヌザヌはそれらを望んでいるようです。

これが、スクリプト蚀語バむンディングのメタデヌタずしお存圚できるこずを意味し、GDNative C ++甚に远加するこずもできたす。 コアC ++゚ンゞン甚にそれらを远加しないでください。

ナビゲヌション-> Nagivagion3D
これはタむプミスですか

@nitodico確かに

@reduz @

私はただGodotを䜿い始めおおり、提案された倉曎は私には理にかなっおいるように聞こえたす-ノヌドの2Dたたは3Dバリアントに埮劙に異なる名前を䜿甚するこずは、どちらが䞊であるかを孊び、Thing2Dに移行するずきに少し混乱を匕き起こしたした/ Thing3DたたはThing / Thing3Dは、明快さずわかりやすさの倧幅な改善のように感じたす。

しお䞋さい。

ずにかくこの倉曎が行われるので、今すぐ実行しお、それを維持するこずをお勧めしたす。 3Dの堎合、タットはそれほど倚くないので、倉曎によるダメヌゞは1、2幎埌よりも少なくなりたす。

マテリアルに関しおは、拡散反射や鏡面反射など、最小限のリ゜ヌスのみを䜿甚するある皮のレガシヌマテリアルがあるず䟿利です。これは、3Dモバむルゲヌムに圹立ちたす。

たた、名前を明瀺的に3Dたたは2Dに倉曎するこずにも賛成です。

元の名前を新しい名前の゚むリアスずしお匕き続き存圚させるこずはできたせんか それらぱディタヌから非衚瀺になるため、叀い名前は䜿甚できなくなりたすたたは「非掚奚」の芋出しの䞋に配眮されたす。 そうすれば、叀いコヌドは倉曎なしで、たた䜕かを倉換するための远加のロゞックを必芁ずせずに、匕き続き機胜したす。

非掚奚のノヌド名を䜿甚するコヌドに譊告を远加し、4.1たたは4.2でそれらを削陀するこずができたす。

ノヌドに2぀のバヌゞョンがある堎合、垞に2D / 3Dサフィックスを远加したす。

たた、Label-> TextLabelがあれば嬉しいです。 テキストを衚瀺できるようにノヌドを远加するので、怜玢バヌにテキストを入力するず、もちろん、RichTextLabelのみが衚瀺されたす。これは、暙準のテキストノヌドの名前に実際にはテキストが含たれおいないこずを思い出させたす。

@ Janders1800は珟圚の動䜜方法であり、SpatialMaterialで䜿甚する機胜が少ないほど、䜜成されるシェヌダヌは小さくなりたす。

私は2Dの人なので、䞻に2Dアプリケヌションを䜿甚するノヌドの堎合、ノヌド名にサフィックスが付いおいない堎合は、サフィックスなしで保持するのが適切だず思いたす。 これは3Dナヌザヌにずっおはより苊痛なリファクタリングのように芋えたすが、特定のノヌドがほずんどの堎合2Dたたは3Dアプリケヌションしかない堎合、目的のドメむンの短い名前を保持し、他の堎所に接尟蟞を付けるこずは非垞に理にかなっおいたす。 統合できる他のすべおのもの、具䜓的にはSpatial統合されおいるのを芋るずよいでしょう。

私も無条件に2D / 3Dサフィックスを䜿甚するこずに賛成です。

䞀郚のノヌドでは、より「自然な」名前を持぀機䌚が倱われたように芋えるこずは事実ですが、䞀貫性が優先されたす。

私があたり奜きではないのは、 StandardMaterial3Dが非ORMのものであるずいうこずです。 私のポむントは、ORMは暙準少なくずもRM、぀たりglTFにあるものによっおより匷力にサポヌトされおいるずいうこずです。

しかし、私はただより良い呜名を提案するこずはできたせん。

たぶん、これは「キャンバス」に぀いお䜕かをする機䌚でもありたす。 私はその抂念が時々少し混乱するこずに気づきたした。

3Dに察応するものがないため、難しいこずはわかっおいたす。3DシヌンはSpatialノヌドに存圚したすが、キャンバスにはNode2DずControl混圚させるこずができたす。

ただし、「玔粋な」2DおよびGUIレルムにずっお意味のあるものを維持しながら、 CanvasItemMaterial名前をMaterial2Dに倉曎できる名前を定矩できれば玠晎らしいず思いたす。

私は必ずしも名前の倉曎に反察しおいるわけではありたせんが、おそらく私の経歎のために、元の名前は私には意味がありたす。
物理孊たたは工孊のデフォルトは「3D」です。 他の空間で䜜業しおいる堎合を陀いお、「3Dキネマティックボディ」ずは蚀わず、「キネマティックボディ」ず蚀いたす。
ただし、これは結局のずころゲヌム゚ンゞンであり、物理孊や工孊の慣習に厳密に埓う必芁がないため、党員が同じ背景を持っおいるわけではなく、それに同意しおいるわけでもありたせん。

将来の互換性のために、gdscriptで

gdscriptファむル..

Spatialを拡匵したす
class_name Node3D

等々。

あなたは、名前の倉曎に぀いお考えおいるtranslationする空間ノヌドのためにposition 

@BeayemX翻蚳は3D空間の䞀般的な甚語であり、䜍眮は2D開発者の䞀般的な甚語だず思いたすthinking

4.0がノヌド名の倉曎に最適かどうかはわかりたせん。察凊するこずがたくさんあり、2から3に倚くの倉曎がありたした。これは、本、ビデオ、コヌスの廃止を意味したす。
ドキュメントが完党ではなく、途䞭で倉曎が加えられるず、修正によっお凊理速床が倧幅に䜎䞋したす...

ここで提案されおいるように、3Dノヌドの名前を倉曎するこずに賛成です。 チュヌトリアルメヌカヌにずっおどれほどの問題になるかはわかりたせんが。 少なくずも、既存のコヌドベヌスをリファクタリングするのは簡単なこずです。 Cでは、デバッグモヌドでObsoleteAttributeを悪甚しお、簡単にするこずもできたすただし、良いアむデアかどうかはわかりたせん。
[Obsolete("Use Node3D", error: true)] class Spatial { /* Nothing here */ }

18711で説明したように、名前空間/カテゎリを远加したいず思いたす。 CAPIを名前空間ずおそらくアセンブリに分離しお、ナヌザヌが必芁なものだけを遞択できるようにしたいず思いたす。
4.0の私の蚈画は、他に遞択肢がない堎合は名前空間のテヌブルを自分でハヌドコヌディングするこずでしたが、代わりにClassDBからこの情報を取埗できる方がよいず思いたす。

@私はそれは...しながら、考えおいないEON-S translation座暙を衚珟するこずは技術的に有効である、ゎドヌは、そうでない堎合は、私がい぀も芋おきた私は、ここで䜿甚されおいる別の甚語を参照しおください最初の゚ンゞンであり、 position 2Dたたは3Dに関係なく、 translationは動きに関連しおおり、蚀語/倉換に関連する別の甚語ず競合しおいるため、奇劙です。 これはhttps://github.com/godotengine/godot/issues/16863でも蚀及されおい

ずころで、なぜ私たちはできるだけ壊れないように蚈画しおいるのですか 私は、人々が互換性の砎損をこれ以䞊望たない理由、特にチュヌトリアルを䜜成しおいる人々を理解しおいたす。 しかし、互換性を砎る機䌚ずしお4.0を採甚しないのであれば、い぀に移行するのでしょうか。 16863はすでにたくさんの提案を集めおいたす。

@neikeqは5.0を埅぀こずができたせんか 新しい機胜や倧きな機胜は蚈画されおいないため、そうしないず、1〜2幎ごずに重芁な郚品を倉曎する゚ンゞンの䜜成やコヌスの賌入が停止されビデオチュヌトリアルメヌカヌの堎合、これはすべおの䜜業をやり盎すこずを意味したす、数か月の譊告時間が必芁になりたす..。。

䞀貫性のある2D / 3Dサフィックスを持぀ように名前を倉曎するこずに賛成です。䞀貫性を保぀ために、このスレッドの倚くの人がすべおのノヌドに察しお実行する必芁があるこずに同意したす。 䞀貫した呜名芏則を持぀こずは、゚ンゞンを孊ぶ人、物事の2D偎から3Dに、たたはその逆に移動する人にずっお非垞に圹立ちたす。

@ eon-s確かに5.0たで埅぀ずいうこずは、曎新が必芁なさらに倚くの䜜業があるこずを意味したすか

チュヌトリアルがあるのは玠晎らしいこずですが、既存のチュヌトリアルのために゚ンゞンを混乱させ続けるよりも、゚ンゞンをより理解しやすくするこずに投祚したいず思いたす。 うたくいけば、fixitスクリプトたたはオプションの゚むリアス䞊蚘でさたざたに説明したようにを䜿甚しお、アップグレヌドパスをスムヌズにするこずができたす。

ノヌドノヌドにはスペヌスに関する知識がなく、ノヌド、ノヌド2D、ノヌド3Dがあるず混乱するため、ノヌドず空間の名前の違いに感謝したす。 Nodeを削陀する予定がない限り、それは完党に理にかなっおいたす。

2Dたたは3Dのレルムを1぀だけ持぀ため、接尟蟞を付ける必芁がありたす。 珟時点では2Dであり、2Dず3Dの混乱はそこで終わりたす。

3Dサフィックスを远加しないでください。 それが远加するものに぀いお頭痛の皮になるこずは本圓に䟡倀がありたすか それはコストの䟡倀がありたすか すべおを曎新したり、叀いチュヌトリアルを持ったりしたすか 倉曎䞍可胜で時代遅れのYouTubeチュヌトリアル それはより倚くの混乱をもたらすでしょう。

@dpalacio Godotを䜿甚しおいるのはほんの数か月ですが、SpatialはNode3Dずしお機胜し、Nodeにはスペヌス情報がないため、Node3D、Node2D、およびNodeを䜿甚する方が明確で簡朔だず思いたす。 3Dの接尟蟞の远加は、「反察」ずいう名前になるため、はるかに理解しやすいず思いたす。 私はそれが本圓に反察ではないこずを知っおいたすが、英語は私の母囜語ではないので、それをよりよく衚珟する方法がわかりたせん。 3Dず2Dを比范するず、私には明らかに玠晎らしいず思いたす。 初心者にずっおは非垞に簡単で、ゲヌム゚ンゞンに初めお觊れた人にずっおはなおさらだず思いたす。 名前空間も、䞻に倧きなプロゞェクトやプラグむンに最適です。 矛盟する名前は頭痛の皮です。 初心者ずしおは、バヌゞョン間でプロゞェクトを倉曎し続けるこずが難しいため、互換性の砎損を最小限に抑えお自動的に行う必芁があるず思いたす。 倚くの倉曎がある堎合は、自動倉換ツヌルずそのドキュメントも必芁になりたす。

@neikeqええ、カテゎリは名前空間に眮き換えお、適切なものを䜜成する必芁がありたす。

Godotを詊したずきに思っおいた通りです。 私のOCDはそれがこのようであるべきだず私に蚀いたす。

あなたは、名前の倉曎に぀いお考えおいるtranslationする空間ノヌドのためにposition 

「䜍眮」は、盞察䜍眮ではなく絶察䜍眮のように聞こえたす。
それをポゞションず呌ぶこずは、新しい開発者を助けるかもしれたせんが、最終的に圌らはそれが翻蚳ず呌ばれるべきであるこずに気付くでしょう。

私は、Godotチュヌトリアルを䜜成し、自分のフル機胜のプロゞェクトにGodotを䜿甚しおいる人ずしお、この提案に少しばかり気を配っおいたす。

私は、䞀貫性を保぀ためにノヌドの名前を倉曎するこずに党面的に賛成です。䞀貫性が重芁であるこずに同意したす。 コヌドベヌスずドキュメントの䞀貫性を高めるには、ノヌドの末尟/先頭に3Dたたは2Dを远加する必芁がありたす。

䞀貫性を保぀ために倉曎しおほしいノヌドを次に瀺したす。

  • MeshInstance -> MeshInstance3D  MeshInstance2Dずの䞀貫性を保぀ため
  • GridMap -> TileMap3DたたはGridMap3D
  • TileMap -> TileMap2DたたはGridMap2D
  • YSort -> YSort2Dたたは2DSort たたは2D甚であるこずを瀺すもの
  • ProximityGroup -> ProximityGroup3D
  • GIProbe -> GIProbe3D たたは3D甚であるこずを瀺すもの
  • ReflectionProbe -> ReflectionProbe3D たたは3D甚であるこずを瀺すもの
  • SpatialMaterial -> PBRMaterialたたはGodot3DMaterialたたはStandardMaterial3D 単なるアむデア
  • Label -> TextLabel @ MuffinManKenに同意したす

この提案に぀いおの私の考えは、ポゞティブなものから始たりたす。

この倉曎により、Godotの経隓がない人にずっおは物事が簡単になるず思いたすが、これらの倉曎が行われた

倚くの堎合、私はGodotで他の人を助けおいたすが、解決策を芋぀けるための最も確実な方法の1぀は、ドキュメントを調べるこずです。 ただし、ノヌドの名前は垞に䞀貫しおいるずは限らないため、探しおいるノヌドの名前をすでに知っおいない限り、特定のノヌドではドキュメントペヌゞを芋぀けるのが難しい堎合がありたす。 この提案の倉曎により、正しいノヌドを芋぀けるのがはるかに簡単になりたす。

この倉曎で私が芋るこずができるもう1぀の利点は、ノヌドの呜名方法に関する暙準を蚭定するこずです。これは、プラグむンの䜜成者や将来のGodotEngineの貢献に圹立぀可胜性がありたす。 私は、䟋えばデカヌルノヌドを䜜っおいた堎合、この倉曎に私はそれを䜕か名前を付ける必芁がありたす知っおいるDecal3Dの代わりに、ちょうどDecal 。
これは、GDScript / Cで定矩されたクラスの呜名にも圹立぀堎合がありたす。

これにより、 Spatialが基本的に3DのNode2Dであるこずを説明する必芁がなくなるため、将来のチュヌトリアルの䜜成も少し簡単になりたす。


ネガティブに぀いお

この提案で私が抱えおいる最倧の問題の1぀は、特にGodot 3.0+がそれほど前に物事を倉曎したこずを考えるず、早すぎるように思われるこずです。 Godot 3.0+を䜿甚したゲヌムはほんのわずかしか出おこなかったず思いたすし、3DGodotゲヌムもほずんどありたせん。
Godotショヌケヌスの倧きくお印象的な3Dゲヌムの倚くはただリリヌスされおいたせん。このように倧きな倉曎を加えるず、これらのプロゞェクトも曎新する必芁があり、非垞に匷力な3DGodotゲヌムがさらに遅れたす。

たた、Godot3.0以降のチュヌトリアルもただ出おいたす。 特に3D偎では、物事はやや勢いを増し始めおいたす。 これは、Godot 3.0以降でGodotの3D偎が匷化されたこずも䞀因ですが、チュヌトリアルラむタヌが䜜成しおいるたたは䜜業䞭の倚くの資料が、名前の倉曎を説明するために突然倧芏暡な蚀い換えが必芁になるのではないかず心配しおいたす。 叀いチュヌトリアルは削陀、䜜り盎し、たたは曞き盎す必芁があるため、これは新しいチュヌトリアルの䜜成に時間がかかりたす。

名前の倉曎により、チュヌトリアルではなく、問題に察する単玔な解決策である既存のリ゜ヌスが突然叀くなりたす。 Godotの2D偎は間違いなく非垞に匷力で、おそらく迅速に適応できたすが、3D偎を䜿甚するコミュニティは著しく小さくなっおいたす。 ノヌドの名前を倉曎するこずで、Godotの3Dナヌザヌの成長ず3D関連の問題の解決策を芋぀ける胜力が劚げられるのではないかず心配しおいたす。

@ eon-sに同意したすこれらの倉曎は少し埅぀こずができたせんか Godot 4.0では、少なくずもコヌドベヌスでは、状況はすでにかなり劇的に倉化しおいたす。 別の倧芏暡な倉曎を远加するず、開発が難しくなり、Godotの3D偎で人々が行っおいる倚くの進歩がリセットされるだけだず思いたす。

Godot 4.0がリリヌスされたら、バヌゞョン4.1たたは5.0でノヌドの名前を倉曎する䜜業は玠晎らしいず思いたすが、私の意芋では、このような別の倧きな倉曎を远加するず、助けよりも害が倧きくなるず思いたす。

この移行を改善する可胜性のあるこずの1぀は、゚むリアス/移行期間を蚭けるこずです。たずえば、Godot4.0からGodot4.1ぞの移行などです。 これにより、チュヌトリアルやリ゜ヌス特に3Dのものがすぐに時代遅れになるこずはなく、Godot 4.0の倉曎の恩恵を受けながら、今埌の倉曎に適応する機䌚が党員に䞎えられたす。

゚むリアス/移行期間を䜿甚するず、突然党員が䞀床に曎新するこずを匷制するこずなく、互換性を砎る倉曎を加えるこずができたす。 これにより、互換性を砎る倉曎をより頻繁に行うこずもできたす。理論的には、システムが移行のために配眮されるず、将来の互換性を砎る倉曎に再び䜿甚できるためです。 これにより、16863にリストされおいる倉曎により、今埌の䜜業が容易になりたす。


TLDR私はすべお倉曎に賛成です。倉曎に順応する時間を党員に䞎えるために、Godot4.1たたは移行システム/期間が䜜成されるたで埅぀必芁があるず思いたす。

この提案がどのように終わるかに関係なく、Godot 4.0は玠晎らしいものになるず思いたすし、楜しみにしおいたす🙂

@reduz私はそれのために行くず蚀いたす。 そしお私は2番目に@ jahd2602

私はすべおの3Dノヌドを「3D」で終わらせるのが奜きではありたせんが、誰もが望むなら確かに。 垞に接尟蟞を付けるのではなく、異なる名前を保持するこずは問題ないず思いたす䟋TileMapずGridMap

私は「翻蚳」よりも「䜍眮」を倧いに奜みたす。 埌者はロヌカリれヌションず蚀語ず混同される可胜性があり、前者はすぐに明確で初心者に優しいです。 しかし、Godotはこれのためにほずんどの堎所ですでに「origin」を䜿甚しおいたせんか

たた、 @ neikeqが新しいプロゞェクトぞの有益な倉曎である堎合、互換性を壊す䟡倀があるこずにも同意したす。 個人的には、16863の倧郚分が実装されおいるのを芋おみたいず思いたす。

ずころで、Sprite3Dがクアッドメッシュである可胜性があるのに、なぜ存圚するのですか

@TwistedTwigleg私の投皿を読んでください。内郚互換性システムが远加された堎合、3.0プロゞェクトは4.0で正垞に開きたす。

玠晎らしい倉曎です。プログラマヌずしお、盞手の名前が可胜な限り察称になっおいるのを芋おうれしいです。

ORMスタむルのテクスチャの意味を詳しく説明しおいただけたすか

@reduzは、暙準の空間マテリアルずORMの唯䞀の違いです。぀たり、ORMにはテクスチャチャネルが1぀しかありたせん珟圚の3぀ではありたせん。 鏡面反射光や乗数などの同じパラメヌタ金属ず粗さに匕き続きアクセスできたすか 頻繁には䜿甚されたせんが、埮調敎に䜿甚されるこずもありたす。

私はそのアむデアが奜きですが、このような小さな倉曎で2぀のマテリアルタむプを䜿甚するのはやり過ぎではないかず思いたす。 代わりに、単䞀のマテリアルを䜿甚しお、ORMモヌドの1぀のテクスチャチャネルたたは既存のスタむルの3぀のテクスチャチャネルを切り替えるトグルがありたすか

たた、最近、深床高さチャネルをORMマップのアルファチャネルに配眮しお、テクスチャからより倚くのマむレヌゞを取埗しおいたす。 次に、3぀のテクスチャ... albedo / normal / ORMHを䜿甚しおほずんどのテクスチャを実行できたす。 これはデフォルトで远加する䟡倀がありたす別の高さマップを䜿甚したい高さマップ甚の16ビットオプションがない限り。 4.0が最終的にテッセレヌション/倉䜍を取埗した堎合、高さチャネルは珟圚よりもはるかに重芁になりたす。

そしお、それに぀いお蚀えば、4.0でDEPTHチャネルの名前をHEIGHTに倉曎し、珟圚䜿甚しおいるものの逆を䜿甚するこずも良い機䌚です぀たり、癜は隆起した衚面で、黒は凹んでいたす。 これにより、他のレンダラヌやゲヌム゚ンゞン、さらに重芁なこずに、Substance、Quixel、Marmosetなどのツヌルず歩調を合わせるこずができたす。

2Dノヌドず3Dノヌドには明瀺的なサフィックスを䜿甚し、該圓しない堎合はサフィックスを䜿甚しない方がよいでしょう。 たた、「Control」ノヌドを「Node2D」ノヌド甚に完党に分離したいず思いたすこれらは䞡方ずも珟圚「CanvasItem」の䞋にグルヌプ化されおいたす。

translation察positionに぀いおは、2Dず3Dの䞡方で前者を遞びたす。

positionはより芪しみやすいように芋えたすが、祖先がある皋床の回転たたはスケヌルを持っおいるず、意味がなくなりたす。

互換性に関しおは、チュヌトリアル、ナヌザヌ、およびプロゞェクトに十分な時間を䞎えるために、移行段階はすべおの4.xリリヌスで継続する必芁がありたす。 新しい名前は䞀玚垂民であり、奚励されるべきですが、叀い名前は、倉曎に぀いお人々に䌝えるための線集䞭のメカニズムを䜿甚しお機胜する必芁がありたす。

゚ンドナヌザヌが前述のようなツヌルを䜿甚しお既存のコヌド独自のコヌドたたは既存のチュヌトリアルやドキュメントのコヌドを簡単に曎新できるように行われおいる限り、提案された倉曎に絶察に賛成です。 そのようなツヌルがないので、v2からv3ぞの倧きな移行の盎埌に積み䞊げおいるこずに同意する傟向がありたす。

@TwistedTwiglegは、3Dゲヌムのリリヌスに関しお、4.0ずVulcanを埅っおいるためです😎

Controlノヌド名...ずむンラむンドキュメントも確認したす。

AcceptDialogずConfirmationDialogの違いは䜕だろうず思うこずがありたすが、 PopupPanel 、 PopupDialog 、 PopupMenuでも同じです...これを願っおいたす助けたす

家庭教垫およびドキュメントの寄皿者ずしお、私は先に進んでください 将来、誰もが゚ンゞンを孊び、理解しやすくなるように倉曎すれば、もっず倚くのコンテンツを䜜成しおもかたいたせん。 この皮の倉曎もできるだけ早く行う方がよいでしょう。

パヌティヌに遅れお来るが、物事を管理しやすくするためのいく぀かの説明

  • ノヌドの名前を倉曎する提案ず、互換性を維持する方法に関する技術的な圱響、既存のプロゞェクト、チュヌトリアル、コンテンツメヌカヌなどぞの圱響に぀いおのみコメントしおください。
  • これは、名前の倉曎を怜蚎する必芁があるAPIの特定のポむントに぀いお説明する堎所ではありたせん。 この倧芏暡な名前倉曎を採甚するこずにした堎合は、スプレッドシヌトでAPI党䜓を確認しお、名前が䞀貫しおいるこずを確認したす。 ここで説明されおいる以䞊に名前を倉曎する必芁があるメ゜ッド、プロパティ、クラスなどの特定のものに぀いおは、16863を参照しおください。
  • @RandomShaper @fracteed @fire @reduz専甚の問題に暙準物質に぀いおの議論を移動しおください。

こんにちは、
他のAPIの慣䟋に埓い、クラスたたはメ゜ッドの廃止/非掚奚のデコレヌタを䜜成しおみたせんか。぀たり、叀い名前は単に新しい名前の゚むリアス/ポむンタです。 これにより、重倧な倉曎が停止され、バヌゞョン5で名前を削陀できるため、圱響を受ける人や気付く人が少なくなりたす。

デコレヌタを䜿甚するず、他に2぀の利点がありたす。

  1. IDEはこのタグを簡単に取埗しお、ノヌド遞択りィンドりに衚瀺できたす。たずえば、単に「空間」ず蚀う代わりに、「空間以前はNode3Dを䜿甚」ず読み取るこずができたす。

  2. デコレヌタは、コヌド゚ディタに衚瀺される組み蟌みの譊告になる可胜性がありたす。

さらに、名前倉曎ツヌルの䜜成を止めるこずはできたせん...

いく぀かの考え

䞀貫性を向䞊させ、APIの孊習ず䜿甚を容易にするために、ノヌドの名前を倉曎するこずに同意したす。たた、いく぀かのメ゜ッドずプロパティ16863の珟圚のリストを参照にも同意したす。 2D / 3Dの区別を明確にするこずは良い考えのように思われ、実行する堎合は䞀貫しお実行する必芁がありたすたずえば、前述のMeshInstance3Dも。 スプレッドシヌトを䜿甚しお、珟圚のすべおのノヌドず4.0での新しい名前を䞀芧衚瀺するこずをお勧めしたす。そこで、TileMap / GridMapなどの特定のノヌドに぀いおバむクシェッドするこずができたす。 これが私たちの望む方法であるこずが確認できれば、数日䞭にこのスプレッドシヌトを䜜成したす。

それでも、互換性の砎損を可胜な限り制限するように努める必芁がありたす。 Juanが述べたように、叀いシヌンをロヌドしお倉換できるように、゚ンゞン内郚で互換性の名前を倉曎するこずができたすが、それだけでは十分ではありたせん。

@RandomShaperず@chucklepieが述べたように、名前を倉曎するすべおのノヌド、メ゜ッド、プロパティ、定数、シグナルなどに非掚奚の゚むリアスを远加し、プロパティデコレヌタ/メタデヌタを远加しお、それらを廃止ずしお通知し、ナヌザヌに倉曎を促す必芁がありたす圌らのコヌド。 IDEでこの情報を䜿甚するず、ナヌザヌは4.0の3.xチュヌトリアルを問題なく実行できるようになり、新しい名前に぀いお簡単に孊ぶこずができたす。

そのためには、バむンディングを登録するずきに非掚奚の゚むリアスを定矩できるヘルパヌメ゜ッドが必芁です。 23023は、このようなむンタヌフェむスを远加する最初の詊みですが、4.0で必芁なものに察しお十分でない堎合は、レビュヌ、マヌゞ、および拡匵する必芁がありたす。 これらの非掚奚の゚むリアスは、4.xリリヌスサむクル党䜓にわたっお保持され、5.0で削陀されたす。
このむンタヌフェむスが適切に蚭蚈およびマヌゞされるたで、互換性を壊すような名前の倉曎には反察したす。したがっお、これに関心のある人は、このPRを詊しお、必芁に応じお倉曎を提案しおください。

い぀に぀いおは

Godotのナヌザヌベヌスは毎幎ほが2倍になるため、毎幎通過するずリファクタリングの珟実性が䜎䞋したす。最終的には、倧芏暡なナヌザヌベヌスの慣性が互換性を損なうこずによるメリットを䞊回りたす。 UnityやUnrealのような他の゚ンゞンがGodotず比范しおAPIの点で比范的安定しおいるように芋える堎合、それはリファクタリングたたは名前倉曎したいものがないためではなく、䜙裕がないためです。 今のずころただできるので、機䌚を利甚する必芁がありたす。 これはGodot3.0でも同じで、コミュニティは比范的無傷で出おきたしたが、3.0に移怍する䜙裕がないため、2.1に固執するナヌザヌの割合はわずかです。 4.0の堎合、これらの倉曎の範囲は倧幅に少なくなり、移怍䜜業は簡単になるはずですが、その間にコミュニティは倚様化するため、互換性のある砎損の圱響は3.0の堎合ず同じかそれ以䞊になりたす。画像の条件/环積されたナヌザヌの煩わしさ:)

私は互換性を壊すこずを倧いに支持しおいたす。
それが問題にならない理由開発者が叀いバヌゞョンでゲヌムを公開し、その埌、叀いバヌゞョンの゚ンゞンで開発を続ける堎合、誰も開発者に新しいバヌゞョンぞの移行を匷制したせん。 たた、たさにこの目的のために、ダりンロヌド甚の叀いバヌゞョンを提䟛し続けおください。
新しいプロゞェクトは新しいバヌゞョンの゚ンゞンで開始でき、開発者が゚ンゞンの動䜜方法を再孊習する忍耐力があるかどうかにかかっおいたす。
゚ンゞンの䜿いやすさを向䞊させるこずになるず、目暙が最もナヌザヌフレンドリヌたたは匷力な゚ンゞンになるこずである堎合、再孊習の忍耐力が問題になるこずはありたせん。

名前の倉曎に぀いおは、孊習する資料にパタヌンがある堎合、孊習曲線を枛らすのに圹立ちたす。 たずえば、他のすべおのノヌドのNode2DずNode3Dなどです。 それがアヒルのように芋える堎合、あなたはそれがどうなるか知っおいたす、それはおそらくアヒル、たたはこの䟋ではノヌドです。
人間の脳は最適化された量子コンピュヌタヌずしお機胜し、システムの最䜎゚ネルギヌ状態を盞互に接続しお孊習し、アむデア間の論理パスを䜜成したす。 孊習するアむデアが類䌌しおいる堎合、それらの最䜎゚ネルギヌ状態は互いにより近くなり、それらを接続および蚘憶しやすくなりたす。これは、事前に2Dを教えられおいれば、孊生が3Dを理解しやすい理由を説明しおいたす。 。 ノヌドの名前がそれらの間の類䌌性を反映しおいる堎合、知識が類䌌のタむプに存圚する堎合、新しいタむプがどのように䜿甚されるべきかを孊び、理解するこずも容易です。

私は先に進んで、あなたが望む方法で互換性をリファクタリングしお壊すず蚀いたす。 倱ったナヌザヌが少ない堎合でも、䜿いやすさが向䞊し、孊習曲線が枛少するこずで、さらに倚くのナヌザヌを獲埗できたす。

これに関連しお、Blender2.80を䟋にずっおみたしょう。 珟圚の倖芳ず動䜜を以前ず比范したす。 これは倧きな倉曎であり、倚くの開発者が゜フトりェアの動䜜を再孊習する必芁がありたす。 ここで、Blenderのナヌザヌ数を考えおみたしょう。 Godotず比范するず、巚倧ですが、ずにかく゜フトりェアを倧幅に倉曎したした。 どうしお 長期的には、新しいワヌクフロヌに移行する忍耐力がない䞀郚のナヌザヌを倱うこずを意味する堎合でも、孊習曲線を枛らしお䜿いやすさを向䞊させる方が垞に有益であるためです。

結局のずころ、私はこの堎合の重倧な倉曎には賛成したせん。

有機的に成長した呜名芏則に感じられる欲求䞍満は理解できたすが、広範囲にわたる砎壊的な倉曎を正圓化するものは芋圓たりたせん。

移行したいAPIを非掚奚にするそしおコンパむル時ずドキュメントでAPIにフラグを付けるこずに党力を泚いでいたすが、理想的には叀いノヌド名は以前ず同じように機胜し続けたす。

おそらく、数幎埌には、埓来のノヌド名が完党に無痛になったため、廃止する時期かどうかを尋ねるこずができたす。 それたでは、必芁に応じお新しい名前を远加し私はそれに぀いお匷い意芋はありたせん、䞋䜍互換性を壊さないようにするこずをお勧めしたす。

@fracteed芖差マッピングはそのテクスチャに察しお倚くのタップを行い、毎回䞍必芁にRGBを取埗する必芁があるため、実際には別のテクスチャのチャネルに奥行きを持たせるこずはおそらく良い考えではありたせん。 単䞀のグレヌスケヌルテクスチャを䜿甚する堎合、Godotはそれを半分のサむズに圧瞮し、垯域幅を節玄したす。

暙準のマテリアルにORMモヌドを蚭定するこずも良い考えかもしれたせんが、それを確認する必芁がありたす。

@chucklepie問題は、すべおの蚀語がtypedefのようなクラス゚むリアスをサポヌトしおいるわけではないずいうこずです。 Cはその1぀です。

@reduzああ、私はそれを知らなかった、知っおおくず良い。 より重芁な問題は、深床チャネルを4.0の高さに切り替えるこずです。したがっお、それを倉曎するこずを怜蚎しおください。

線集。 申し蚳ありたせんが、アキ゚ン、これを投皿した埌にあなたのコメントを芋ただけです...

@neikeq問題は、すべおの蚀語がtypedefのようなクラス゚むリアスをサポヌトしおいるわけではないずいうこずです。 Cはその1぀です。

ネむティブC ++ラむブラリがどのように実装されおいるかはわかりたせんが、アップストリヌムの蚀語バむンディングが䜕であるかが問題にならないように、ネむティブC ++レベルでこの装食を行うメカニズムに぀いお詳しく説明しおいたす。 それが䞍可胜な堎合は、各蚀語のバむンディングをスむヌトに簡単に適合させるこずができたすたずえば、Cの属性を䜿甚するなど。

@ gerald1248私の投皿を読んでください。壊れるずは蚀っおいたせんが、3.xで䜜成されたプロゞェクトは、ロヌド時ずスクリプト時に゚むリアスを䜿甚しお匕き続き機胜したす。 それらを䜿甚するず、非掚奚の譊告がトリガヌされたすが、プロゞェクトは匕き続き機胜したす。

私はの倧ファンです

ナビゲヌション-> Nagivagion3D

名前を倉曎したす。 私はこのリク゚ストを2番目にしおいたす

@reduzは蚀った
@TwistedTwigleg私の投皿を読んでください。内郚互換性システムが远加された堎合、3.0プロゞェクトは4.0で正垞に開きたす。

私の悪い、私は投皿のその郚分を逃したした。

内郚互換性システムは移行に圹立ち、特に23023のようなものず組み合わせるず、間違いなく私をフェンスの「倉曎を加える」偎に眮くこずができたす。 この倉曎の前にプロゞェクトで䜕かが蚈画されおいるこずを知っおおくず、この提案に぀いお私が抱いおいた倚くの懞念を聞くこずができ、緩和されたす。

@Norroxは蚀った
@TwistedTwiglegは、3Dゲヌムのリリヌスに関しお、4.0ずVulcanを埅っおいるためです😎

それは公平です。
特に、Godot 4.0でのGodotの3D偎の改善を考えるず、埅機は3Dの重いプロゞェクトにずっお悪いこずではないかもしれたせん。

3Dず2Dの区別は、すでに䞀貫性が明確です。 3Dノヌドは明るい赀、2Dノヌドは青、UIノヌドは緑です。 ネヌミングに問題があるナヌザヌは垞に存圚したす。 これは終わりのない問題であり、コミュニティの芏暡に基づく乗法的問題です。

OPで提案された倉曎に関しお2dノヌドにはすでに「2D」サフィックスが適甚されおいたす。これは、_本質的に、察応するものが3dであるこずを意味したす_。

ただし、 LabelからTextLabelような倉曎には賛成です。  @MuffinManKenは玠晎らしいポむントになりたす

私はここで基本的にすべおを完党にサポヌトしおいたすが、「Sprite2D / Sprite3D」の質問に関しおは、2Dサフィックスが䜙分な量のIMOを远加する以倖の理由がない堎合は、SpriteをSpriteのたたにしおおくこずをお勧めしたす。

@girngが蚀うように、我々は避けるの混乱に偉倧な長さに行く必芁はありたせんので、2D / 3Dの分化は、すでにカラヌコヌディングによるかなり明確です。 Godot開発者の芳点からは、プロゞェクト内の名前が倉曎されおいない

その色分けは、さたざたな圢の色芚異垞を持぀人々に圹立ちたすか
ダむアログからノヌドを远加するのではなくコヌドを入力するずきは、絶察に圹に立ちたせん。

@reduzお返事ありがずう

しかし、繰り返しになりたすが、もっず明確なものを奜むかどうかを自由に提案し、すべおを垞に2D / 3Dにしたす。

明瀺的は暗黙的よりも優れおいたす。

ただし、コヌドを蚘述しおいるずきは、゚ディタヌで異なる色の@ girng @ AlexHoratioノヌドは圹に立ちたせん。 ここで混乱が生じるず思いたす。

Sprite3Dが存圚する必芁がある理由はただわかりたせん。他の゚ンゞンは、同じ目的でクアッドメッシュを䜿甚するだけです。スプラむトが排他的に2D甚語であるず、より簡単になりたす。

@ gimg 、 @ AlexHoratio人口の4.5が

名前を倉曎するのは良い考えだず思いたす。
2Dから3Dぞの移行がはるかに簡単になりたす。 少なくずも2Dから始める人にずっおはそしおおそらくその逆も

問題があるこずは明らかであり、コミュニティはそれが良い考えだず考えおいたす。 私はgodotに偏っおいお、あたりにも感情的に執着しおいたす。 この状態にあるこずは、他の人にはあたり意味がないが、私には完璧に意味のある考えを矎しい方法で生み出したす。 説明するのは難しい。 私の考えを衚明させおくれおありがずう

䞀貫性を保぀ために名前を倉曎する䟡倀があるずいう䞀般的なコンセンサスに同意したす。 今のずころ、ノヌドの1぀のセットが「ファヌストクラス」で、もう1぀のセットが「セカンドクラス」であるずいう倖郚的な印象を䞎える可胜性がありたす。あるいは、最初のノヌドに基づいおハッキングされお存圚する可胜性もありたす。

個人的には、 Sprite -> Sprite2Dは、完党に厳密な明瀺的な名前倉曎の䞍幞な犠牲者になるず思いたすが、疲れるたで、䜜成するすべおのシヌンでい぀でも手動でスプラむトに名前を倉曎できるず思いたすそれの。

CanvasLayerずCanvasItemがグルヌプ化されおおらず、他の人が指摘しおいるように、 Node2Dがコントロヌル付きのCanvasItemの内郚にあるこずは䞍快だず思いたす。

@ akien-mgaがこれはノヌドの名前倉曎のためだけだず蚀ったこずは知っおいたすが、少なくずもpositionずtranslationに぀いおの議論がここで関係しおいるず思いたす。 APIが倧幅に異なる堎合座暙系などの違いを陀く、ノヌドの名前を倉曎する目的はややフラットになるず思いたす。したがっお、ノヌドの名前は、どのようなものであっおも、間違いなく同じである必芁がありたす。 ここに行く方法ずしお「䜍眮」に投祚したいのですが、「翻蚳」ず比べお誀解を招くずのコメントがありたした。 「翻蚳」は、単なる座暙ではなく、倉圢や動きを意味するため、誀解を招くず思いたす。 䜍眮は盎感的に盞察的です、imoコンパスの方向に察しお怅子をたっすぐにするのではなく、郚屋の壁に察しおたっすぐにしたす。

倉数には䞡方の䜍眮ずいう名前を付ける必芁があるず思いたすが、 translate関数はそのたたにしお、 Node2D move_local関数をtranslate_localに倉曎したす。それを翻蚳ず呌びたす。 物理孊の動きず幟䜕孊的な平行移動を区別するために、物理孊に関連するノヌドにはmoveを䜿い続けたす。

この埌半の倚くは16863にも関連しおいたす

たた、 @ reduz 、Cが゚ンゞンで機胜を取埗するに぀れお、たすたす倚くの人々がCの名前空間を必芁ずするようになるず思いたす。たた、Cに入るず、倚くのgdscriptナヌザヌがそれらを䜿甚したいず考えお蚀語を切り替える必芁がないこずを想像できたす。機胜のために。 名前空間は最終的なCサポヌトに完党に䞍可欠だず思いたすが、gdscriptの堎合、メリットはそれほど劇的ではありたせんが、ナヌザヌの心配なしにプラグアンドプレむパッケヌゞが可胜になりたす。

これが実装された堎合、「単玔なノヌド名」ず呌ばれる゚ディタヌ蚭定を持぀こずができたす。これは、新しく䜜成されたノヌドの名前にサフィックスがないこずを意味したす。たずえば、新しい「Whatever2D」を䜜成するず、名前を「Whatever」に蚭定したすが、そのノヌドのスクリプトには「extendsWhatever2D」などず衚瀺されたす。ノヌドを䜜成しおから手動で名前を倉曎するのず同じです。

これにより、ナヌザヌが有効にするこずを遞択した堎合に、階局に「2D」たたは「3D」のデフォルト名が衚瀺されるこずを回避できたすが、コヌドの䞀貫性ず明瀺性は向䞊したす。 「3D」を含む3Dノヌドがないず、これは混乱を招きたすが、デフォルトでは最埌に「3D」を䜿甚するのが理にかなっおいたす。

@aaronfrankeそれはかなり堅実な考えだず思いたす。 これは、コヌドベヌスの䞀貫性ず明確さを維持しながら、ナヌザヌが階局から䜙分な雑然ずしたものを排陀できるようにする劥協案のようです。 名前の倉曎のアむデアに察する反察意芋の倚くは、名前自䜓に察する反察意芋ではなく、階局に䞎える圱響から来おいるず思いたす。

@aaronfranke賢明なアむデアを台無しにする人にはなり

@aspenforestマッピングを远加するこずは倧きなオヌバヌヘッドになるずは思いたせんが、゚ンゞンのアヌキテクチャがわからないので、おそらく私は玠朎です

@aaronfrankeのアむデアから簡単に䜜成できるのは、䜜成時にノヌドの名前を倉曎するこずです。 新しいのでsnake_caseや背骚の堎合に、新しく䜜成されたノヌド名を倉曎ProjectSettingsで既存の蚭定ず同様にMeshInstanceノヌドに自動的に呜名されたすmesh_instanceの代わりにMeshInstance 、ノヌドサフィックスに別の蚭定を远加するず、ノヌド名から「2D」たたは「3D」サフィックスが削陀されたすしたがっお、新しいSprite2Dノヌドの名前はSpriteだけになりたす。

KinematicBody2DやParticles2Dなどに䞍芁な「2D」サフィックスがあるこずに぀いお誰も文句を蚀わなかったので、「3D」サフィックスの远加を回避するために機胜を远加する必芁がある理由がわかりたせん盞手に...ナヌザヌがこれらのサフィックスを最初から存圚させたくない堎合は、この提案を砎棄する必芁がありたす。倖芳䞊の理由でIDEのノヌドの名前を倉曎する方法を回避する必芁はありたせん...

@ akien-mgaこれは、新しいノヌド名を「回避」するこずではなく、私にずっおは、䞀貫した呜名スキヌムを備えた非ハッキヌなものであり、䞀番䞊の肉汁です。 コヌディング、ノヌドの远加、たたはドキュメントの怜玢を行うずきのために、そこに接尟蟞が必芁です。 しかし、それらがシヌンに入るず、私はそれらが䜕であるかを知っおおり、ずにかく倚くのものがカスタム名を取埗したす。

名前を䞀貫させるか、名前をシンプルにするための゚ディタヌ機胜を取埗するかを遞択するこずになった堎合、前者を遞択したすが、 @ aaronfrankeは、この提案に察する異議は基本的に気付いおいたず思いたす。そしお圌の提案は、地䞋の䞀貫性を犠牲にするこずなく、このアむデアが実際にあるこずを扱っおいたす。

私は間違いなく、゚ディタヌ機胜を远加するこずはそれ自身の問題/ prであり、これを含めるために必芁なものではないず思いたす。

SpatialMaterialは奇劙な名前だったので、最初は避けた​​した。 しかし、それはずおも匷力なクラスです。 代わりに、3局マップのアルベド+ ao +法線を䜿甚しおシェヌダヌをコヌディングする方法を孊び始めたした。 次に、SpatialMaterialですべおの䜜業を実行し、それをコヌドに倉換しおより良い結果を埗るこずができたので、私が行ったすべおの䜜業が無駄であるこずに気付きたした。 したがっお、よりわかりやすい名前が必芁です。

明瀺的な2D / 3D名の堎合は+1。

将来的に非掚奚になる可胜性があるず思われる1぀のノヌドに぀いお質問がありたす。たた、名前の芳点から、誰の存圚が混乱する可胜性があるかを想像できたす。 新しいアニメヌションシステムが廃止されたため、AnimationTreeずAnimationTreePlayerずいう名前の2぀のノヌドができたした。これらのノヌドは、基本的に盞互に関係がありたせん。 これに察凊するための最良の方法は䜕かに぀いおの考えはありたすか

@SaracenOneこれはそのような質問をするのに適切な堎所ではありたせん。 ごめん。 このスレッドは、2D / 3Dサフィックスに぀いおのみ説明するためのものです。

名前の倉曎に぀いおより䞀般的に議論するための別の問題がありたすhttps://github.com/godotengine/godot/issues/16863

4.0で蚱容できる互換性の砎損の範囲を超えおいる可胜性があるため、おそらく実行䞍可胜/蚱容できないず考えおいたしたが、コメントするよりも経隓豊富な人がいるかどうかを確認するために蚀及したいず思いたした。

これらすべおの2D / 3Dノヌドは、2Dたたは3Dのいずれかの単䞀ノヌドタむプから継承できるず想像したした。 このようなノヌドのAPIには、いずれかのバヌゞョンに期埅されるすべおの関数が含たれ、それらの実装は、この特定のノヌドが2Dであるか3Dであるかによっお異なりたす。

理論的には、そのようなシステムは次のこずができたす。

  1. 2D / 3Dの察応物間で䞀貫したAPIを䜜成しおいるこずを確認しおください。 これは、私が芋おいるように、メリットずデメリットの䞡方です。この䞀貫性にもかかわらず、䞀方に含める必芁はないが、もう䞀方には含たれおいるものがある可胜性があるためです。
  2. 2぀の異なるタむプが盞互䜜甚しやすくするか、ノヌドの2Dバヌゞョンず3Dバヌゞョンの䞡方にアタッチするカスタムスクリプトを䜜成したす。

「SomeClass2Dにはx、y、zが実装されおいるが、SomeClass3Dにはそのようなものはない」ずいう状況を回避するのに適しおいお、呜名の問題を別の方法で解決したす。 これは、私が今考えおいないいく぀かの理由でおそらく蚘念碑的に愚かですが、私はそれをそこに捚おるず思いたした。

@vortexofdoomそれはすでに起こっおいるこずです。 Node2Dはすべおの2Dノヌドに継承され、Spatialはすべおの3Dノヌドに継承されたす。 問題は、すべおを䜕ず呌ぶか​​です。

そしお、さらに重芁なこずに、 SpatialずNode2D䞡方がNodeから継承したす。

@vortexofdoomのアむデアには、クラス階局だけではカバヌされおいないものがあるず思いたすが、それが䜕であるかを正確に刀断するこずはできたせん。

疑問に思っおいるのは、 Resource掟生したすべおのクラスに- Resサフィックスを远加するこずが有益だず思いたすか

@aaronfranke各タむプのノヌド単にKinematicBodyたたはSpriteを1぀持぀ずいうアむデアを指し、䞀番䞊のノヌドは、それらの動䜜を決定するある皮のNode2D3Dです。 それがうたく説明されおいなかったらごめんなさい。 したがっお、2D階局ず3D階局ではなく、2D / 3D階局がありたす。 だから私はそれがおそらく蚱容できるよりも倧きなリファクタリングになるだろうず蚀ったのです。

基本型を単独で䜿甚できないようにするこずで機胜する可胜性がありたすが、実際のノヌドになるには2D / 3Dずしお実装する必芁がありたす。その堎合、ノヌド名の正方圢に戻りたすが、継承はより倚くなりたす。 2Dず3Dの間で自動的に盎接接続され、システム間の盞互䜜甚はさらに優れおいるず思いたす私は思いたす。

@vortexofdoomしかし、実際には2Dず3Dの間で䜕も共有されおいたせん。 それらは同じノヌドタむプのいく぀かを持ち、同じメ゜ッド名を持っおいるかもしれたせんが、ほずんどすべおの実装は完党に異なりたす。 私が期埅できる最も共有できるのはむンタヌフェヌスです。あなたのアむデアにはif (is2d) { do 2d stuff } else { do 3d stuff }が含たれ、コヌドファむルの長さが2倍になり、非垞に読みにくくなり、䜕のメリットもありたせん。

動䜜が可倉の単䞀クラスの実珟可胜性は、トップレベルの2D / 3Dノヌドが実行できる重劎働の量に確実に䟝存し、抜象化をさらに䞋に送信したす。 珟圚䞀緒に存圚するクラスをマッシュアップするこずは、間違いなく問題の䟡倀がないでしょう、私は確信しおいたす。 再線成を実行するためにむンタヌフェむスを䜿甚しおもかたいたせんが、それでも、さたざたなタむプに察しお少なくずもある皋床の暙準化が適甚されたす。

このアむデアは、ノヌドの䞀般的なバヌゞョンから継承できるずいう怠惰な願いによっお促されたため、2Dバヌゞョンず3Dバヌゞョンを䞊行しお実行しおいるプロゞェクトですべおを2回実装する必芁はありたせんでした。 ノヌドは唯䞀の共通の祖先であるため、珟時点では、ノヌドから継承し、䜕らかの方法でそれを行うためにいく぀かのキャストを行う必芁がありたす。

Node2D3D それがいかにばかげおいるように聞こえるかは知っおいたすは、2぀の座暙系を互いによりうたく機胜させる方法ずしおだけでも、ある皋床の䟡倀があるず思いたすが、それはたったく別の蚭蚈䞊の問題に近づいおいたすこのスレッドより。 脇道になっおすみたせん。

@RandomShaper特にその単玔な名前のオプションがある堎合、私は間違いなくその利点を芋るこずができたした。

コメントは埌䞖のために残しおおきたすが、階局をほずんどそのたたにしお、厳密な2D / 3D呜名スキヌムを支持しお提案を撀回したす。

その理由は、すべおのノヌドの名前を倉曎するず、それらのクラス名がすべおナヌザヌが䜿甚できるように解攟されるためです。぀たり、 KinematicBodyやCollisionObjectなどの独自のクラスのセットを䜜成するこずで、探しおいた機胜を実装できたす。関連する機胜を匕き出しお受け継ぐこずができる

しかし、その゚ッゞケヌスの倖でも、簡単な䟋ずしおRoomGroupようなものを考案する代わりに、 Areaようなクラスを䜜成するこずができたす。

これが議論されおいるこずをずおもうれしく思いたす。 私はそれが成し遂げられるこずを望んでいたす。

それが蚀われたかどうかはわかりたせんが、䞀貫性を保぀ために名前を倉曎する堎合は、人間的に可胜な限り完党な䞀貫性を保ち、特定のメ゜ッドの名前を倉曎するこずもできたす。

䟋

Geometry.get_closest_point_to_segment()    # <-- this is the 3D version
Geometry.get_closest_point_to_segment_2d()

ノヌドずメ゜ッドに加えお、デヌタ構造はどうですか 私はず仮定Transformに倉曎されたすTransform3Dず䞊ぶようにTransform2Dが、 Basis倚分をする必芁はありたせんBasis3D Transform2Dすべお含たれおいるため、 Basis2Dがないためです。

@RandomShaper

疑問に思っおいるのは、 Resource掟生したすべおのクラスに- Resサフィックスを远加するこずが有益だず思いたすか

少し少なすぎるようです。 コヌドの匷調衚瀺、tbhの提案31054にリ゜ヌスを含めるこずに投祚したいず思いたす。 それらを別の色にするこずで、クラス名の入力が完了するずすぐに基本タむプが反映されたすVectorsやAABBなどの組み蟌みタむプの堎合ず同じです。

Screenshot_6
2Dず3Dに別々のプロゞェクトはどうですか。

2dをUIに、3dをSceneに眮き換える画像の提案に぀いお。

プロゞェクトを開始するずきに、䜜業するプロゞェクトを遞択したす。
クラス名にこれ以䞊のサフィックス2D、3Dは必芁ありたせん。

したがっお、そのようにしお、ある皮の名前空間が䜜成され、これらのタむプが混圚するこずはなくなりたす。

Godot2Dを䜿甚する;
Godot3Dを䜿甚する;

3Dたたは2Dプロゞェクトにいるずき-UIをクリックするず、GUIを線集するためのUI2Dりィンドりが衚瀺されたす。シヌンをクリックするず-シヌンにいたす2Dたたは3Dはプロゞェクトの皮類によっお異なりたす。

したがっお、このようにしお、どのプロゞェクトでもUIの2Dモヌドを維持したすが、Sceneは2Dたたは3Dりィンドりを開きたす

Screenshot_1

このりィンドりでは、プロゞェクトタむプ2dたたは3dに関連する、たたは䞡方で䜿甚しおいる堎合は共有される゚ンティティのみが䜿甚可胜になりたす

UIモヌドの堎合、新しいノヌドを远加するず、UIに関連するコンポヌネントのみが衚瀺されたこのりィンドりが衚瀺されたす。
シヌンモヌドのUIコントロヌルが衚瀺されおいない堎合、シヌンに適甚できるもののみ

@dmitryuck投皿した画像の堎合、3DゲヌムでもUIなどにGodotの2Dモヌドを䜿甚する必芁があるため、2Dボタンは垞に必芁です。 そしお、ずにかく2Dず3Dを混圚させるこずができるこずが望たしいです。 技術的には、2Dゲヌムは3Dボタンを䜿甚する必芁はありたせんが、非衚瀺にする必芁はほずんどありたせん。

芖芚的に䞍芁なサフィックスを回避するために、階局内でノヌド名を倖芳的に倉曎できるこずを䞊で提案したしたが、コヌドが垞に明瀺的である方がよいでしょう。

@aaronfranke以前のコメントで私が䜕を意味したかに぀いお少し広く説明を远加したした。

状況によっおノヌド名の衚瀺が違うず混乱するのではないかず思いたす。

人々は䞀目でスクリプトずシヌンツリヌを理解できるはずです。 コラボレヌションや明確なチュヌトリアルなどには必須だず思いたす。

@dmitryuck䞀郚のプロゞェクトでは、2Dず3Dの混合が必芁になる堎合がありたす。たた、䞀郚のゲヌムには3DのUIがありたす。

@Skarutsは、この゚ディタヌのようにコンポヌネントを実装するこずで、3Dシヌンで2Dビュヌに切り替えるこずができたす
Screenshot_1

もちろん、UIモヌドは䞡方のタむプのプロゞェクトに存圚する必芁がありたすが、グリッド、拡匵スナップ、ルヌラヌなどのUI甚に特別に䜜成されたツヌルを備えた独立したりィンドりである堎合がありたす。

@reduzの名前倉曎は良いこずですが、 。

@xxmatxx名前の倉曎が短い移行期間で行われた堎合は、叀い名前のドラッグを停止するこずをお
たた、倉曎を十分に文曞化し、Godotにずらわれおいる人々が倉曎に぀いお知っおいるこずを確認したす。 非掚奚バヌゞョンのノヌド名を䜿甚しおいるこずを通知する線集者の譊告も、これを忘れた堎合に圹立ちたす。

私は同意したす、それが長くかかるほど、人々を混乱させる可胜性が長くなりたす。 @AtomaFajrovulpoが提案したように、䞀定期間、゚ディタヌが非掚奚のものを蚱可しおいるが譊告を発しおいる堎合、チュヌトリアルずドキュメントはすぐに叀くなるこずはありたせん。 私が思うこれらの線に沿った䜕か

Node type 'Spatial' is deprecated and replaced by 'Node3D'. 

ず

Method 'clip_polygon()' is deprecated and replaced by 'clip_polygon_3d()'. 

昚日、定数がすべお同じケヌスに埓うわけではないこずがわかりたした。 たずえば、 Color.blackずVector3.UPたす。 これを4.0で䞀貫させるべきではありたせんか

@BenjaminNavarro色定数の倧文字ぞの倉曎に぀いおも、 https//github.com/godotengine/godot/pull/14704の䞋郚で説明されおい

たた、この問題は特にノヌド名に関するものであるため、メ゜ッド/シグナル/定数の名前倉曎に぀いおは16863で説明する必芁がありたす。

@Calinouありがずう、私は他の問題があるずかなり確信しおいたしたが、それらを芋぀けるこずができたせんでした。

私はむしろ4.0で名前を倉曎し、それを終わらせお、私が取り組んでいるプロゞェクトがさらに成長した埌にそれが埌で来るこずを知っおいるこずを望みたす。

メゞャヌリリヌスがそれを行う時期ではない堎合、それは䜕ですか。

SemVerバヌゞョン番号MAJOR.MINOR.PATCHを指定しお、次をむンクリメントしたす。
互換性のないAPIを倉曎した堎合のメゞャヌバヌゞョン、
䞋䜍互換性のある方法で機胜を远加する堎合のマむナヌバヌゞョン、および
䞋䜍互換性のあるバグ修正を行う堎合のPATCHバヌゞョン。

これでどこたで行きたすか

次に、GridMapはTileMap3Dになり、たずえばTilemap Tilemap2Dになりたすか

たた、node2Dずnode3Dは少し䞀般的なようですが、Spatial2DずSpatial3Dを䜿甚しないのはなぜですか

node2DずコントロヌルはCanvasItemから継承されたすが、UXの倧きな違いは、コントロヌル、node2D、spatialが、名前が䜕であれ、新しいノヌドダむアログのノヌドの䞋に盎接アクセスできるこずだず思いたす。 ずにかくCanvasItemをツリヌに盎接远加するこずはできないので、そのダむアログに衚瀺されるべきではないかもしれたせん。

そしお、メ゜ッドに関する限り、それらに2Dたたは3Dの接尟蟞を远加する必芁はないず思いたす。これは、メ゜ッドを正しく呌び出すものを知っおいるからです。

リ゜ヌスのむンポヌトが遅いこずぞの察凊や、GDスクリプトのパフォヌマンスの最適化など、いく぀かの有甚な曎新を行いたいず思っおいたす。 珟圚、1Gリ゜ヌスのむンポヌトには玄1時間かかりたす。 10Gリ゜ヌスをむンポヌトする堎合は、コンピュヌタヌの前に座っお2日間スリヌプする必芁がありたす。 ただし、700M-1Gむンポヌトのリ゜ヌス゚ディタファむルシステムブラりザが壊れおおり、䜕も衚瀺されたせん。 ファむルリスト、これぱディタヌ自䜓の欠点かもしれないので、既存の問題を最適化しお解決するこずがGodotにずっおより良い方法だず思いたす。 1億から5億のリ゜ヌスしかむンポヌトできない堎合、Godotは倧芏暡なゲヌムを開発できない運呜にありたすが、珟圚はパスがブロックされおおり、先に進むこずができたせん。 次のバヌゞョンがそのような問題を解決するこずを願っおいたす、私はGodotがたすたす良くなるこずを願っおいたす

@ qq715152910たったく関係のない情報を含む長いスレッドにはコメントしないでください。 この問題にコメントしたすべおの人にpingが送信され、コメントはノヌドの名前倉曎の提案ずは関係ありたせん。 結果ずしお、私はあなたのコメントを隠したす。

私たちに圹立぀名前の倉曎に぀いお意芋を述べたす䞻にCを䜿甚したす

匷くお勧めする名前の倉曎

  1. Transform.origin -> transform.origin

倉換プロパティぞのアクセスを小文字にする

どうしお
たずえば、空間にはアクセスできるTransformがありたすが、読みやすくするために「this.Transform.origin」ず曞くこずがよくありたす。「Transform」を「transform」に倉曎するず、「this」をすべお䜿甚する必芁はありたせん。時間。 それが私たちの個人的な意芋です。

  1. 「Label」を「TextLabel」のようなものに倉曎するこずもサポヌトしおいたす。 たたは、少なくずも新しいノヌドを远加するずきに「テキスト」で怜玢するず、完党に関連しおいるため、「ラベル」が衚瀺されたす。

  2. いく぀かのpredifined色の定数はでアクセスする必芁がありたすColorに反しでColors 。

提案されおいる名前の倉曎の残りの郚分に぀いおは、コミュニティがより良いず考えるものを楜しみにしおいたす。

AtlasTexture-> TextureAtlas

AtlasTextureずいう名前は、通垞の<Type>Texture芏則に埓っおおり、 <Type>はImage 、 Viewport 、 Stream 、 

AtlasTexture-> TextureAtlas

AtlasTextureずいう名前は、通垞の<Type>Texture芏則に埓っおおり、 <Type>はImage 、 Viewport 、 Stream 、 

これは、「Atlas」ず入力したずきに衚瀺されるものです。

capture212

これは、Textureず入力するずどうなるかです。

asdasd

線集私たちはなぜその慣習を理解しおいたす。 2番目のスクリヌンショットでは、 AtlasTextureは、 <Type>Texture芏則に埓う他のものず非垞によく䌌おいたす。 その埌、その点は以前の投皿から削陀されたした。 この特定のケヌスでは、ただオヌトコンプリヌトにあたり適しおいたせん。 しかし、私たちはそれを受け入れたす。 。

@bigmonteこの問題により、Godot 4.0ではTransform構造䜓の名前がTransform3Dに倉曎される可胜性があるため、プロパティであるこずを明確にするためにthis.は䞍芁になりたす。

線集 https 

いく぀かのpredifined色の定数はでアクセスする必芁がありたすColorに反しでColors 。

そもそも私がそれを提案したのですが、匷く反察したす。 でオヌトコンプリヌトを䜿甚するず、 Colorの静的メンバヌ珟圚はColor8 、 ColorN 、およびFromHsv の怜出可胜性が高たるため、これらを分離しおおくこずをお勧めしたす。さたざたなIDE。 䞀貫性を保぀ために、GDScriptでColor.redなど-> Colors.RED名前倉曎を提案するこずも怜蚎しおいたす。

ちなみに、16863を探しおいたず思いたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡