Three.js: ES6JSMナイブナãƒĒと一įˇ’ãĢJSナイブナãƒĒぎã‚ĩポãƒŧトをįļ™įļšã™ã‚‹

äŊœæˆæ—Ĩ 2020åš´10月05æ—Ĩ  Âˇ  51ã‚ŗãƒĄãƒŗト  Âˇ  ã‚Ŋãƒŧã‚š: mrdoob/three.js

抟čƒŊãƒĒã‚¯ã‚¨ã‚šãƒˆã¯å•éĄŒãĢé–ĸé€ŖしãĻいぞすかīŧŸ

ãƒĸジãƒĨãƒŧãƒĢと垓æĨぎ静įš„ãƒ•ã‚Ąã‚¤ãƒĢぎイãƒŗポãƒŧãƒˆãŽä¸Ąæ–šã‚’ã‚ĩポãƒŧトすることは、ナイブナãƒĒãŽčĄ›į”ŸįŠļæ…‹ãŒč‰¯åĨŊであると思いぞす。これãĢより、より嚅åēƒã„é–‹į™ēč€…ã‚°ãƒĢãƒŧプがナイブナãƒĒãĢã‚ĸクã‚ģ゚できるようãĢãĒり、開į™ēč€…ã¯åĨŊãŋぎ゚ã‚ŋイãƒĢをäŊŋį”¨ã§ãã‚‹ã‚ˆã†ãĢãĒりぞす。

個äēēįš„ãĢは、一čˆŦįš„ãĢãƒĸジãƒĨãƒŧãƒĢぎäŊŋį”¨ã‚’éŋけようとしãĻいぞす。古典įš„ãĒ単į´”ãĒJSãƒ•ã‚Ąã‚¤ãƒĢãĢåĢぞれる静įš„ãƒ•ã‚Ąã‚¤ãƒĢであるプロジェクトがåĨŊきです。 たãļんį§ã¯ãŸã ãŽå¤‰äēēですが、フãƒŦãƒŧムワãƒŧクが不åŋ…čĻãĢあãĒたをį‰Šäē‹ã‹ã‚‰ãŠã‚Œã ã‘æŠŊčąĄåŒ–ã—ã€ãŠã‚Œã ã‘čģŠčŧĒを再į™ē明するか、さもãĒければあãĒたをブナックボック゚化するぎがæœŦåŊ“ãĢåĢŒã„です。 フãƒŦãƒŧムワãƒŧクãĒしでãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã§ãã‚‹ã“とはįŸĨãŖãĻいぞすが、ãƒĸジãƒĨãƒŧãƒĢイãƒŗクãƒĢãƒŧドは垓æĨぎJSイãƒŗクãƒĢãƒŧドよりもį›´æ„Ÿįš„ではãĒく、静įš„ãƒ•ã‚Ąã‚¤ãƒĢč¨­åŽšå†…ã§ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã—ã‚ˆã†ã¨ã™ã‚‹ã¨å¤ąæ•—ã™ã‚‹ã“ã¨ãŒã‚ˆãã‚ã‚Šãžã™ã€‚

ES6ãƒĸジãƒĨãƒŧãƒĢぎäŊŋį”¨ã¯ã€ã™ãšãĻãŽåą•é–‹ãĢį†æƒŗįš„ではありぞせんが、įĸēかãĢ歓čŋŽã™ãšãčŋŊ加です。 į§ã¯ãƒŠã‚¤ãƒ–ナãƒĒとIMOが大åĨŊきãĒぎで、多くぎ新しいプログナマãƒŧãĢthreejsを教えãĻいぞす。これは、プログナミãƒŗグを始めるぎãĢ最遊でæē€čļŗぎいく斚æŗ•ã§ã™ã€‚ node / npm +フãƒŦãƒŧムワãƒŧク゚ã‚ŋック全äŊ“を同時ãĢ゚ロãƒŧダã‚ĻãƒŗさせることãĒく、åŸēæœŦįš„ãĒバニナCSS / JS/HTMLをäēē々ãĢ教える斚がはるかãĢį°Ąå˜ã§ã™ã€‚ 静įš„ナイブナãƒĒは、äŊŋį”¨/į†č§Ŗがį°Ąå˜ã§ã€ã“こでぎ参å…Ĩ障åŖã‚’äŊŽãæŠ‘えることができぞす。

様åŧįš„ãĢは、č‡Ēį”ąãĢ動き回る新しい名前äģ˜ãé–ĸ数をčŋŊ加するぎではãĒく、čŋŊ加抟čƒŊでTHREEをã‚ĒãƒŧバãƒŧロãƒŧドすることもåĨŊãŋぞす。 これは明らかãĢåĨŊãŋですが。

希望するã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗをčĒŦ明しãĻください

おそらく、ãƒĸジãƒĨãƒŧãƒĢぎãŋãĢį§ģčĄŒã™ã‚‹ã“ã¨ãŒæąē厚されたį†į”ąãĢついãĻã‚‚ã†å°‘ã—æƒ…å ąã‚’åž—ãŸåžŒã€ã“ã‚ŒãĢもãŖとよくį­”えることができぞすが、į§ã¯ãã‚Œã‚’įĒãåˆēしぞす。

ドキãƒĨãƒĄãƒŗトでは、ES6ãƒĸジãƒĨãƒŧãƒĢがすずãĻぎįŠļæŗã§æŠŸčƒŊするとは限らãĒいことをčĒŦ明しãĻおり、そぎようãĒįŠļæŗã§ã¯ã€browserify / rollup / webpack/parcelãĒおぎバãƒŗドナãƒŧをäŊŋį”¨ã™ã‚‹ã“とをお勧めしぞす。

į§ãŽč§Ŗæąēį­–は、č‡Ē動ES6バãƒŗドナãƒŧ゚クãƒĒプトで/ examples / jsmぎãƒĸジãƒĨãƒŧãƒĢをčĒŋずãĻ、 / examples/jsぎ非ãƒĸジãƒĨãƒŧãƒĢバãƒŧジョãƒŗをį”Ÿæˆã™ã‚‹ã“とです。 こぎようãĢしãĻ、開į™ēč€…ã¯2つぎ場所で変更を加えることをåŋƒé…ã™ã‚‹åŋ…čĻãŒãĒくãĒり、åŋ…čĻãĢåŋœã˜ãĻJS非ãƒĸジãƒĨãƒŧãƒĢバãƒŧジョãƒŗとグロãƒŧバãƒĢ変数イãƒŗポãƒŧト゚ã‚ŋイãƒĢをåŧ•ãįļšãæĨŊしむことができぞす。

こぎJS非ãƒĸジãƒĨãƒŧãƒĢãƒ•ã‚Ąã‚¤ãƒĢぎč‡Ē動į”Ÿæˆã¯ã€ãƒ“ãƒĢドプロã‚ģ゚ぎ一部としãĻåŽŸčĄŒã™ã‚‹ã“ã¨ã‚‚ã€čĒ°ã‹ãŒæ‰‹å‹•ã§åŽŸčĄŒã§ãã‚‹package.jsonぎã‚ŗマãƒŗドãĢすることもできぞす。 č‡Ē動į”Ÿæˆã‚’選択しぞすが。

こぎč‡Ē動化をäŊœæˆã™ã‚‹ã‹ã€ã“ぎナイブナãƒĒぎJS非ãƒĸジãƒĨãƒŧãƒĢバãƒŧジョãƒŗをįļ­æŒã™ã‚‹ã“とは、į§ãŒæ™‚間を寄äģ˜ã§ãã‚‹ã‚‚ぎです。 ES6ぎãŋãĢジãƒŖãƒŗプするį†į”ąãŒã€åŒã˜ã‚‚ぎぎ2つぎä¸Ļ列バãƒŧジョãƒŗを手動で更新するåŋ…čĻã‚’ãĒくすだけではãĒい場合は、これらぎ懸åŋĩãĢ寞å‡Ļするためぎäģ–ぎã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗãĢついãĻもčĒŦ明したいと思いぞす。

æ¤œč¨Žã—ãŸäģŖæ›ŋæĄˆã‚’čĒŦ明しãĻください

äģ–ぎ明らかãĒč€ƒæ…Žäē‹é …は、į‰Šäē‹ã‚’そぎぞぞãĢしãĻ、すずãĻぎナイブナãƒĒぎJSおよãŗJSMバãƒŧジョãƒŗをįļ­æŒã—įļšã‘ることです。 これらは非推åĨ¨ãĢãĒãŖãĻいるというį™ēčĄ¨ã‚’č€ƒæ…Žã—ãĻいぞすが、これはややありそうもãĒいと思いぞす。 ただし、こぎãƒĢãƒŧトを選択する場合は、JSナイブナãƒĒがJSMナイブナãƒĒを手動で最新ぎįŠļ態ãĢäŋã¤ã‚ˆã†ãĢするč˛Ŧäģģã‚’č˛ ã„ãžã™ã€‚

čŋŊ加ぎã‚ŗãƒŗテキ゚ト

こぎナイブナãƒĒと、ã‚ŗãƒŧãƒ‰ãžãŸã¯å•éĄŒãŽå ąå‘Š/č­°čĢ–ぎいずれかでč˛ĸįŒŽã™ã‚‹ã™ãšãĻぎäēēãĢ大いãĢ愛されãĻいぞす。

Suggestion

æœ€ã‚‚å‚č€ƒãĢãĒるã‚ŗãƒĄãƒŗト

čŗ›åĻ严čĢ–ã‚’å…ąæœ‰ã—ãĻくれãĻありがとう。 æƒ…å ąãĢåŸēãĨいたæąēåŽšã‚’čĄŒãŖãĻいることをįĸēčĒã™ã‚‹ãŸã‚ãĢã€ã“ã‚Œã‚‰ã‚’å…ąæœ‰ã™ã‚‹ã“ã¨ã¯å¸¸ãĢč‰¯ã„ã“ã¨ã§ã™ã€‚

これはį§ãŒäģŠåš´ã„くつかぎ頭č„ŗã‚ĩイクãƒĢをč˛ģやしãĻきたことであり、ブナã‚Ļã‚ļベãƒŗダãƒŧãĢå„Ē先順äŊãĢついãĻ尋ねたことさえあるぎで、äē‹å‰ãĢ計į”ģをįĢ‹ãĻることができぞした。

ES6ãƒĸジãƒĨãƒŧãƒĢは将æĨぎもぎであることãĢ同意しぞすが、イãƒŗポãƒŧトマップãĒしでES6ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã—ãĻ開į™ēすると、大きãĒé ­į—›ãŽį¨Žã¨ãĒり、フロãƒŧが厌全ãĢ中断する可čƒŊ性がありぞす。 examples/jsをåģƒæ­ĸすることをæąē厚したとき、イãƒŗポãƒŧトマップぎį‰Ŋåŧ•åŠ›ãŒéĢ˜ãžã‚‹ã“とを期垅しãĻいぞしたが、įžåœ¨ã€ãƒ–ナã‚Ļã‚ļãƒŧぎå„Ē先äē‹é …ではãĒいようです。

こぎため、ブナã‚Ļã‚ļがイãƒŗポãƒŧトマップを原čŖ…するぞで、 examples/jsフりãƒĢダぎ非推åĨ¨ã‚’一時停æ­ĸすることãĢしぞした。 最初ぎįĢ‹æ–šäŊ“ã‚’ãƒŦãƒŗダãƒĒãƒŗグするためãĢ、初åŋƒč€…ãĢポãƒĒフã‚ŖãƒĢやバãƒŗドナãƒŧãĢついãĻå­ĻãļようãĢåŧˇåˆļするぎはåĢŒã§ã™ã€‚

@Bug-Reaperと同じįĩčĢ–ãĢ達しぞした。 äģŠæ—Ĩは、 examples/jsmãƒ•ã‚Ąã‚¤ãƒĢからexamples/jsをäŊœæˆã™ã‚‹ã‚šã‚¯ãƒĒプトぎäŊœæˆã‚’æ¤œč¨Žã—ãĻいぞす。

全ãĻぎã‚ŗãƒĄãƒŗト51äģļ

node / npm +フãƒŦãƒŧムワãƒŧク゚ã‚ŋック全äŊ“を同時ãĢ゚ロãƒŧダã‚ĻãƒŗさせることãĒく、åŸēæœŦįš„ãĒバニナCSS / JS/HTMLをäēē々ãĢ教える斚がはるかãĢį°Ąå˜ã§ã™ã€‚ 静įš„ナイブナãƒĒは、ここでぎ参å…Ĩ障åŖã‚’äŊŽãäŋãĄãžã™ã€‚

こぎプロジェクトでįļ­æŒã•ã‚ŒãĻいるjsãƒĸジãƒĨãƒŧãƒĢぎ䞋を明įĸēãĢするためãĢ、ノãƒŧド、npm、ぞたはビãƒĢドフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã™ã‚‹åŋ…čĻã¯ã‚りぞせん。 これらは、古いグロãƒŧバãƒĢイãƒŗポãƒŧトと同じようãĢ、静įš„ãĢæäž›ã•ã‚Œã‚‹ãƒ•ã‚Ąã‚¤ãƒĢとしãĻäŊŋį”¨ã§ããžã™ã€‚ äŊŋį”¨ã™ã‚‹ãĢはes6イãƒŗポãƒŧト構文がåŋ…čĻã§ã™ãŒã€ã“れは最新ぎすずãĻぎブナã‚Ļã‚ļで抟čƒŊしぞす。

こぎプロジェクトでįļ­æŒã•ã‚ŒãĻいるjsãƒĸジãƒĨãƒŧãƒĢぎ䞋を明įĸēãĢするためãĢ、ノãƒŧド、npm、ぞたはビãƒĢドフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã™ã‚‹åŋ…čĻã¯ã‚りぞせん。 これらは、古いグロãƒŧバãƒĢイãƒŗポãƒŧトと同じようãĢ、静įš„ãĢæäž›ã•ã‚Œã‚‹ãƒ•ã‚Ąã‚¤ãƒĢとしãĻäŊŋį”¨ã§ããžã™ã€‚ äŊŋį”¨ã™ã‚‹ãĢはes6イãƒŗポãƒŧト構文がåŋ…čĻã§ã™ãŒã€ã“れは最新ぎすずãĻぎブナã‚Ļã‚ļで抟čƒŊしぞす。

ごčĒŦ明ありがとうございぞすīŧ それはįĸēかãĢč‰¯ã„į‚šã§ã™īŧ
į§ã¯äŋĄã˜ãĻいるīŧš

<script type="module">

  import { OrbitControls } from 'https://unpkg.com/three@<VERSION>/examples/jsm/controls/OrbitControls.js';

  const controls = new OrbitControls();

</script>
````
is perhaps less intuitive and harder to understand for newcomers than: 

ãĄã‚‡ãŖと垅ãŖãĻください...ぞだありぞすīŧš

<script src="path/to/local/build/three.js"></script>

反寞ãĢīŧš

<script type=module src="path/to/local/build/three.module.js"></script>

1つį›Žã¯ã€čĒ°ã‹ãŽhtml内ぎold-global-wayãĢåž“ãŖãĻäŊŋį”¨ã§ãã‚‹é™įš„゚クãƒĒプトです...そうですかīŧŸ ES6へぎį§ģčĄŒåžŒãĢできãĒくãĒãŖたことはäŊ•ã§ã—たかīŧŸ

į§ãŒæ­Ŗしくį†č§ŖしãĻã„ã‚Œã°ã€č¨ˆį”ģは「/build/three.module.js」ãĢ加えãĻ「/build/three.js」をåĢめることです。

はい。 ただし、こぎã‚ĸプロãƒŧチがį†ãĢかãĒãŖãĻいるかおうかはį–‘問です。 examples/jsが削除されãĻも、 three.jsとthree.min.jsがåŧ•ãįļšãåŊšįĢ‹ã¤ãƒĻãƒŧã‚šã‚ąãƒŧ゚はごくわずかです。

three.jsとthree.min.jsを削除すると、 npmãƒ‘ãƒƒã‚ąãƒŧジぎmainエãƒŗトãƒĒポイãƒŗトを変更できるため、原際ãĢは有į›Šã§ã™ã€‚īŧƒ19575を参į…§ã—ãĻください。

į°Ąå˜ãĢできるぎであれば、ビãƒĢドプロã‚ģ゚ぎ一部としãĻES6バãƒŗドナãƒŧ゚クãƒĒプトをäģ‹ã—ãĻ/ examples / jsをč‡Ē動įš„ãĢį”Ÿæˆã™ã‚‹ã“とãĢより、/ examples/jsぎã‚ĩポãƒŧトをįļ™įļšã™ã‚‹ã“とはį†ãĢかãĒãŖãĻいると思いぞす。

ã‚ĸイデã‚ĸは、 examples/jsmをクナ゚ãĒおぎ最新ぎJavaScript言čĒžæŠŸčƒŊãĢį§ģčĄŒã™ã‚‹ã“ã¨ã§ã™ã€‚ examples/jsは古いブナã‚Ļã‚ļでも抟čƒŊするはずãĒぎで、ã‚ŗãƒŧド変換抟čƒŊをäŊŋį”¨ã—ãĻ新しいīŧˆäž‹īŧ‰ãƒ“ãƒĢドを構成するåŋ…čĻãŒã‚りぞす。 ããŽä¸Šã€é‡č¤‡ã—ãŸã‚ŗãƒŧドベãƒŧã‚šīŧˆ examples/jsとexamples/jsm īŧ‰ã‚’äŋæŒã—ぞすが、これはį§ãŽčĻ‹č§Ŗではæ‚Ēいã‚ĸプロãƒŧチです。 ãƒĄãƒŗテナãƒŗã‚šãŒã‚ˆã‚Šč¤‡é›‘ãĢãĒりぞす。

åŋ…čĻãĢåŋœã˜ãĻ、ãƒĻãƒŧã‚ļãƒŧがES6からES5ã¸ãŽå¤‰æ›ã‚’čĄŒã†åŋ…čĻãŒã‚ると思いぞす。 ã‚ŗãƒŧドぎį¸Žå°ã‚„そぎäģ–ぎビãƒĢドé–ĸé€Ŗぎã‚ŋ゚クãĢついãĻも同じです。

į§ã¯ã‚ãĒたがæ­ŖしいとäŋĄã˜ãĻいぞす。 į§ãŒæ­Ŗしくį†č§ŖしãĻã„ã‚Œã°ã€č¨ˆį”ģは「 /build/three.module.js 」ãĢ加えãĻ「 /build/three.js 」をåĢめることです。

įœŸ

/examplesフりãƒĢダãƒŧã‹ã‚‰ãŽåĄ—ã‚Šã¤ãļã—ãŽå•éĄŒã¯ã€$īŧƒ /build/three.jsをäŊŋį”¨ã—た場合は/examples/jsãŽãƒ•ã‚Ąã‚¤ãƒĢをäŊŋį”¨ã—、 /build/three.module.jsをäŊŋį”¨ã—た場合は/examples/jsmãŽãƒ•ã‚Ąã‚¤ãƒĢをäŊŋį”¨ã™ã‚‹åŋ…čĻãŒã‚ることです。 /build/three.module.js 、åˆĨ名ロãƒŧãƒ‰ãƒĄã‚Ŋッドぎ一č˛Ģ性をäŋãĄãžã™ã€‚

ãĒんでīŧŸ ãƒĸジãƒĨãƒŧãƒĢイãƒŗポãƒŧトをäŊŋį”¨ã™ã‚‹ã¨ã€ãƒĄã‚¤ãƒŗぎTHREEã‚ĒブジェクトはプãƒŦãƒŧãƒŗãĒjsã‚ĒブジェクトTHREE = {}ではãĒく、封印されたīŧˆæ‹ĄåŧĩできãĒいīŧ‰å†…部ブナã‚Ļ​​ã‚ļぎãƒĸジãƒĨãƒŧãƒĢã‚Ēブジェクトであるため、 /examples/jsã‹ã‚‰ãŽãƒ•ã‚Ąã‚¤ãƒĢ$ THREEã‚ĒブジェクトãĢ新しいプロパテã‚Ŗを書きčžŧもうとするīŧƒ$ã¯å¤ąæ•—ã—ãžã™ã€‚

したがãŖãĻ、 import * as THREE from '/build/three.module.jsとTHREE.WhateverExample = function() ...ã‚’æˇˇåœ¨ã•ã›ã‚‹ã“ã¨ã¯ã§ããžã›ã‚“

č€ƒãˆã‚‰ã‚Œã‚‹æ–šæŗ•ãŽ1つは、イãƒŗポãƒŧトされたlibぎ名前をTHREEäģĨ外ãĢ変更し、䞋を書きčžŧむためぎプãƒŦãƒŧãƒŗãĒjs THREEグロãƒŧバãƒĢã‚Ēブジェクトを再äŊœæˆã™ã‚‹ã“とです...

これは通常、

åž“æĨぎJSãĢは

これはグロãƒŧバãƒĢ゚ペãƒŧ゚ぎå‘Ŋ名を意å‘ŗし、ロãƒŧãƒ‰ã•ã‚ŒãŸãƒ•ã‚Ąã‚¤ãƒĢãĢ名前を変更できãĒいため、æŦĄãŽã‚ˆã†ãĒエナãƒŧがį™ēį”Ÿã™ã‚‹å¯čƒŊ性がありぞす...
一斚、ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã™ã‚‹ã¨ã€ãƒĻãƒŧã‚ļãƒŧはイãƒŗポãƒŧト中ãĢ名前をäģ˜ã‘ることができ、įĩæžœãŽåå‰ã‚’選択するぎはナイブナãƒĒぎäŊœæˆč€…ではãĒくãĒりぞす...

元īŧš

<script>
// a script you can't modify already use the name THREE
var THREE = document.getElementById('div-nb-3')
</script>

<script type="module">
import * as foo from '/build/three.module.js'

THREE.appendChild( new foo.WebGLRenderer().domElement )
</script>

@ Mugen87あãĒたは100īŧ…æ­Ŗしいです。 / examples / jsをį ´æŖ„する場合、ã‚ĸドã‚ĒãƒŗãƒĸジãƒĨãƒŧãƒĢぎいずれともæœŦčŗĒįš„ãĢäē’換性がãĒいため、 three.jsとthree.min.jsをį ´æŖ„することもできぞす。 それらぎãƒĻãƒŧã‚šã‚ąãƒŧã‚šã¯ãƒ‹ãƒƒãƒã§ã‚ã‚Šã€ã“ã‚Œã¯æˇˇäšąã‚’åŧ•ãčĩˇã“すことがãģãŧäŋč¨ŧされãĻいぞす。

@devingfxįĸēかãĢ、ãƒĸジãƒĨãƒŧãƒĢãĢは刊į‚šãŒã‚り、æŊœåœ¨įš„ãĒグロãƒŧバãƒĢ名ぎįĢļ合を排除しぞす。 é•ˇåš´ãŽäŊŋį”¨ã§ã€THREEグロãƒŧバãƒĢ変数とįĢļ合することは一åēĻもありぞせんでした。これはありそうもãĒã„ã‚ˇãƒŠãƒĒã‚Ēだと思いぞすが、あãĒたぎä¸ģåŧĩã¯æŠ€čĄ“įš„ãĢæ­Ŗしいです。

これはį§ãŽčĻ‹č§Ŗではæ‚Ēいã‚ĸプロãƒŧチです。 ãƒĄãƒŗテナãƒŗã‚šãŒã‚ˆã‚Šč¤‡é›‘ãĢãĒりぞす。

åŋ…čĻãĢåŋœã˜ãĻ、ãƒĻãƒŧã‚ļãƒŧがES6からES5ã¸ãŽå¤‰æ›ã‚’čĄŒã†åŋ…čĻãŒã‚ると思いぞす。 ã‚ŗãƒŧドぎį¸Žå°ã‚„そぎäģ–ぎビãƒĢドé–ĸé€Ŗぎã‚ŋ゚クãĢついãĻも同じです。

@ Mugen87ãƒĸジãƒĨãƒŧãƒĢãĢ加えãĻグロãƒŧバãƒĢ変数をäŊŋį”¨ã™ã‚‹åž“æĨぎjsイãƒŗクãƒĢãƒŧドをįļ­æŒã™ã‚‹ãŽã¯æœŦåŊ“ãĢã˛ãŠã„ã§ã™ã‹īŧŸ 多くぎナイブナãƒĒã¯ä¸Ąæ–šã‚’ã‚ĩポãƒŧトしãĻおり、į§ãŒįŸĨる限り、垓æĨぎJSバãƒŧジョãƒŗは、ãƒĸジãƒĨãƒŧãƒĢバãƒŧジョãƒŗぎ寞åŋœã™ã‚‹ãƒŠã‚¤ãƒ–ナãƒĒと同じくらい一čˆŦįš„ãĢäŊŋį”¨ã•ã‚ŒãĻいぞす。 ãŠãĄã‚‰ãĢã‚‚é•ˇæ‰€ã¨įŸ­æ‰€ãŒã‚り、そぎ一部はåĨŊãŋãĢåŋœã˜ãĻčĻį´„されぞす。 ãƒĸジãƒĨãƒŧãƒĢäģĨ外ぎã‚ŗãƒŗテキ゚トでナイブナãƒĒをäŊŋį”¨ã™ã‚‹ã‚Ēãƒ—ã‚ˇãƒ§ãƒŗを開į™ē者ãĢæäž›ã™ã‚‹ãŽã¯č‰¯ãã‚ã‚Šãžã›ã‚“ã‹īŧŸ

three.module.jsと/examples/ jsmからthree.min.js、three.js、/ examples / jsをč‡Ē動įš„ãĢį”Ÿæˆã™ã‚‹ãŸã‚ãĢåŋ…čĻãĒã‚ŗãƒŧド変換抟čƒŊぎäŊœæˆ/ãƒ†ã‚šãƒˆã‚’ã€å–œã‚“ã§čĄŒã„ãžã™ã€‚ トナãƒŗ゚パイãƒĢワãƒŧクフロãƒŧが洗įˇ´ã•ã‚ŒãŸåžŒã¯ã€æœ€å°é™ãŽãƒĄãƒŗテナãƒŗ゚がåŋ…čĻãĢãĒる場合がありぞすが、īŧ=2つぎä¸Ļ列バãƒŧジョãƒŗをįļ­æŒã—ぞす。 ãģとんおぎ場合、ã‚ŗãƒŧドはãƒĸジãƒĨãƒŧãƒĢãƒ•ã‚Ąã‚¤ãƒĢで更新するåŋ…čĻãŒã‚るだけであり、たぞãĢしかトナãƒŗ゚パイãƒĢãŽå¤ąæ•—ã‚’äŋŽæ­Ŗするåŋ…čĻãŒã‚りぞす。

åž“æĨぎグロãƒŧバãƒĢ構文ãĢ䞝存するプロジェクトが十分ãĢあり、ãƒĸジãƒĨãƒŧãƒĢぎトナãƒŗ゚パイãƒĢをč‡Ē動化するためぎäŊœæĨ­ã‚’čĄŒã†äēˆåŽšã§ã™ã€‚ 少ãĒくとも、package.jsonãĢã‚ŗマãƒŗドをåĢめãĻ、ãƒĸジãƒĨãƒŧãƒĢをthree.min.js、three.js、およãŗ/ examples/jsãĢ変換する「legacy-build」とå‘ŧãļことができると思いぞす。これらは元ぎã‚ŗマãƒŗドと同様ãĢ動äŊœã—ぞす。äģŠã™ããƒ•ã‚Ąã‚¤ãƒĢ。 ã“ã‚Œã‚‰ãŽãƒ•ã‚Ąã‚¤ãƒĢは、ãƒĒポジトãƒĒãĢã‚ŗミットしたり、デフりãƒĢトでäŊœæˆã—たりするåŋ…čĻã¯ã‚りぞせん。 ぞた、ãƒŦã‚Ŧã‚ˇãƒŧã‚ĩポãƒŧトį”¨ã§ã‚るとč­Ļ告することもできぞすが、動äŊœãŒäŋč¨ŧされãĻいるわけではありぞせん。äģŖわりãĢãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã™ã‚‹ã“とをお勧めしぞす...

įžåŽŸįš„ãĢは、それらをãƒĒポジトãƒĒãĢäŋæŒã—、ビãƒĢド時ãĢトナãƒŗ゚パイãƒĢをäģ‹ã—ãĻč‡Ē動įš„ãĢį”Ÿæˆã™ã‚‹æ–šãŒį†ãĢかãĒãŖãĻいると思いぞす。

package.json内ぎã‚ŗマãƒŗドで、ãƒĸジãƒĨãƒŧãƒĢをį”Ÿæˆã™ã‚‹ã€Œlegacy-build」とå‘ŧãŗぞす

合į†įš„ãĒようです。 最čŋ‘、バベãƒĢは合äŊĩしãĻいぞせんかīŧŸ だからこれはそぎぞぞでできるぎではãĒいかと思いぞす

įˇ¨é›†īŧšæ˜ŽįĸēãĢするためãĢã€ä¸Šč¨˜ãŽãƒ“ãƒĢドを希望するãƒĻãƒŧã‚ļãƒŧäģĨ外ぎäēēãŒåŽŸčĄŒã™ã‚‹æ–°ã—ã„ã‚ŗマãƒŗãƒ‰ã‚’č¨€ã‚ãĒいようãĢする

ãƒĸジãƒĨãƒŧãƒĢãĢ加えãĻグロãƒŧバãƒĢ変数をäŊŋį”¨ã™ã‚‹åž“æĨぎjsイãƒŗクãƒĢãƒŧドをįļ­æŒã™ã‚‹ãŽã¯æœŦåŊ“ãĢã˛ãŠã„ã§ã™ã‹īŧŸ

これをįļ­æŒã™ã‚‹ã“ã¨ãŽč¤‡é›‘ã•ã¯éŽå°čŠ•äžĄã•ã‚ŒãĻいると思いぞす。 掋åŋĩãĒãŒã‚‰ã€ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã§ãŽäž‹ãŽč¨­åŽšæ–šæŗ•ã¯ãã‚Œãģお単į´”ではãĒいと思いぞす。

䞋としãĻGLTFLoaderをčĻ‹ãĻãŋぞしょう。 įžåœ¨ã€ã™ãšãĻぎGLTFLoaderã¯å˜ä¸€ãŽãƒ•ã‚Ąã‚¤ãƒĢãĢåĢぞれãĻいるため、HTMLãƒ•ã‚Ąã‚¤ãƒĢぎ先頭ãĢį°Ąå˜ãĢåĢめることができぞす。 ãƒĸジãƒĨãƒŧãƒĢぎ刊į‚šãŽ1つは、大きãĒãƒ•ã‚Ąã‚¤ãƒĢぎ一部を個åˆĨãŽãƒ•ã‚Ąã‚¤ãƒĢãĢåˆ†å‰˛ã—ãĻ、GLTFLoaderが䞝存é–ĸäŋ‚としãĻイãƒŗポãƒŧトできることです。 GLTFLoaderが4ã¤ãŽå¤–éƒ¨ãƒ•ã‚Ąã‚¤ãƒĢãĢäžå­˜ã—ã€ããŽã†ãĄãŽã„ãã¤ã‹ãŒå…ąæœ‰ã•ã‚ŒãĻいる場合、ビãƒĢドされたグロãƒŧバãƒĢ゚クãƒĒプトãĢはおぎようãĢåĢめるåŋ…čĻãŒã‚りぞすかīŧŸ ビãƒĢドされたグロãƒŧバãƒĢ゚クãƒĒプトぎãƒĻãƒŧã‚ļãƒŧは、これらぎã‚ĩãƒŗプãƒĢjsãƒ•ã‚Ąã‚¤ãƒĢをすずãĻ個åˆĨãĢåĢめるåŋ…čĻãŒã‚りぞすかīŧŸ ぞたは、一įˇ’ãĢバãƒŗドãƒĢしãĻã‚‚å•éĄŒãŒãĒく、そうでãĒã„ãƒ•ã‚Ąã‚¤ãƒĢぎãƒĒ゚トを手動でįļ­æŒã™ã‚‹åŋ…čĻãŒã‚ã‚‹ã„ãã¤ã‹ãŽãƒ•ã‚Ąã‚¤ãƒĢが一įˇ’ãĢバãƒŗドãƒĢされぞすかīŧŸ

æœŦåŊ“ãĢč¨­åŽšã•ã‚Œåŋ˜ã‚Œã‚‰ã‚ŒãĻいるぎは、すずãĻぎã‚ĩãƒŗプãƒĢjsãƒ•ã‚Ąã‚¤ãƒĢを単一ぎãƒĸノãƒĒã‚ˇãƒƒã‚¯blobãĢバãƒŗドãƒĢすることだけだと思いぞすが、これは合į†įš„ではãĒいと思いぞす。 これらぎã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗぎいずれかをäŊŋį”¨ã™ã‚‹ã¨ã€äģ–ぎãƒĒãƒĒãƒŧ゚やドキãƒĨãƒĄãƒŗトぎã‚Ēãƒŧバãƒŧヘッドもį™ēį”Ÿã™ã‚‹ã¨æ€ã„ぞす。

ãŠãã‚‰ããã‚Œã‚’čĄŒã†ãŸã‚ãŽã‚ˆã‚Šč‰¯ã„æ–šæŗ•ãŒã‚りぞすが、下äŊäē’換性ぞたは少ãĒくともæ—ĸ存ぎjsãƒ•ã‚Ąã‚¤ãƒĢとぎ一č˛Ģした構造をäŋæŒã™ã‚‹ãƒ­ãƒŧãƒĢã‚ĸップビãƒĢドをäŊœæˆã—ようとしたときãĢ、これらはį§ãŒé­é‡ã—ãŸå•éĄŒã§ã™ã€‚

į§ãŒæ­Ŗしくį†č§ŖしãĻã„ã‚Œã°ã€č¨ˆį”ģは「/build/three.module.js」ãĢ加えãĻ「/build/three.js」をåĢめることです。

はい。 ただし、こぎã‚ĸプロãƒŧチがį†ãĢかãĒãŖãĻいるかおうかはį–‘問です。
examples / jsが削除されãĻも、three.jsとthree.min.jsがåŧ•ãįļšãåŊšįĢ‹ã¤ãƒĻãƒŧã‚šã‚ąãƒŧ゚はごくわずかです。

@ Mugen87 @mrdoob

ãƒžã‚¤ã‚ąãƒĢ、
原際、「three.min.js」を少ãĒくともあと2åš´é–“äŋæŒã™ã‚‹ã“とは、åŋ…須です。
į§ãŽã™ãšãĻぎã‚ĩãƒŗプãƒĢがそれãĢåŸēãĨいãĻいるからではありぞせん。
しかし、äŊ•åƒã‚‚ãŽãƒ•ã‚Ąã‚¤ãƒĢとグãƒŧグãƒĢぎトップドッグがそれãĢåŸēãĨいãĻいるからですīŧ
例īŧš https īŧš//www.google.com/searchīŧŸsource = hpīŧ†q = webgl + benchmark

一斚、į§ãŽčĻŗį‚šã‹ã‚‰ã¯ã€ã€Œthree.min.js」はよりčŋ…速ãĒ開į™ēとテ゚トを意å‘ŗしぞす。
ã‚Ēフナイãƒŗで動äŊœã—、ロãƒŧã‚ĢãƒĢポトはåŋ…čĻãĒã„ã“ã¨ã¯č¨€ã†ãžã§ã‚‚ã‚ã‚Šãžã›ã‚“ã€‚
すずãĻãŽãƒ•ã‚Ąã‚¤ãƒĢをおこかぎフりãƒĢダãĢå…Ĩれ、FirefoxをäŊŋį”¨ã—ãĻHTMLãƒ•ã‚Ąã‚¤ãƒĢをダブãƒĢクãƒĒックするだけです。
į§ã¯ã„つも開į™ēぎためãĢそれを愛しãĻいぞしたīŧ

ãƒĒã‚ĢãƒĢドもこれらすずãĻãĢついãĻč€ƒãˆã‚‹åŋ…čĻãŒã‚りぞす。
䚞杯

three.jsとthree.min.jsぎ削除は、 examples/jsがãĒくãĒãŖたときãĢčŠąã—åˆã„ã€č¨ˆį”ģできるもぎです。 examples/jsã‹ã‚‰ãƒ•ã‚Ąã‚¤ãƒĢをイãƒŗポãƒŧトできãĒくãĒãŖたときãĢ、それらぎ重čĻæ€§ãŒå¤ąã‚ã‚ŒãŸã“とをåŧˇčĒŋすることが重čĻã§ã—た。

これをįļ­æŒã™ã‚‹ã“ã¨ãŽč¤‡é›‘ã•ã¯éŽå°čŠ•äžĄã•ã‚ŒãĻいると思いぞす。 掋åŋĩãĒãŒã‚‰ã€ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã§ãŽäž‹ãŽč¨­åŽšæ–šæŗ•ã¯ãã‚Œãģお単į´”ではãĒいと思いぞす。

į§ã¯ã‚ãĒãŸãŒæŒãĄå‡ēすポイãƒŗトがæœŦåŊ“ãĢåĨŊきです。 バãƒŗドãƒĢãĢはぞãŖたくäēˆæœŸã—ãĒã„č¤‡é›‘ã•ãŒã‚ã‚Šã€ãƒã‚šãƒˆã•ã‚ŒãŸãƒĸジãƒĨãƒŧãƒĢãŽäž‹ã¯č‰¯ã„äž‹ã§ã™ã€‚ あãĒたぎポイãƒŗトでは、そぎ時がæĨたら、ネ゚トされたãƒĸジãƒĨãƒŧãƒĢぎバãƒŗドãƒĢをおぎようãĢå‡Ļį†ã™ã‚‹ã‹ãĢついãĻčŗĸ明ãĒæąē厚を下すことができると思いぞす。 バãƒŗドナãƒŧ゚クãƒĒãƒ—ãƒˆãŒč¨­åŽšã•ã‚ŒãĻįŠļæŗã‚’åŋ˜ã‚Œã‚‹ã¨č¨€ãŖãĻいるぎではãĒく、単ãĢãƒĄãƒŗテナãƒŗ゚が少ãĒくãĒるということです。

ãƒĄãƒŗテナãƒŗ゚がé›Ŗしい時期がæĨたらいつでもčŊã¨ã›ãžã™ãŒã€ãžã å•éĄŒãŒãĒいぎで値åŧ•ãã™ã‚‹ãŽã¯ã°ã‹ã’ãĻいると思いぞす。 / examples/jsmとexamples/jsぎ間ãĢ1寞1ぎパãƒĒテã‚Ŗが掋ãŖãĻいる間ãĢ、äģŠã™ãåŽŸčŖ…するぎが最もį°Ąå˜ã§ã™ã€‚ / example / jsmãƒĸジãƒĨãƒŧãƒĢéšŽåą¤ã‚’å¤§åš…ãĢ再įˇ¨æˆã™ã‚‹ã“とはおそらくãĒいでしょう。そうすることで、バãƒŗドナãƒŧをæŽĩ階įš„ãĢ更新できると思いぞす。 į§ã¯å…ˆãĢé€˛ã‚“ã§ã€ã“ã‚ŒãŽãŸã‚ãŽäģ•äē‹ãŽč¨ŧ明ãĢ取りįĩ„ãŋ始めぞすīŧˆãã‚Œã¯ã™ã§ãĢčŋŊ加されãĻいるぎで、バベãƒĢでīŧŸīŧ‰į§ãŽåŖがåŊŧã‚‰ãŒč¨€ã†ã‚ˆã†ãĢį§ãŽãŠé‡‘ã‚’å…Ĩれぞす。

Mugenぎ指摘ãĢよれば、これはthree.jsとthree.min.js $とぎé–ĸé€Ŗ性をįļ­æŒã—ãĒがら、それらをįļ­æŒã™ã‚‹ãŽãĢåŊšįĢ‹ãĄãžã™ã€‚ ぞた、ãƒĸジãƒĨãƒŧãƒĢベãƒŧ゚ではãĒいTHREE原čŖ…とäē’換性ぎあるã‚ĸップデãƒŧトをæŽĸしãĻいる可čƒŊ性ぎあるäŊ•į™žã‚‚ぎã‚ĩイトãĢもåŊšįĢ‹ã¤å¯čƒŊ性がありぞす。 ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã™ã‚‹ãŸã‚ãŽ3つぎプロジェクトぎãƒĒãƒ•ã‚Ąã‚¯ã‚ŋãƒĒãƒŗグは、č‡Ē分がäŊ•ã‚’しãĻいるぎかをįŸĨãŖãĻいる場合でも、非常ãĢåēƒį¯„å›˛ãĢ及ãļ可čƒŊ性がありぞす。

äģ–ãŽå”åŠ›č€…ãĢついãĻčŠąã™ã“ã¨ã¯ã§ããžã›ã‚“ãŒã€ã“ãŽãƒˆãƒ”ãƒƒã‚¯ãĢついãĻã¯č€ƒãˆã‚’å¤‰ãˆã‚‹ã¤ã‚‚ã‚Šã¯ã‚ã‚Šãžã›ã‚“ã€‚ ここでčĒŦ明し、ã‚ŗミットしたようãĢ、2020嚴ぎ12月ぎãƒĒãƒĒãƒŧ゚でexamples/jsを削除することãĢ投įĨ¨ã—ぞすīŧƒ18749。

ここでčĒŦ明し、ã‚ŗミットしたようãĢ、2020嚴ぎ12月ぎãƒĒãƒĒãƒŧ゚でexamples / jsを削除することãĢ投įĨ¨ã—ぞすīŧƒ18749。

äŊ•ãŽå•éĄŒã‚‚ありぞせん。
「three.min.js」がさらãĢ数嚴間刊į”¨å¯čƒŊである限り...

į„Ąé™ãŽå…Ĩ力をありがとう、į§ã¯ããŽã‚šãƒŦッドをčĒ­ãŋ通しぞしたが、それはæąē厚ぎčĒŦ明ではãĒく、より多くぎį™ēčĄ¨ãŽã‚ˆã†ãĢčĻ‹ãˆãžã™ã€‚ į§ãŽæƒŗ厚では、開į™ēぎį°Ąį´ åŒ–がこぎ斚向ãĢé€˛ã‚€ä¸ģãĒį†į”ąã§ã™ãŒã€äģ–ãĢäŊ•ã‹ã‚りぞすかīŧŸ

/ examples / jsã‚šã‚ŋイãƒĢぎイãƒŗクãƒĢãƒŧドをį”Ÿæˆã™ã‚‹ãŸã‚ãĢåŽŸčĄŒã§ãã‚‹å¤‰æ›ã‚šã‚¯ãƒĒãƒ—ãƒˆãŒã‚ã‚‹ã“ã¨ã¯ã€ã“ã“ã§ã¯å•éĄŒãĒいåĻĨ協į‚šãĢãĒるはずです。 ここでåŋ…čĻãĒãƒĄãƒŗテナãƒŗã‚š/č¤‡é›‘ã•ãŽé‡ã‚’å¤§åš…ãĢ減らすåŋ…čĻãŒã‚りぞす。 それがpackage.json内ぎ単ãĒるã‚ŗマãƒŗドであり、č‡Ēåˆ†ã§åŽŸčĄŒã™ã‚‹åŋ…čĻãŒã‚ã‚Šã€ãƒ•ã‚Ąã‚¤ãƒĢがデフりãƒĢトでį”Ÿæˆã•ã‚ŒãĒかãŖたとしãĻも、į§ã¯å¤§ä¸ˆå¤Ģです。 とãĢかくトナãƒŗ゚パイãƒĢするåŋ…čĻãŒã‚ã‚‹é–‹į™ēč€…ã‚„äģ–ぎ開į™ē者ãĢとãŖãĻは刊į‚šãŒã‚りぞす。 むしろ、ã‚ŗナボãƒŦãƒŧã‚ˇãƒ§ãƒŗを攚善するためãĢãƒĄã‚¤ãƒŗãƒĒポジトãƒĒãĢäŊ•ã‹ã‚’äŋæŒã§ãã‚‹å ´åˆã¯ã€ãƒˆãƒŠãƒŗ゚パイãƒĢ/バãƒŗドãƒĢワãƒŧクフロãƒŧを個åˆĨãĢäŊœæˆã™ã‚‹åŋ…čĻã¯ã‚りぞせん。 :)

į§ã¯ããŽã‚šãƒŦッドをčĒ­ãŋ通しぞしたが、æąē厚ぎčĒŦ明ではãĒく、より多くぎį™ēčĄ¨ãŽã‚ˆã†ãĢčĻ‹ãˆãžã™ã€‚

掋åŋĩãĒãŒã‚‰ã€č¨­č¨ˆå¤‰æ›´ãŽåŽŸįžãŒäŊ•åš´ãĢもわたãŖãĻč¤‡æ•°ãŽč­°čĢ–でゆãŖãã‚Šã¨é€˛čĄŒã™ã‚‹ãŸã‚ã€ãžãŸã¯å˜ãĢ同じä¸ģ題ãĢé–ĸã™ã‚‹č¤‡æ•°ãŽã‚šãƒŦッドがäŊ•åēĻもäŊœæˆã•ã‚Œã‚‹ãŸã‚īŧˆã“ぎようãĢīŧ‰ã€ã™ãšãĻぎ有劚ãĒåŧ•æ•°ã‚’単一ぎ゚ãƒŦッドãĢå›ē厚できるとは限りぞせん。 īŧ‰ã€‚ å…ąåŒäŊœæĨ­č€…はノイã‚ēとã‚ģã‚°ãƒĄãƒŗテãƒŧã‚ˇãƒ§ãƒŗを最小限ãĢ抑えようとしぞすが、常ãĢ可čƒŊであるとは限りぞせん。

į§ãŽæƒŗ厚では、開į™ēぎį°Ąį´ åŒ–がこぎ斚向ãĢé€˛ã‚€ä¸ģãĒį†į”ąã§ã™ãŒã€äģ–ãĢäŊ•ã‹ã‚りぞすかīŧŸ

į§ãŒį›ŽãĢã™ã‚‹æœ€å¤§ãŽã‚‚ãŽã¯ã€å†—é•ˇãĒã‚ŗãƒŧドを最小限ãĢ抑え、再刊į”¨å¯čƒŊãĒ原čŖ…を原įžã™ã‚‹ã‚ĩブãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ãŠã‚ˆãŗイãƒŗポãƒŧトする抟čƒŊです。

たとえば、ãģとんおぎロãƒŧダãƒŧは、あるį¨ŽãŽãƒ‡ãƒŧã‚ŋč§Ŗ析構造/クナ゚をäŊœæˆã™ã‚‹åŋ…čĻãŒã‚りぞす。これは、 example/jsãƒ•ã‚Ąã‚¤ãƒĢを再刊į”¨ã§ãã‚‹ã‚ˆã†ãĢ、各ロãƒŧダãƒŧがč‡ĒįĩĻč‡Ēčļŗであるåŋ…čĻãŒã‚るためです。 ただし、非ãƒĸジãƒĨナãƒŧåˆļ限を厌全ãĢ削除すると、 DataParserクナ゚ぎ単一イãƒŗã‚šã‚ŋãƒŗã‚šã‚’äŊœæˆã—、そぎ標æē–原čŖ…をすずãĻぎロãƒŧダãƒŧãĢイãƒŗポãƒŧトできるため、開į™ēがすぐãĢį°Ąå˜ãĢãĒã‚Šã€å†—é•ˇã‚ŗãƒŧドが削除されぞす。すずãĻぎロãƒŧダãƒŧ。

ãˆãˆã€č‰¯ã„į‚šã§ã™ã€‚ ãƒŦã‚Ŧã‚ˇãƒŧã‚ŗãƒŧドがåŖŠã‚ŒãĒいようãĢするためだけãĢ、 Passクナ゚īŧˆã™ãšãĻぎFXパ゚ぎåŸēæœŦクナ゚īŧ‰ã‚’EffectComposerãĢ埋めčžŧむãĒおぎダãƒŧテã‚ŖハックをすでãĢčĄŒã†åŋ…čĻãŒã‚りぞす。

非常ãĢč‰¯ã„į‚šãŒã‚りぞした。

äēē々をčģŒé“ãĢ䚗せãĻ最新ぎįŠļ態ãĢäŋã¤ã“とは、īŧˆãã—ãĻį§č‡ĒčēĢぎįĩŒé¨“からīŧ‰é›Ŗã—ã„å•éĄŒãŽã‚ˆã†ãĢčžã“ãˆãžã™ã€‚ これãĢå°‘ã—č€ƒãˆãĻãŋようと思いぞす。

原際、「three.min.js」を少ãĒくともあと2åš´é–“äŋæŒã™ã‚‹ã“とは、åŋ…須です。

BabelをäŊŋį”¨ã—ãĻES5ビãƒĢドをį”Ÿæˆã™ã‚‹ã“とは常ãĢ可čƒŊです。 それãĢé–ĸしãĻį§ãŸãĄãŒį­”えるåŋ…čĻãŒã‚ã‚‹čŗĒ問は、これãĢ寞するč˛Ŧäģģがį§ãŸãĄãĢあるぎか、three.jsをäŊŋį”¨ã™ã‚‹é–‹į™ē者ãĢあるぎかということです。

ã‚ĩãƒŗプãƒĢãƒ•ã‚Ąã‚¤ãƒĢぎES5バãƒŧジョãƒŗをäŊœæˆã™ã‚‹ãŽã¯é–‹į™ēč€…ãŽč˛ŦäģģであるとすでãĢæąē厚しãĻいるぎで、ビãƒĢãƒ‰ãƒ•ã‚Ąã‚¤ãƒĢãĢ寞しãĻã‚‚åŒã˜ã“ã¨ã‚’čĄŒã†ãŽã¯ãŠãã‚‰ãį†ãĢかãĒãŖãĻいぞす。 į§ãŽč€ƒãˆã§ã¯ã€ãƒŠã‚¤ãƒ–ナãƒĒ全äŊ“ã§ã“ã‚Œã‚’čĄŒã†ãŽã¯ã€é–“éš”ã‚’įŠēけるぎではãĒく、1つぎãƒĒãƒĒãƒŧã‚šã§čĄŒã†ãŽã‚‚į†ãĢかãĒãŖãĻいぞすが、three.min.jsã‚’ã‚‚ã†å°‘ã—é•ˇãäŋã¤ã“ã¨ã‚‚å•éĄŒã‚ã‚Šãžã›ã‚“ã€‚

しかし、äŊ•åƒã‚‚ãŽãƒ•ã‚Ąã‚¤ãƒĢとグãƒŧグãƒĢぎトップドッグがそれãĢåŸēãĨいãĻいるからですīŧ
例īŧšgoogle.com/search?source=hp&q=webgl+benchmark

これはそぎ検į´ĸからį§ãĢå‡ēãĻきたトップã‚ĩイトであり、åŊŧらはR53をäŊŋį”¨ã—ãĻいるぎで、こぎ変更がåŊŧらãĢそれãģおæ‚ĒåŊąéŸŋを与えるとは思わãĒいīŧš https ://www.wirple.com/bmark/

ごčĻ§ãŽã¨ãŠã‚Šã€æ—§ãƒãƒŧジョãƒŗぎthree.jsはåŧ•ãįļšãæ­Ŗ常ãĢ抟čƒŊしぞす。 ãƒĸジãƒĨãƒŧãƒĢãĢį§ģčĄŒã—ãŸåžŒã€ES5ãƒ•ã‚Ąã‚¤ãƒĢを削除する前ãĢ、BabelをäŊŋį”¨ã›ãšãĢES5ビãƒĢドを希望するすずãĻぎäēēãĢ最垌ぎバãƒŧジョãƒŗをäŊŋį”¨ã™ã‚‹ã‚ˆã†ãĢ指į¤ēできぞす。 åŊŧらはそぎãƒĒãƒĒãƒŧ゚ぎãƒĒポジトãƒĒ全äŊ“をチェックã‚ĸã‚Ļトし、そぎバãƒŧジョãƒŗぎドキãƒĨãƒĄãƒŗトもäŊŋį”¨ã§ããžã™ã€‚

@looeeeあãĒãŸã¯ã„ãã¤ã‹ãŽč‰¯ã„į‚šãĢč§Ļれぞす。 ä¸Šč¨˜ãŽã‚ˆã†ãĢ、ここでES5 three.min.jsとthree.jsを同時ãĢ非推åĨ¨ãĢすることがį†ãĢかãĒãŖãĻいることãĢ同意しぞす。 おそらくそれはそれč‡ĒčēĢぎåˆĨå€‹ãŽč­°čĢ–であるずきですかīŧŸ

いずれãĢせよ、古いå­Ļæ ĄãŽES5ã‚šã‚ŋイãƒĢぎ/js/exampleãƒ•ã‚Ąã‚¤ãƒĢをį”Ÿæˆã™ã‚‹ãŸã‚ãĢäŊŋį”¨ã§ãã‚‹ãƒĄã‚¤ãƒŗãƒĒポジトãƒĒãĢbabel゚クãƒĒプトをåĢめることãĢついãĻ合意ãĢ達したいと思いぞす。 これは、čĒ°ã‹ãŒã“ぎã‚ĩポãƒŧトを提䞛するč˛ŦäģģがあるかおうかãĢついãĻはæąēしãĻé–ĸäŋ‚ありぞせん。 į§ãŽã‚ˆã†ãĢ、こぎ抟čƒŊをåŋ…čĻã¨ã™ã‚‹č˛ĸįŒŽč€…がいぞす。 とãĢかくトナãƒŗ゚パイãƒĢするåŋ…čĻãŒã‚ã‚‹é–‹į™ēč€…ã‚„äģ–ぎ開į™ē者ãĢとãŖãĻは刊į‚šãŒã‚りぞす。 むしろ、ã‚ŗナボãƒŦãƒŧã‚ˇãƒ§ãƒŗを攚善するためãĢãƒĄã‚¤ãƒŗãƒĒポジトãƒĒãĢäŊ•ã‹ã‚’äŋæŒã§ãã‚‹å ´åˆã¯ã€ãƒˆãƒŠãƒŗ゚パイãƒĢ/バãƒŗドãƒĢワãƒŧクフロãƒŧを個åˆĨãĢäŊœæˆã™ã‚‹åŋ…čĻã¯ã‚りぞせん。

ãƒĄã‚¤ãƒŗãƒĒポジトãƒĒãĢ1ã¤ãŽãƒ•ã‚Ąã‚¤ãƒĢã‚’č¨ąå¯ã—ãĻ、babelES6からES5へぎトナãƒŗ゚パイナãƒŧ゚クãƒĒプトを一įˇ’ãĢå‡Ļį†ã§ãã‚‹ã‚ˆã†ãĢすることは、かãĒりぎåĻĨå”æĄˆã ã¨æ€ã„ãžã™ã€‚ æœŦåŊ“ãĢå•éĄŒãŒã‚ã‚Šãžã™ã‹īŧŸ 寄į¨ŋč€…ãŒãƒĄã‚¤ãƒŗãƒĒポジトãƒĒで一įˇ’ãĢåŋ…čĻãĒ抟čƒŊãĢ取りįĩ„ã‚€ã“ã¨ã‚’č¨ąå¯ã—ãžã™ã‹īŧŸ

ã“ã‚Œã‚’čĄŒã†ãŸã‚ãŽãƒ˜ãƒĢプやãƒĒã‚Ŋãƒŧã‚šã‚’å…ąåŒäŊœæĨ­č€…ãĢæą‚ã‚ãĻいるぎではãĒく、これをåŋ…čĻã¨ã™ã‚‹äēēã€…ãŒãƒĄã‚¤ãƒŗãƒĒポジトãƒĒで一įˇ’ãĢäŊœæĨ­ã§ãã‚‹ã‚ˆã†ãĢã™ã‚‹ã“ã¨ã‚’æą‚ã‚ãĻいるだけです。 į§ãŒã“ã‚ŒãĢついãĻPRã‚’čĄŒã„ã€ãã‚ŒãŒæŠŸčƒŊする場合、あãĒたはæœŦåŊ“ãĢそれを拒åĻすることãĢ投įĨ¨ã—ぞすかīŧŸ

į§ãŒã“れぎためãĢPRをしãĻ、それがうぞくいくãĒら

つぞり、これが開始されるぎをčĻ‹ãĻうれしいです

あãĒたはæœŦåŊ“ãĢそれを拒åĻすることãĢ投įĨ¨ã—ぞすかīŧŸ

ãƒĒãƒŗテã‚Ŗãƒŗグパ゚ãĢå¤ąæ•—ã—ãŸå ´åˆã€ã™ãšãĻぎčŗ­ã‘はã‚ĒフãĢãĒã‚Šãžã™đŸ˜‚

æœŦåŊ“ãĢå•éĄŒãŒã‚ã‚Šãžã™ã‹īŧŸ

はい。ãƒĒポジトãƒĒは非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗをäŋƒé€˛ã™ã‚‹ãšãã§ã¯ãĒいためです。

はい。ãƒĒポジトãƒĒは非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗをäŋƒé€˛ã™ã‚‹ãšãã§ã¯ãĒいためです。

three.js + three.min.jsをč§ŖäģģしãĻいãĒければīŧˆITTぎã‚ŗãƒŗã‚ģãƒŗã‚ĩ゚はそれらもč§Ŗäģģするåŋ…čĻãŒã‚ることをčĒã‚ãĻいぞすīŧ‰ã€č‡Ēåˆ†ã§æ‰‹å‹•ã§åŽŸčĄŒã™ã‚‹åŋ…čĻãŽã‚ã‚‹babel゚クãƒĒプトがある場合は、ぞだæ­ŖåŧãĢåģƒæ­ĸされãĻいぞせん。į†ąįƒˆãĒ支持はãģとんおありぞせん。 äģŖわりãĢãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã™ã‚‹ã‚ˆã†ãĢäēē々ãĢįĸē原ãĢ勧め、babel゚クãƒĒプトとそれãĢé–ĸã™ã‚‹ãƒ•ã‚Ąã‚¤ãƒĢをį”Ÿæˆã™ã‚‹ã‚ˆã†ãĢč­Ļ告するåŋ…čĻãŒã‚ることãĢ同意しぞす。 非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗをäŋƒé€˛ã—ãĻいるį†į”ąã§ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã§ããĒいįŠļæŗã§ã€å¯„į¨ŋč€…ãŒä¸€įˇ’ãĢbabel゚クãƒĒプトでäŊœæĨ­ã§ãã‚‹ã‚ˆã†ãĢすることãĢ同意しぞせん。 ä¸ģãĒį†į”ąã¯ã€ãƒĸジãƒĨãƒŧãƒĢぎäŊŋį”¨ãŒåŽŸčĄŒä¸å¯čƒŊ/非įžåŽŸįš„であるįŠļæŗãŒãžã ã‚るためです。 ドキãƒĨãƒĄãƒŗトはこぎåŋ…čĻæ€§ã‚’čĒã‚ãĻいぞす。 一įˇ’ãĢäŊœæĨ­ã™ã‚‹åŋ…čĻãŒã‚ã‚‹äēēぎためãĢ、1ã¤ãŽãƒ•ã‚Ąã‚¤ãƒĢを厉全ãĢčŋŊ加できると思いぞす。

ここでES53.min.jsとthree.jsを同時ãĢ非推åĨ¨ãĢすることがį†ãĢかãĒãŖãĻいることãĢ同意しぞす。

つぞり、examples / js、three.min.js、three.jsを同時ãĢåģƒæ­ĸするåŋ…čĻãŒã‚ã‚Šãžã™ã€‚ã¤ãžã‚Šã€č¤‡æ•°ãŽãƒĒãƒĒãƒŧã‚šãĢ分æ•ŖするぎではãĒく、1つぎãƒĒãƒĒãƒŧ゚ですずãĻぎES5ã‚ŗãƒŧドを削除するåŋ…čĻãŒã‚りぞす。

@ Mugen87

はい。ãƒĒポジトãƒĒは非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗをäŋƒé€˛ã™ã‚‹ãšãã§ã¯ãĒいためです。

Windows10でもDOSã‚˛ãƒŧãƒ ã‚’åŽŸčĄŒã§ããžã™ã€‚
そしãĻ、それはマイクロã‚Ŋフトが「非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗã€ã‚’æŽ¨é€˛ã—ãĻいるという意å‘ŗではありぞせん。

こぎプロジェクトでįļ­æŒã•ã‚ŒãĻいるjsãƒĸジãƒĨãƒŧãƒĢぎ䞋を明įĸēãĢするためãĢ、ノãƒŧド、npm、ぞたはビãƒĢドフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã™ã‚‹åŋ…čĻã¯ã‚りぞせん。

原į¨ŧ働寞åŋœãŽã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗを構į¯‰ã™ã‚‹ã¨ã„うことは、ã‚ŗãƒŧドをバãƒŗドãƒĢすることを意å‘ŗすることをåŋ˜ã‚ŒãĒいでください:)

刊į”¨å¯čƒŊãĒRollupぎようãĒバãƒŗドãƒĢツãƒŧãƒĢãĢ感čŦã—ぞすが、いくつかぎčŗĒå•ã‚’æ¤œč¨Žã™ã‚‹åŋ…čĻãŒã‚ると思いぞす。

  • 開į™ēč€…ãŒæœŦį•Ēį’°åĸƒã§THREEをäŊŋį”¨ã—たい場合は、これらぎバãƒŗドãƒĢツãƒŧãƒĢぎ1つもäŊŋį”¨ã™ã‚‹åŋ…čĻãŒã‚るとæƒŗ厚するぎはå…Ŧæ­ŖですかīŧŸ
  • examplesフりãƒĢダãƒŧ内ぎES5/UMDãƒĸジãƒĨãƒŧãƒĢぎ更新ãĢ䞝存するäģ–ぎナイブナãƒĒぎã‚ĩポãƒŧトをįĩ‚äē†ã™ã‚‹ã“とはå…Ŧæ­ŖですかīŧŸ

これãĢついãĻぎį§ãŽå€‹äēēįš„ãĒæ°—æŒãĄīŧš

こぎナイブナãƒĒは10嚴前ぎもぎです。 ES5/UMDã§č¨˜čŋ°ã•ã‚ŒãŸexamplesフりãƒĢダãƒŧ内ぎãƒĸジãƒĨãƒŧãƒĢãĢäžå­˜ã™ã‚‹åˇ¨å¤§ãĒエã‚ŗã‚ˇã‚šãƒ†ãƒ ãŒã‚ã‚Šãžã™ã€‚ エã‚ŗã‚ˇã‚šãƒ†ãƒ å…¨äŊ“ぎã‚ĩポãƒŧトをやめるぎはå…ŦåšŗではãĒいと思いぞす。

ãƒĸジãƒĨãƒŧãƒĢぎバãƒŗドãƒĢパã‚ŋãƒŧãƒŗがãĒくãĻもES6をäŊŋį”¨ã§ãã‚‹ã“とをäēē々はåŋ˜ã‚ŒãĻいると思いぞす。 į§ã¯æ¯Žæ—ĨES6をäŊŋį”¨ã—ãĻいぞすが、フロãƒŗトエãƒŗドã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗでãƒĸジãƒĨãƒŧãƒĢバãƒŗドãƒĢパã‚ŋãƒŧãƒŗをäŊŋį”¨ã—ãĻいぞせん。 į§ã¯ã€ãƒ“ãƒĢドツãƒŧãƒĢがåŋ…į„ļįš„ãĢ非常ãĢã‚Ģã‚šã‚ŋムãĢãĒり、ãƒĸジãƒĨãƒŧãƒĢぎバãƒŗドãƒĢパã‚ŋãƒŧãƒŗをįĩ„ãŋčžŧむことができãĒいエãƒŗã‚ŋãƒŧプナイã‚ēã‚ˇãƒ§ãƒƒãƒ—ã§åƒã„ãĻきぞした。

į§ãŸãĄã¯äŊ•ã‚’すずきīŧŸ

各ãƒĒãƒĒãƒŧ゚ぎ垌ãĢ、į‰šåŽšãŽãƒ‡ã‚Ŗ゚トãƒĒビãƒĨãƒŧã‚ˇãƒ§ãƒŗį”¨ãĢES6ãƒĸジãƒĨãƒŧãƒĢをES5/UMDãƒĸジãƒĨãƒŧãƒĢãĢã‚ŗãƒŗパイãƒĢしãĻãŋぞしょう。

はい。ãƒĒポジトãƒĒは非推åĨ¨ãŽã‚ŗãƒŧデã‚Ŗãƒŗグパã‚ŋãƒŧãƒŗをäŋƒé€˛ã™ã‚‹ãšãã§ã¯ãĒいためです。

äēēį”ŸãŽãģとんおすずãĻãĢおいãĻ、古いパã‚ŋãƒŧãƒŗã€æŠ€čĄ“ã€ãŠã‚ˆãŗツãƒŧãƒĢをäŊŋį”¨ã—たã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗは、䞝į„ļとしãĻå„Ēれた品čŗĒである可čƒŊ性がありぞす。

䞋えとしãĻ-į§ãŽč‡Ēį”ąãĒ時間ãĢは、ポイãƒŗトチã‚ŧãƒĢでįŸŗをåŊĢることをæĨŊしんでいぞす。 é“å…ˇã‚„æŠ€čĄ“ã¯å‹•åŠ›åˇĨå…ˇã¨ã¯į•°ãĒりぞすが、最įĩ‚įš„ãĢはåŊĢåˆģはéĢ˜å“čŗĒぎぞぞです。 į§ã¯ãƒã‚¤ãƒŗトチã‚ŧãƒĢをäŊŋうぎがåĨŊきで、č‡Ē分やäģ–ぎäēēがæē€čļŗするもぎをäŊœã‚‹ãŽãĢåŋ…čĻãĒã‚šã‚­ãƒĢを持ãŖãĻいるぎで、個äēēįš„ãĢポイãƒŗトチã‚ŧãƒĢをäŊŋうことをåĨŊãŋぞした。

ES5/UMDãƒĸジãƒĨãƒŧãƒĢãĢついãĻも同じようãĢ感じぞす。 į§ã¯æœŦåŊ“ãĢéĢ˜å“čŗĒぎã‚ŗãƒŧドベãƒŧ゚を支持するパã‚ŋãƒŧãƒŗ、テクニック、ツãƒŧãƒĢをčĻ‹ã¤ã‘ることができ、そぎ個äēēįš„ãĒåĨŊãŋã‚’čĄŒäŊŋしįļšã‘たいと思ãŖãĻいぞす。

各ãƒĒãƒĒãƒŧ゚ぎ垌ãĢ、į‰šåŽšãŽãƒ‡ã‚Ŗ゚トãƒĒビãƒĨãƒŧã‚ˇãƒ§ãƒŗį”¨ãĢES6ãƒĸジãƒĨãƒŧãƒĢをES5/UMDãƒĸジãƒĨãƒŧãƒĢãĢã‚ŗãƒŗパイãƒĢしãĻãŋぞしょう。

į§ã¯looeeeãŒč¨€ãŖたことãĢ同意しぞす。

äģŽåŽšã™ã‚‹ãŽã¯å…Ŧæ­Ŗですか[...]

äŊ•īŧŸ į§ãŸãĄãŒåĨŊむã‚ĸプロãƒŧチãĢついãĻčŠąã—ãĻいるぎですが、「äģŽåŽšã€ã¯åžŒã§čĩˇã“りぞす。 äģ–ぎäēēãĢãƒĸジãƒĨãƒŧãƒĢぎäŊŋį”¨ã‚’åĨ¨åŠąã™ã‚‹ã“とをåĨŊむようですが、īŧˆä¸€éƒ¨ãŽäēē々はぞだ古いTHREEを望んでいるとäģŽåŽšã—ãĻīŧ‰æœŦåŊ“ãĢそれを望んでいるäēēぎためぎįĩŒčˇ¯ã‚’提䞛しぞす。

各ãƒĒãƒĒãƒŧ゚ぎ垌ãĢ、į‰šåŽšãŽãƒ‡ã‚Ŗ゚トãƒĒビãƒĨãƒŧã‚ˇãƒ§ãƒŗį”¨ãĢES6ãƒĸジãƒĨãƒŧãƒĢをES5/UMDãƒĸジãƒĨãƒŧãƒĢãĢã‚ŗãƒŗパイãƒĢしãĻãŋぞしょう。

これはčĒ°ã§ã‚‚čĄŒã†ã“ã¨ãŒã§ããžã™ã€‚ そぎã‚ŗ゚トは、three.jsãƒĄãƒŗãƒ†ãƒŠãŒč˛ æ‹…ã™ã‚‹åŋ…čĻã¯ã‚りぞせん。 @gkjohnsonãŒä¸Šã§č¨€ãŖたことをįš°ã‚Ščŋ”しぞすが、 examples/jsとexamples/jsmãŽä¸Ąæ–šãŽãƒ‡ã‚ŖãƒŦクトãƒĒをįļ­æŒã™ã‚‹ãŸã‚ãŽã‚ŗ゚トはéĢ˜ããĒりぞす。 これをį„ĄæœŸé™ãĢčĄŒã†ã“ã¨ã¯ã§ããžã›ã‚“ã€‚ES6ãƒĸジãƒĨãƒŧãƒĢが2つぎã‚ĸプロãƒŧチぎ中でよりčŋ‘äģŖįš„であることは明らかです。 æŦĄãŽã‚ŗã‚šãƒˆã‚’č€ƒæ…Žã—ãĻください。

  • č‡Ē動化ぎäŊœæˆã¨įļ­æŒ
  • č‡Ē動化がåŖŠã‚ŒãŸã¨ããŽãƒĒãƒĒãƒŧ゚エナãƒŧぎデバッグ
  • すずãĻぎプãƒĢãƒĒクエ゚トが、į”Ÿæˆã•ã‚ŒãŸãƒ•ã‚Ąã‚¤ãƒĢではãĒく、ã‚Ŋãƒŧã‚šãƒ•ã‚Ąã‚¤ãƒĢを更新することをįĸēčĒã—ぞす
  • ä¸Ąæ–šãŽãƒ¯ãƒŧクフロãƒŧぎäŊŋį”¨æ–šæŗ•ã‚’čĒŦ明するドキãƒĨãƒĄãƒŗトをįļ­æŒã™ã‚‹
  • CJSとES6ãŽä¸Ąæ–šãŽãƒ¯ãƒŧクフロãƒŧをäŊŋį”¨ã—ようとしãĻいるãƒĻãƒŧã‚ļãƒŧからぎバグãƒŦポãƒŧトとã‚ĩポãƒŧトぎčŗĒ問ãĢį­”える

そぎ最垌ぎã‚ĸイテムはおそらく最大です。 こぎãƒĒポジトãƒĒですずãĻぎã‚ŗピãƒŧが2つ刊į”¨å¯čƒŊã§ã‚ã‚‹é™ã‚Šã€ä¸Ąæ–šã¨ã‚‚åŽŒå…¨ãĢã‚ĩポãƒŧトされãĻいるとčĻ‹ãĒされぞす。 į§ãŸãĄã¯åŽšæœŸįš„ãĢ、2つぎワãƒŧクフロãƒŧã‚’æˇˇåŒã—ãŸã‚Šã€ES6ãƒĸジãƒĨãƒŧãƒĢロãƒŧダãƒŧをCJSã‚ŗã‚ĸナイブナãƒĒでäŊŋį”¨ã—ようとしたりするãƒĻãƒŧã‚ļãƒŧを支援することãĢ時間をč˛ģやしãĻã„ãžã™ãŒã€ã“ã‚Œã¯č¤‡é›‘ãĒæ–šæŗ•ã§å¤ąæ•—しぞす。

å•éĄŒã‚’į°Ąå˜ãĢč¨€ã„æ›ãˆã‚‹ã“ã¨ãŒã§ããžã™ã€‚ã™ãšãĻぎ䞋īŧˆé‡čĻã§ã™ãŒã€three.jsナイブナãƒĒぎã‚Ēãƒ—ã‚ˇãƒ§ãƒŗ部分īŧ‰ã¯ã€įžåœ¨ã€ãƒĸジãƒĨãƒŧãƒĢ構文をぞãŖたくäŊŋį”¨ã—ãĻいぞせん。 UMDでも、CommonJSでも、ES6ãƒĸジãƒĨãƒŧãƒĢでもありぞせん。 THREEグロãƒŧバãƒĢ名前įŠē間ãĢパッチを遊į”¨ã™ã‚‹ã ã‘です。 äģŖわりãĢES6イãƒŗポãƒŧト/エク゚ポãƒŧト構文をäŊŋį”¨ã—ãĻãã‚Œã‚’æ›´æ–°ã—ãŸã„ã¨æ€ã„ãžã™ã€‚ã“ãŽå¤‰æ›´ãŒč¨ˆį”ģされãĻいるという多くぎ旊期č­Ļ告がありぞした。

ES5/UMDã§č¨˜čŋ°ã•ã‚ŒãŸexamplesフりãƒĢダãƒŧ内ぎãƒĸジãƒĨãƒŧãƒĢãĢäžå­˜ã™ã‚‹åˇ¨å¤§ãĒエã‚ŗã‚ˇã‚šãƒ†ãƒ ãŒã‚ã‚Šãžã™ã€‚ エã‚ŗã‚ˇã‚šãƒ†ãƒ å…¨äŊ“ぎã‚ĩポãƒŧトをやめるぎはå…ŦåšŗではãĒいと思いぞす。

three.jsエã‚ŗã‚ˇã‚šãƒ†ãƒ ãŽã™ãšãĻがグロãƒŧバãƒĢãĒTHREE.*名前įŠē間ãĢ䞝存しãĻいるため、イãƒŗポãƒŧト/エク゚ポãƒŧト構文をäŊŋį”¨ã—たり、ES5ãĢトナãƒŗ゚パイãƒĢしたりするためãĢ更新できãĒかãŖãŸã¨č¨€ã†ãŽã¯å…ŦåšŗではãĒいと思いぞす。バãƒŗドナãƒŧをäŊŋį”¨ã—ぞす。 ここãĢはいくつかぎ回éŋį­–がありぞす。ãƒĻãƒŧã‚ļãƒŧと協力しãĻ、ãƒĻãƒŧã‚ļãƒŧãĢ遊したã‚Ēãƒ—ã‚ˇãƒ§ãƒŗをčĻ‹ã¤ã‘るお手äŧã„をさせãĻいただきぞす。

examples/jsデã‚ŖãƒŦクトãƒĒとexamples/jsmデã‚ŖãƒŦクトãƒĒãŽä¸Ąæ–šã‚’įļ­æŒã™ã‚‹ãŸã‚ãŽã‚ŗ゚トはéĢ˜ããĒりぞす。

これãĢついãĻもう少し掘り下げたいと思いぞす。 į§ã¯ãƒ•ãƒ­ãƒŗトエãƒŗドã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗį”¨ãĢ多くぎã‚Ģã‚šã‚ŋムツãƒŧãƒĢとビãƒĢドč‡Ē動化゚クãƒĒプトをäŊœæˆã—ぞしたが、できる限りぎお手äŧã„をさせãĻいただきぞす。

č‡Ē動化ぎäŊœæˆã¨įļ­æŒ
č‡Ē動化がåŖŠã‚ŒãŸã¨ããŽãƒĒãƒĒãƒŧ゚エナãƒŧぎデバッグ

įļ­æŒį¨ŽãĢついãĻもう少しį†č§Ŗするぎを手äŧãŖãĻください。これは3つぎã‚ŗãƒŧドベãƒŧã‚šãĢå›ē有ぎもぎですかīŧŸ į§ãŽįĩŒé¨“では、こぎã‚ŋイプぎã‚ŗãƒŧドは通常、最もå¯ŋå‘ŊãŒé•ˇãã€æœ€å°é™ãŽãƒĄãƒŗテナãƒŗ゚で済ãŋぞす。 これらは、一åēĻäŊœæˆã—た゚クãƒĒãƒ—ãƒˆã§ã‚ã‚Šã€é•ˇæœŸé–“ãĢわたãŖãĻ再åēĻ襨į¤ēすることはありぞせん。

すずãĻぎプãƒĢãƒĒクエ゚トが、į”Ÿæˆã•ã‚ŒãŸãƒ•ã‚Ąã‚¤ãƒĢではãĒく、ã‚Ŋãƒŧã‚šãƒ•ã‚Ąã‚¤ãƒĢを更新することをįĸēčĒã—ぞす

おそらく、小さãĒ゚クãƒĒプトぞたはテ゚トがãƒĒãƒĒãƒŧ゚ワãƒŧクフロãƒŧでこれãĢåŊšįĢ‹ã¤å¯čƒŊ性がありぞす。

ä¸Ąæ–šãŽãƒ¯ãƒŧクフロãƒŧぎäŊŋį”¨æ–šæŗ•ã‚’čĒŦ明するドキãƒĨãƒĄãƒŗトをįļ­æŒã™ã‚‹

ぞた、グロãƒŧバãƒĢ名前įŠē間ぎドキãƒĨãƒĄãƒŗトを削除することãĢも投įĨ¨ã—ぞす。 2つぎワãƒŧクフロãƒŧぎドキãƒĨãƒĄãƒŗトをã‚ĩポãƒŧトするぎはばかげãĻいると思いぞす。 これはæ‚Ēいことではありぞせん。 さぞざぞãĒã‚ŗãƒŗテキ゚トぎã‚ŗãƒŧドをバãƒŗドãƒĢするãģとんおぎナイブナãƒĒ、UMD / ES6ãƒĸジãƒĨãƒŧãƒĢãĢは、1ã‚ģットぎドキãƒĨãƒĄãƒŗトしかありぞせん。

CJSとES6ãŽä¸Ąæ–šãŽãƒ¯ãƒŧクフロãƒŧをäŊŋį”¨ã—ようとしãĻいるãƒĻãƒŧã‚ļãƒŧからぎバグãƒŦポãƒŧトとã‚ĩポãƒŧトぎčŗĒ問ãĢį­”えぞす。

こぎようãĒもぎãĢé–ĸé€Ŗã™ã‚‹å•éĄŒãŽé‡ã¯ã€THREEぎäēē気ぎ大きさãĢ比䞋しãĻいると思いぞす。 あãĒたとį§ã¯ã€StackOverflowでこれらぎã‚ŋã‚¤ãƒ—ãŽå•éĄŒã‚’å¸¸ãĢčĻ‹ãĻいぞす。 2つぎワãƒŧクフロãƒŧをåŒēåˆĨできãĒいãƒĻãƒŧã‚ļãƒŧは、ナイブナãƒĒãĢč§Ļį™ēされた新しいプログナマãƒŧである可čƒŊ性がéĢ˜ãã€ãƒ—ログナミãƒŗグぎåŸēæœŦを一čˆŦįš„ãĢå­ĻãŧうとしãĻいるだけです。

į›Žæ¨™ãŒ2つぎワãƒŧクフロãƒŧé–“ãŽæˇˇäšąãĢį‰šãĢé–ĸé€Ŗã™ã‚‹å•éĄŒãŽé‡ã‚’æ¸›ã‚‰ã™ã“ã¨ã§ã‚ã‚‹å ´åˆã€ES5ã‚ŗãƒŧドを削除することはおそらくそれを劊けるでしょう-しかし、全äŊ“įš„ãĒå•éĄŒãŽé‡ãŒå¤‰ã‚ã‚‹ã¨ã¯æ€ãˆãžã›ã‚“ã€‚ 新しいプログナマãƒŧは、ナイブナãƒĒãĢé–ĸé€ŖしãĻいる場合もそうでãĒい場合もあるæŦĄãŽčŗĒ問ãĢ常ãĢįĢ‹ãĄåž€į”Ÿã—ぞす。

全äŊ“įš„ãĢå•éĄŒãŽé‡ã‚’æ¸›ã‚‰ã™æ–šæŗ•ã¯īŧŸ

æœŦåŊ“ぎį›Žæ¨™ãŒå•éĄŒãŽé‡ã‚’å…¨äŊ“įš„ãĢ減らすことである場合、おそらくよりåŽŗæ ŧãĒå•éĄŒãƒãƒĒã‚ˇãƒŧがそれを劊けることができぞす。 すでãĢHelp (please use the forum)ぎようãĒã‚ŋグをäŊŋį”¨ã—ãĻ、これでį´ æ™´ã‚‰ã—いäģ•äē‹ã‚’しãĻいるぎをčĻ‹ãžã™ãŒã€ãŠãã‚‰ãã“れらぎã‚ŋイプぎもぎがもãŖとåŋ…čĻã§ã™ã€‚

より一čˆŦįš„ãĢは、3äēēぎ寄į¨ŋč€…ãŒįžåœ¨įˇé‡ãĢ圧倒されãĻいると感じãĻã„ã‚‹ã‹ãŠã†ã‹ã‚’čŠąã—åˆã„ã€čĒŋæŸģすることをいとわãĒいいくつかぎã‚ŋã‚¤ãƒ—ãŽå•éĄŒã‚’čĒŋæŸģするぎが最善かもしれぞせん。

ã‚ĢップãƒĢぎã‚ĸイデã‚ĸīŧš

  • これを書いãĻいる時į‚šã§ã€ suggestionsとenhancementsãĢはīŧˆ271īŧ‰ãŽæœĒč§ŖæąēãŽå•éĄŒãŒã‚ã‚Šãžã™ã€‚ これらぎナベãƒĢは多くぎノイã‚ēをį”Ÿæˆã™ã‚‹ã‚ˆã†ã§ã™ã€‚ たãļん、PRぎæē–備をする/åŽŸéš›ãŽææĄˆã¨ã—ãĻ合æ ŧしたチェックだけを取りぞす。 Insta-äģ–ぎすずãĻを閉じãĻ、 Discussion (please use the forum)としãĻマãƒŧクしぞす。
  • これを書いãĻいる時į‚šã§ã€ loadersãĢはīŧˆ61īŧ‰ãŽæœĒč§ŖæąēãŽå•éĄŒãŒã‚ã‚Šãžã™ã€‚ こぎナベãƒĢも多くぎノイã‚ēをį™ēį”Ÿã•ã›ã‚‹ã‚ˆã†ã§ã™ã€‚ suggestionsとenhancementsãĢé–ĸé€ŖするこぎナベãƒĢ、ぞたは不十分ãĒåŊĸåŧãŽãƒã‚°ãƒŦポãƒŧトãĢå¤šããŽå•éĄŒãŒã‚ã‚Šãžã™ã€‚ たãļん、整åŊĸåŧãŽãƒã‚°ãƒŦポãƒŧトとPRぎæē–備ができãĻいる/ææĄˆãŽãŸã‚ãĢæ¸Ąã•ã‚ŒãŸãƒã‚§ãƒƒã‚¯ã ã‘ã‚’å–ã‚Šãžã™ã€‚ イãƒŗã‚šã‚ŋ-äģ–ぎすずãĻを閉じãĻ、それãĢåŋœã˜ãĻマãƒŧクをäģ˜ã‘ぞす。

three.jsエã‚ŗã‚ˇã‚šãƒ†ãƒ ãŽã™ãšãĻがグロãƒŧバãƒĢTHREE。*名前įŠē間ãĢ䞝存しãĻいるため、イãƒŗポãƒŧト/エク゚ポãƒŧト構文をäŊŋį”¨ã—たり、ES5ãĢトナãƒŗ゚パイãƒĢしたり、バãƒŗドナãƒŧ。

į§ã¯äŊ•ã§ã‚‚更新できることãĢ同意しぞすが、持įļšå¯čƒŊãĒæ–šæŗ•ã§ã“れらぎãƒĻãƒŧã‚ļãƒŧをã‚ĩポãƒŧトしįļšã‘るためãĢ少しぎäŊœæĨ­ã‚’čĄŒã†æ–šæŗ•ã‚’čĻ‹ã¤ã‘ることができれば、@Bug-ReaperãĢ同意しぞす。

むしろ、ã‚ŗナボãƒŦãƒŧã‚ˇãƒ§ãƒŗを攚善するためãĢãƒĄã‚¤ãƒŗãƒĒポジトãƒĒãĢäŊ•ã‹ã‚’äŋæŒã§ãã‚‹å ´åˆã¯ã€ãƒˆãƒŠãƒŗ゚パイãƒĢ/バãƒŗドãƒĢワãƒŧクフロãƒŧを個åˆĨãĢäŊœæˆã™ã‚‹åŋ…čĻã¯ã‚りぞせん。

これらぎãƒĻãƒŧã‚ļãƒŧをぞとめãĻ、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗ/ナイブナãƒĒぎã‚ĸップグãƒŦãƒŧãƒ‰ã€ã‚ˇã‚šãƒ†ãƒ ãŽæ§‹į¯‰ã€ãŠã‚ˆãŗドキãƒĨãƒĄãƒŗトぎäŊœæˆãĢかかる時間を大嚅ãĢį¯€į´„できぞす。

これãĢついãĻもう少し掘り下げたいと思いぞす。 į§ã¯ãƒ•ãƒ­ãƒŗトエãƒŗドã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗį”¨ãĢ多くぎã‚Ģã‚šã‚ŋムツãƒŧãƒĢとビãƒĢドč‡Ē動化゚クãƒĒプトをäŊœæˆã—ぞしたが、できる限りぎお手äŧã„をさせãĻいただきぞす。

č‰¯ã„ã€‚

全äŊ“įš„ãĢå•éĄŒãŽé‡ã‚’æ¸›ã‚‰ã™æ–šæŗ•ã¯īŧŸ

これをčģŒé“ãĢ䚗せãĻください。 åˆĨぎ゚ãƒŦッドでさらãĢč­°čĢ–できãĻうれしいです。 それはį§ãŽäģĨ前ぎã‚ŗãƒĄãƒŗトãĢいくらかé–ĸé€ŖしãĻいぞす。

į§ã¯@Bug-Reaperぎį™ē言ãĢ同意しぞすīŧš

むしろ、į§ãŸãĄå…¨å“ĄãŒãƒˆãƒŠãƒŗ゚パイãƒĢ/バãƒŗドãƒĢワãƒŧクフロãƒŧをäŊœæˆã—ãĻいãĒいことを望ãŋぞす[...]

į§ãŸãĄã¯įš†ã“ã‚ŒãĢ同意すると思いぞす。

čŗ›åĻ严čĢ–ã‚’å…ąæœ‰ã—ãĻくれãĻありがとう。 æƒ…å ąãĢåŸēãĨいたæąēåŽšã‚’čĄŒãŖãĻいることをįĸēčĒã™ã‚‹ãŸã‚ãĢã€ã“ã‚Œã‚‰ã‚’å…ąæœ‰ã™ã‚‹ã“ã¨ã¯å¸¸ãĢč‰¯ã„ã“ã¨ã§ã™ã€‚

これはį§ãŒäģŠåš´ã„くつかぎ頭č„ŗã‚ĩイクãƒĢをč˛ģやしãĻきたことであり、ブナã‚Ļã‚ļベãƒŗダãƒŧãĢå„Ē先順äŊãĢついãĻ尋ねたことさえあるぎで、äē‹å‰ãĢ計į”ģをįĢ‹ãĻることができぞした。

ES6ãƒĸジãƒĨãƒŧãƒĢは将æĨぎもぎであることãĢ同意しぞすが、イãƒŗポãƒŧトマップãĒしでES6ãƒĸジãƒĨãƒŧãƒĢをäŊŋį”¨ã—ãĻ開į™ēすると、大きãĒé ­į—›ãŽį¨Žã¨ãĒり、フロãƒŧが厌全ãĢ中断する可čƒŊ性がありぞす。 examples/jsをåģƒæ­ĸすることをæąē厚したとき、イãƒŗポãƒŧトマップぎį‰Ŋåŧ•åŠ›ãŒéĢ˜ãžã‚‹ã“とを期垅しãĻいぞしたが、įžåœ¨ã€ãƒ–ナã‚Ļã‚ļãƒŧぎå„Ē先äē‹é …ではãĒいようです。

こぎため、ブナã‚Ļã‚ļがイãƒŗポãƒŧトマップを原čŖ…するぞで、 examples/jsフりãƒĢダぎ非推åĨ¨ã‚’一時停æ­ĸすることãĢしぞした。 最初ぎįĢ‹æ–šäŊ“ã‚’ãƒŦãƒŗダãƒĒãƒŗグするためãĢ、初åŋƒč€…ãĢポãƒĒフã‚ŖãƒĢやバãƒŗドナãƒŧãĢついãĻå­ĻãļようãĢåŧˇåˆļするぎはåĢŒã§ã™ã€‚

@Bug-Reaperと同じįĩčĢ–ãĢ達しぞした。 äģŠæ—Ĩは、 examples/jsmãƒ•ã‚Ąã‚¤ãƒĢからexamples/jsをäŊœæˆã™ã‚‹ã‚šã‚¯ãƒĒプトぎäŊœæˆã‚’æ¤œč¨Žã—ãĻいぞす。

@mrdoob

ブナã‚Ļã‚ļがイãƒŗポãƒŧトマップを原čŖ…するぞで、examples/jsフりãƒĢダぎ非推åĨ¨ã‚’一時停æ­ĸすることãĢしぞした。
@Bug-Reaperと同じįĩčĢ–ãĢ達しぞした。 äģŠæ—Ĩは、examples/jsmãƒ•ã‚Ąã‚¤ãƒĢからexamples/jsをビãƒĢドする゚クãƒĒプトぎäŊœæˆã‚’æ¤œč¨Žã—ãĻいぞす。

čŗĸ明ãĒæąē断。
👍

@mrdoobã‚‚ãĄã‚ã‚“į§ã¯ã‚ãĒたぎæąē厚を受けå…Ĩれぞすが、それは逃した抟äŧšã ã¨æ€ã„ぞす。 遅かれ旊かれ、開į™ēč€…ã¯ã‚°ãƒ­ãƒŧバãƒĢ゚クãƒĒプトからé›ĸれるåŋ…čĻãŒã‚りぞす。 そしãĻ、į§ã¯Import Mapsがここで大きãĒ違いをį”Ÿã‚€ã¨ã¯æ€ã‚ãĒい。 ãƒĻãƒŧã‚ļãƒŧをよりå„Ēれた将æĨ性ぎあるワãƒŧクフロãƒŧãĢ「åŧˇåˆļ」するäģŖわりãĢ、グロãƒŧバãƒĢ゚クãƒĒプトをåŧ•ãįļšãäŊŋį”¨ã§ãã‚‹ã‚ˆã†ãĢしぞす。 2020嚴。

そしãĻ、į§ã¯Import Mapsがここで大きãĒ違いをį”Ÿã‚€ã¨ã¯æ€ã‚ãĒい。

先æ—Ĩ、čĒ°ã‹ãŒã“れをしãĻいるぎをčĻ‹ãžã—たīŧš

<script src="js/three.js"></script>
<script src="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/loaders/GLTFLoader.js"></script>
<script type="module" src="js/main.js"></script>

そしãĻ、 main.jsぎ中で、åŊŧã‚‰ã¯ã“ã‚Œã‚’čĄŒãŖãĻいぞしたīŧš

import {OrbitControls} from "https://threejsfundamentals.org/threejs/resources/threejs/r119/examples/jsm/controls/OrbitControls.js";

そしãĻ、原際ãĢ抟čƒŊしぞした...😐

ãƒĻãƒŧã‚ļãƒŧがæ­Ŗしいことをすることを期垅することはできぞせん。ãƒĻãƒŧã‚ļãƒŧはå­Ļįŋ’し、äŊ•ã‹ãŒã†ãžãã„くぞでį‰Šäē‹ã‚’čŠĻãŋãĻいぞす。 čĒ˛éĄŒã¯ã€åŊŧらが気äģ˜ã‹ãĒã„ã†ãĄãĢæ­ŖしいことをするぎãĢåŊšįĢ‹ã¤ãƒ‡ã‚ļイãƒŗをčĻ‹ã¤ã‘ることです。

マップをイãƒŗポãƒŧトしãĒいES6ãƒĸジãƒĨãƒŧãƒĢãŽå•éĄŒã¯ã€ãƒĻãƒŧã‚ļãƒŧがč‡Ē分ぎプロジェクトぎOrbitControls.jsを/jsフりãƒĢダãƒŧãĢã‚ŗピãƒŧしãĻ、äģĨ前ぎようãĢイãƒŗポãƒŧトできãĒいことです。 OrbitControls.jsは../../build/three.module.js $をæŽĸすため、抟čƒŊしぞせん。

マップぎイãƒŗポãƒŧトでは、 OrbitControls.jsはthreeからイãƒŗポãƒŧトするだけです。 ãƒĻãƒŧã‚ļãƒŧã¯ãƒ•ã‚Ąã‚¤ãƒĢをåĨŊきãĒ場所ãĢã‚ŗピãƒŧしãĻから、イãƒŗポãƒŧトマップぎパ゚をčĒŋ整できぞす。

マップをイãƒŗポãƒŧトすると、「昔」ぎようãĢãƒ•ã‚Ąã‚¤ãƒĢをį°Ąå˜ãĢイãƒŗポãƒŧトできるようãĢãĒりぞす。 äģĨ前ãģおį°Ąå˜ã§ã¯ã‚りぞせんが、少ãĒくともãƒĻãƒŧã‚ļãƒŧã¯ãƒ•ã‚Ąã‚¤ãƒĢをイãƒŗポãƒŧトするときãĢ順åēã‚’æ°—ãĢするåŋ…čĻã¯ã‚りぞせん。 äŊ•ã‹ãĢ勝つäŊ•ã‹ã‚’å¤ąã†ã€‚

マップをイãƒŗポãƒŧトすると、イãƒŗポãƒŧトが構成可čƒŊãĢãĒり、柔čģŸæ€§ãŒå‘上することãĢ同意しぞした。 ただし、ãƒĻãƒŧã‚ļãƒŧはイãƒŗポãƒŧトマップをčĒŋ整するåŋ…čĻãŒã‚りぞすīŧˆã—たがãŖãĻ、原際ãĢäŊ•ã§ã‚るかをį†č§Ŗするåŋ…čĻãŒã‚りぞすīŧ‰ã€‚

「JSãƒ•ã‚Ąã‚¤ãƒĢをフりãƒĢダãƒŧãĢã‚ŗピãƒŧする」全äŊ“がé‚Ēæ‚ĒãĒã‚ĸãƒŗチパã‚ŋãƒŧãƒŗだと思うぎで、新しいãƒĻãƒŧã‚ļãƒŧや初åŋƒč€…ãĢCDNイãƒŗポãƒŧトをäŊŋį”¨ã™ã‚‹ã‚ˆã†ãĢå‹§ã‚ã‚‹ã“ã¨ã§ã“ã‚Œã‚’é˜˛ãã“ã¨ãŒã§ãã‚‹ã¨æœŸåž…ã—ãĻいぞしたīŧˆã“れは開į™ē者ãĢとãŖãĻもã‚Ēãƒ—ã‚ˇãƒ§ãƒŗです。äŊ•ã‚‰ã‹ãŽį†į”ąã§ãƒ“ãƒĢドをäŊŋį”¨ã—たいīŧ‰ã€‚ 遊切ãĒã‚ĸプãƒĒは、とãĢかくビãƒĢドツãƒŧãƒĢをäŊŋį”¨ã™ã‚‹åŋ…čĻãŒã‚りぞす。

į§ã¯åŽŸéš›ãĢはã‚ĸãƒŗチパã‚ŋãƒŧãƒŗとはčĻ‹ãĒしãĻいぞせん。

それはį§ãŒã‚Ļェブã‚ĩイトをäŊœã‚‹ã“とをå­Ļんだ斚æŗ•ã§ã™ã€‚ .cssãƒ•ã‚Ąã‚¤ãƒĢを/cssフりãƒĢダãƒŧãĢ配įŊŽã—、æŦĄãĢį”ģ像を/imgãĢ配įŊŽã—、 .jsãƒ•ã‚Ąã‚¤ãƒĢを/jsãĢ配įŊŽã—ぞす。

過åŽģ数か月間、į§ã¯ES6ãƒĸジãƒĨãƒŧãƒĢ/ CDNã‚ĸプロãƒŧチをäŊŋį”¨ã—ãĻã„ãã¤ã‹ãŽåŽŸé¨“ã‚’čĄŒãŖãĻきぞしたが、ナイブナãƒĒがį§ãŽãƒ—ロジェクトとはį•°ãĒã‚‹ãƒ‰ãƒĄã‚¤ãƒŗからぎもぎであるとは思えぞせん。

ãƒ•ã‚Ąã‚¤ãƒĢをã‚ŗピãƒŧしãĒいときãĢå¤ąã†å¤§ããĒことぎ1ã¤ã¯ã€ãƒ•ã‚Ąã‚¤ãƒĢをįˇ¨é›†ã§ãã‚‹ã“とです。 examples/jså†…ãŽãƒ•ã‚Ąã‚¤ãƒĢは、常ãĢそぎ上ãĢ構į¯‰ã§ãã‚‹äž‹ã§ã‚るとæƒŗ厚されãĻいぞした。 プロジェクトでOrbitControls.jsをã‚ŗピãƒŧしãĻも、åŋ…čĻãĒå‡Ļį†ãŒæ­ŖįĸēãĢčĄŒã‚ã‚ŒãĒかãŖた場合は、ロãƒŧã‚ĢãƒĢãƒ•ã‚Ąã‚¤ãƒĢであるため、変更するだけで済ãŋぞす。

これはį§ãŒį§ãŽãƒ—ロジェクトをã‚ģットã‚ĸップするためãĢäŊŋį”¨ã—た斚æŗ•ã§ã™īŧš

<script src="js/libs/three.js"></script>
<script src="js/libs/three/OBJLoader.js"></script>
<script src="js/libs/three/OrbitControls.js"></script>
<script>
    console.log( THREE, THREE.OBJLoader, THREE.OrbitControls );
</script>

イãƒŗポãƒŧトマップをäŊŋį”¨ã™ã‚‹ã¨ã€æŦĄãŽã‚ˆã†ãĢãĒりぞす。

<script type="importmap">
{
  "imports": {
    "three": "js/libs/three.module.js",
    "OBJLoader": "js/libs/three/OBJLoader.js",
    "OrbitControls": "js/libs/three/OrbitControls.js"
  }
}
</script>
<script type="module">
    import * as THREE from 'three';
    import { OBJLoader } from 'OBJLoader';
    import { OrbitControls } from 'OrbitControls';

    console.log( THREE, OBJLoader, OrbitControls );
</script>

äģĨ前ãģおきれいではありぞせんが、イãƒŗポãƒŧトぎ䞝存é–ĸäŋ‚/順åēã‚’å‡Ļį†ã—、バãƒŗドナãƒŧをåŋ…čĻã¨ã—ぞせん。

それでも、バãƒŗドãƒĢベãƒŧ゚ぎ開į™ēã‚’čĄŒã†äēē々ãĢはぞだ抟čƒŊしぞす。 原際、ã‚ĸドã‚Ēãƒŗは../../build/three.module.js $ではãĒくthreeからイãƒŗポãƒŧトされるようãĢãĒãŖãŸãŸã‚ã€ã‚ˆã‚Šč‰¯ã„įĩæžœãŒåž—られぞす。

そしãĻ、原際ãĢ抟čƒŊしぞした...😐

FWIWこれは、原際ãĢã¯ã”ãä¸€éƒ¨ãŽã‚ąãƒŧ゚でぎãŋ抟čƒŊするようです。 それが抟čƒŊしãĒい場合、それは非常ãĢį´›ã‚‰ã‚ã—い斚æŗ•ã§å¤ąæ•—し、ビãƒĢドプロã‚ģ゚でもį™ēį”Ÿã™ã‚‹ã“とをčĒã‚ãŸã“とãĢé–ĸé€ŖしãĻã„ãã¤ã‹ãŽå•éĄŒãŒæčĩˇã•ã‚Œãžã—た。 おそらく、初åŋƒč€…ãŒåŒã˜ãƒ•ã‚Ąã‚¤ãƒĢをäŊŋį”¨ã™ã‚‹ãŸã‚ãŽč¤‡æ•°ãŽæ–šæŗ•ã‚’提䞛することをåŋƒé…ã—ãĻいる場合は、エナãƒŧがį™ēį”Ÿã—ã‚„ã™ãã€æˇˇäšąã‚’æ‹›ããžã™ã€‚

æŽĨįˇšæ–šå‘かもしれぞせんが、ã‚ŗãƒŗã‚ŊãƒŧãƒĢぎč­Ļ告をäģ‹ã—ãĻペãƒŧジãĢthree.jsぎã‚ŗピãƒŧが2つåĢぞれãĻいることを通įŸĨã™ã‚‹äžĄå€¤ãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œãžã›ã‚“īŧˆåŒã˜ãƒãƒŧジョãƒŗであãŖãĻもīŧ‰ã€‚ã“ã‚Œã‚‰ã‚’æˇˇåœ¨ã•ã›ãĒいようãĢæŗ¨æ„ã—ãĒã„ã¨ã€å•éĄŒãŒį™ēį”Ÿã™ã‚‹å¯čƒŊ性がありぞす。 〜Reactは同様ぎį†į”ąã§ã“ã‚Œã‚’čĄŒã†ã¨æ€ã„ãžã™ã€œReactは原際ãĢはこれをエナãƒŧãŽč€ƒãˆã‚‰ã‚Œã‚‹åŽŸå› ã¨ã—ãĻ指摘しãĻいるだけかもしれぞせん。 それは、å­Ļįŋ’するときãĢäēē々をこれらぎãƒĸダãƒĒテã‚ŖãŽæˇˇåˆã‹ã‚‰é ã–ã‘ã‚‹ãŽãĢ最もåŊšįĢ‹ã¤å¯čƒŊ性がありぞす。

@Bug-Reaperと同じįĩčĢ–ãĢ達しぞした。 äģŠæ—Ĩは、examples/jsmãƒ•ã‚Ąã‚¤ãƒĢからexamples/jsをビãƒĢドする゚クãƒĒプトぎäŊœæˆã‚’æ¤œč¨Žã—ãĻいぞす。

ã“ã‚ŒãŒæ–°ã—ã„č¨ˆį”ģである場合は、すずãĻぎãƒĸジãƒĨãƒŧãƒĢãƒ•ã‚Ąã‚¤ãƒĢをES6ãƒ•ã‚Ąã‚¤ãƒĢãĢビãƒĢドするīŧƒ15526 /īŧƒ15543īŧˆįžåœ¨ã¯ãƒ—ロジェクトから削除されãĻいぞすīŧ‰ãŽåžŠæ´ģを喜んでお手äŧã„しぞす。 いくつかぎ䞋が非常ãĢå¤šããŽãƒ•ã‚Ąã‚¤ãƒĢīŧˆãŸã¨ãˆã°ã€ã‚ˇã‚§ãƒŧダãƒŧノãƒŧドīŧ‰ãĢ分æ•ŖしãĻいãĻ、いくつかぎãƒĸジãƒĨãƒŧãƒĢã‚’č¤‡æ•°ãŽãƒ•ã‚Ąã‚¤ãƒĢãĢåˆ†å‰˛ã™ã‚‹ã“ã¨ãĢé–ĸåŋƒãŒã‚る場合は、ロãƒŧãƒĢã‚ĸップ゚クãƒĒプトをã‚ĸップグãƒŦãƒŧドしãĻã€å¤‰æ›ã™ã‚‹ãƒ•ã‚Ąã‚¤ãƒĢぎ明į¤ēįš„ãĒãƒĒã‚šãƒˆã‚’å–åž—ã™ã‚‹äžĄå€¤ãŒã‚ã‚Šãžã™ã€‚ã¨å‡ē力。 å‡ēåŠ›ã•ã‚Œã‚‹ãƒ•ã‚Ąã‚¤ãƒĢ間ぎ䞝存é–ĸäŋ‚ã‚‚č‡Ē動įš„ãĢäŊœæˆã§ãã‚‹ã¯ãšã§ã™ã€‚

ãƒ•ã‚Ąã‚¤ãƒĢをã‚ŗピãƒŧしãĒいときãĢå¤ąã†å¤§ããĒことぎ1ã¤ã¯ã€ãƒ•ã‚Ąã‚¤ãƒĢをįˇ¨é›†ã§ãã‚‹ã“とです。

į§ã¯åŒæ„ã—ぞすが、į§ãŸãĄãŒč‡ŗる所でクナ゚ãĢ参加できるãĒら、į§ã¯æŦĄãŽã‚ˆã†ãĒもぎを望んでいぞすīŧš

import orbitalcontrols from  orbitalcontrolsURL

class mycontrols extends orbitalcontrols {
// do the edits I care about
}

そしãĻ垌で

let controls = new myorbitalcontrols

ãƒ•ã‚Ąã‚¤ãƒĢをã‚ŗピãƒŧしãĒいときãĢå¤ąã†å¤§ããĒことぎ1ã¤ã¯ã€ãƒ•ã‚Ąã‚¤ãƒĢをįˇ¨é›†ã§ãã‚‹ã“とです。

į§ã¯åŒæ„ã—ぞすが、į§ãŸãĄãŒč‡ŗる所でクナ゚ãĢ参加できるãĒら、į§ã¯æŦĄãŽã‚ˆã†ãĒもぎを望んでいぞすīŧš

orbitalcontrolsURLからorbitalcontrolsをイãƒŗポãƒŧトしぞす

クナ゚mycontrolsはorbitalcontrolsã‚’æ‹Ąåŧĩしぞす{
//気ãĢãĒるįˇ¨é›†ã‚’čĄŒã„ãžã™
}

そしãĻ垌で

ã‚ŗãƒŗトロãƒŧãƒĢ=新しいmyorbitalcontrolsをしぞしょう

čĻĒぎ「クナ゚」が単į´”ãĒjsé–ĸ数であãŖãĻも、すでãĢãã‚Œã‚’čĄŒã†ã“ã¨ãŒã§ããžã™ã€‚

原際ãĢ抟čƒŊしãĻいるã‚ŗãƒŧドīŧˆãƒ‡ãƒãƒƒã‚Ŧãƒŧぎクイックテ゚トでīŧ‰īŧš

Promise.all([
    import('https://unpkg.com/three/build/three.module.js')
        .then( mod=> [mod.Camera, mod.WebGLRenderer] ),
    import('https://unpkg.com/three/examples/jsm/controls/OrbitControls.js')
        .then( mod=> mod.OrbitControls )
])
.then( ([
    [ Camera, WebGLRenderer ],
    OrbitControls
])=> new ( class extends OrbitControls {} )( new Camera, (new WebGLRenderer).domElement )
)
.then( console.log )

...ぞたはより単į´”ãĒ構文īŧš

(async function() {

let { Camera, WebGLRenderer } = await import('https://unpkg.com/three/build/three.module.js')
,   { OrbitControls } = await import('https://unpkg.com/three/examples/jsm/controls/OrbitControls.js')

class Con extends OrbitControls { }

let my = new Con( new Camera, (new WebGLRenderer).domElement )
console.log( my )

})()

そぎaynomé–ĸ数と非同期/垅抟ぎį´„束をåŋƒé…ã™ã‚‹ã“とはåˆĨとしãĻ、クãƒŧãƒĢ

class mycontrols extend orbitalcontrols {
 // do the edits I care about
 }

į†æƒŗįš„ãĢは、これは、変更を加えるときãĢå…ƒãŽãƒ•ã‚Ąã‚¤ãƒĢをįˇ¨é›†ã™ã‚‹ã‚ˆã†ãĢãƒĻãƒŧã‚ļãƒŧãĢ指į¤ēするぎではãĒく、åŽŖäŧã™ã‚‹åŋ…čĻãŽã‚るパã‚ŋãƒŧãƒŗです。 ãŸã ã—ã€äž‹ã¯æ‹Ąåŧĩ性をåŋĩé ­ãĢįŊŽã„ãĻäŊœæˆã•ã‚ŒãĻいãĒいため、達成できることãĢは大きãĒåˆļ限がありぞす。 į§ãŽįĩŒé¨“では、元ぎ䞋全äŊ“ã‚’æ‹Ąåŧĩクナ゚ぎã‚ŗãƒŗ゚トナクã‚ŋãƒŧãĢã‚ŗピãƒŧしãĻ抟čƒŊさせるåŋ…čĻãŒã‚るため、 extendをäŊŋį”¨ã—ãĻも意å‘ŗがありぞせん。

たとえば、 OrbitControlsãĢ寞しãĻ最も一čˆŦįš„ãĢčĻæą‚される変更は、パãƒŗをåˆļ限することです。 これは、そぎ゚ãƒŦッドからぎ@Mugen87ぎフã‚ŖドãƒĢãĢį¤ēされãĻいるようãĢį°Ąå˜ãĢåŽŸčĄŒã§ããžã™ã€‚

つぞり、 minPanとmaxPanぎベクトãƒĢをčŋŊ加し、 controls.updateãƒĄã‚Ŋッドでcontrols.targetをクナãƒŗプしぞす。

OrbitControlsã‚’æ‹ĄåŧĩしãĻã€ã“ã‚Œã‚’åŽŸčĄŒã—ãžã—ãŸã€‚ æ‹Ąåŧĩクナ゚をäŊœæˆã™ã‚‹ã“とができ、それはæ­Ŗ常ãĢ抟čƒŊしぞす。 ãŸã ã—ã€å¤‰æ›´ã‚’åŠ ãˆã‚‹ã¨å•éĄŒãŒæ˜Žã‚‰ã‹ãĢãĒりぞす。 updateãƒĄã‚Ŋッドを単į´”ãĢæ‹Ąåŧĩすることはできぞせん。

class OrbitControlsPanLimit extends OrbitControls {
    constructor(object, domElement) {
        super(object, domElement);
    }

    update() {
        super.update();
        console.log('Custom update function');
    }
}

ã“ãŽæ‹Ąåŧĩクナ゚は抟čƒŊしぞすがīŧˆã‚°ãƒĒッチīŧ‰ã€ã“ぎ新しいOrbitControlsPanLimit.updateãƒĄã‚Ŋッドはį„ĄčĻ–されぞす。 元ぎOrbitControls.updateãƒĄã‚Ŋッドはåŧ•ãįļšãäŊŋį”¨ã•ã‚Œãžã™ã€‚

ã‚ŗãƒŗ゚トナクã‚ŋãƒŧで再厚įžŠã™ã‚‹ã“とãĢより、上書きできぞす。

class OrbitControlsPanLimit extends OrbitControls {
    constructor(object, domElement) {
        super(object, domElement);

        this.update = () => {
            console.log('Custom update function');
        }
    }
}

ここでsuper.update()をäŊŋį”¨ã§ããĒいため、元ぎ更新斚​​æŗ•å…¨äŊ“ã‚’ã‚ŗピãƒŧするしかありぞせん。 ãŸã ã—ã€ããŽãƒĄã‚Ŋッドは、すずãĻãŽãƒĄã‚Ŋãƒƒãƒ‰é–“ã§å…ąæœ‰ã•ã‚Œã‚‹OrbitControls内からぎこぎようãĒもぎぎ多くãĢ䞝存しãĻいぞす。

    //
    // internals
    //

    var scope = this;

    var changeEvent = { type: 'change' };
    var startEvent = { type: 'start' };
    var endEvent = { type: 'end' };

    var STATE = {
        NONE: - 1,
        ROTATE: 0,
        DOLLY: 1,
        PAN: 2,
        TOUCH_ROTATE: 3,
        TOUCH_PAN: 4,
        TOUCH_DOLLY_PAN: 5,
        TOUCH_DOLLY_ROTATE: 6
    };

    var state = STATE.NONE;

    var EPS = 0.000001;

    // current position in spherical coordinates
    var spherical = new THREE.Spherical();
    var sphericalDelta = new THREE.Spherical();

    var scale = 1;
    var panOffset = new THREE.Vector3();
    var zoomChanged = false;

    var rotateStart = new THREE.Vector2();
    var rotateEnd = new THREE.Vector2();
    var rotateDelta = new THREE.Vector2();

    var panStart = new THREE.Vector2();
    var panEnd = new THREE.Vector2();
    var panDelta = new THREE.Vector2();

    var dollyStart = new THREE.Vector2();
    var dollyEnd = new THREE.Vector2();
    var dollyDelta = new THREE.Vector2();

最įĩ‚įš„ãĢは、元ぎOrbitControlsぎãģãŧ全äŊ“ã‚’OrbitControlsPanLimitã‚ŗãƒŗ゚トナクã‚ŋãƒŧãĢã‚ŗピãƒŧするåŋ…čĻãŒã‚ã‚Šã€ã‚¯ãƒŠã‚šã‚’æ‹Ąåŧĩするį›Žįš„ãŒå¤ąã‚ã‚Œãžã™ã€‚ ã‚ŗãƒŗトロãƒŧãƒĢã‚’æ‹Ąåŧĩ性をåŋĩé ­ãĢįŊŽã„ãĻクナ゚としãĻ記čŋ°ã—ãĒã„é™ã‚Šã€ãã‚Œã‚’æ‹Ąåŧĩã™ã‚‹ã“ã¨ã¯åŽŸčĄŒå¯čƒŊではãĒいと思いぞす。

チãƒŖイムをしãĻくれãĻありがとう@looeee 。 į§ã¯č‡Ē分ぎåŠĒ力ぎ中でį°Ąå˜ãĒč§Ŗæąēį­–を逃したぎではãĒいかと思ãŖãĻいぞしたが、あãĒたがそれãĢついãĻč¨€åŠã—ãŸãŽã§ã€ãã‚Œã¯į§ãŒč‡Ē分č‡ĒčēĢãĢįĢ‹ãĄä¸ŠãŒãŖたところです。

į†æƒŗįš„ãĢは、これは、変更を加えるときãĢå…ƒãŽãƒ•ã‚Ąã‚¤ãƒĢをįˇ¨é›†ã™ã‚‹ã‚ˆã†ãĢãƒĻãƒŧã‚ļãƒŧãĢ指į¤ēするぎではãĒく、åŽŖäŧã™ã‚‹åŋ…čĻãŽã‚るパã‚ŋãƒŧãƒŗです。

æŗ¨æ„ã—ãĻください、それはįļ™æ‰ŋå¯žæ§‹æˆãŽč­°čĢ–ãĢ向かãŖãĻ密æŽĨãĢ踏ãŋčžŧんでいぞす。

į†æƒŗįš„ãĢは、å›ŗ書館はパã‚ŋãƒŧãƒŗをåŽŖäŧã™ã‚‹ãšãã§ã¯ã‚りぞせん。 それはそぎ抟čƒŊとそれがあãĒãŸãŽå•éĄŒã‚’č§ŖæąēすることをおぎようãĢį›ŽæŒ‡ã—ãĻいるかをåŽŖäŧã™ã‚‹ãšãã§ã™ã€‚

ぞた、開į™ēč€…ãŽãƒ¯ãƒŧクフロãƒŧ、゚ã‚ŋック、ビãƒĢãƒ‰ã‚ˇã‚šãƒ†ãƒ ã€ãƒĻãƒŧã‚šã‚ąãƒŧã‚šã‚’æƒŗ厚するずきではありぞせん。 å„ĒれたナイブナãƒĒは、そぎã‚ŗミãƒĨニテã‚ŖãŽå¤šããŽč¤‡é›‘ãĒニãƒŧã‚ēãĢ可čƒŊãĒ限り寞åŋœã—ãĻいぞす。

äģŠæ—Ĩぎ新しいもぎは明æ—Ĩ古いもぎであり、パã‚ŋãƒŧãƒŗã¯čĄŒãæĨしぞす。 そぎ場合ぎ唯一ぎ不変は、可čƒŊãĒ限り多くぎ下äŊäē’換性をįļ­æŒã™ã‚‹ãŸã‚ãĢ、途中で多くぎãƒĻãƒŧã‚šã‚ąãƒŧã‚šã‚’åŧˇåŠ›ãĢã‚ĩポãƒŧトするã‚Ŋフトã‚Ļェã‚ĸです。

Windows10でもDOSã‚˛ãƒŧãƒ ã‚’åŽŸčĄŒã§ããžã™ã€‚

įļ™æ‰ŋã¨æ§‹æˆãŽč­°čĢ–

ã„ã„ãˆã€ãŠéĄ˜ã„ã—ãžã™ã€‚ ã“ãŽã€Œč­°čĢ–」ぎč§Ŗæąēį­–は、äģ•äē‹ãĢ最遊ãĒツãƒŧãƒĢをäŊŋį”¨ã™ã‚‹ã“とです。 įļ™æ‰ŋ、構成、抟čƒŊ、テ゚ト駆動ぎ場所がありぞす...あãĒたはそれãĢ名前をäģ˜ã‘ぞす。

äģ–ぎ開į™ē者īŧˆäŊŋį”¨ã€å†åˆŠį”¨ã€å¤‰æ›´īŧ‰ãŒãŠãŽã‚ˆã†ãĢthree.jsをäŊŋį”¨ã™ã‚‹ã‹ãĢついãĻčŠąã—ãĻいるぎで、jsブナã‚Ļã‚ļãƒŧ抟čƒŊぎ外ãĢå‡ēることãĒく、すぐãĢį†č§ŖしãĻäŊŋį”¨ã§ãã‚‹ãƒ‘ã‚ŋãƒŧãƒŗをåŽŖäŧã™ã‚‹ã“とは有劚です。

åŽŖäŧã™ã‚‹ã“とは、åˆĨぎ゚ã‚ŋイãƒĢをäŊŋį”¨ã§ããĒいことを意å‘ŗするもぎではありぞせん。

可čƒŊãĒ限り下äŊäē’換性

はいといいえ。

それはそぎ抟čƒŊとそれがあãĒãŸãŽå•éĄŒã‚’č§ŖæąēすることをおぎようãĢį›ŽæŒ‡ã—ãĻいるかをåŽŖäŧã™ã‚‹ãšãã§ã™

明įĸēãĢするためãĢã€å•éĄŒ/抟čƒŊã‚ģットはäŊ•ã§ã™ã‹īŧŸ

ぞた、開į™ēč€…ãŽãƒ¯ãƒŧクフロãƒŧ、゚ã‚ŋック、ビãƒĢãƒ‰ã‚ˇã‚šãƒ†ãƒ ã€ãƒĻãƒŧã‚šã‚ąãƒŧã‚šã‚’æƒŗ厚するずきではありぞせん

į§ã¯ãģとんお同意しぞす。 threejsぎãƒĻãƒŧã‚šã‚ąãƒŧ゚はįžåœ¨ãƒ–ナã‚Ļã‚ļです。 いくつかぎロãƒŧダãƒŧがあるというč­Ļ告は、į§ãŒčžã„たことから、いくつかぎノãƒŧドã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãĢåŊšįĢ‹ãĄãžã™ã€‚

そぎ場合ぎ唯一ぎ厚数は、途中ぎ多くぎãƒĻãƒŧã‚šã‚ąãƒŧã‚šãĢå„Ēれたã‚ĩポãƒŧトを提䞛するã‚Ŋフトã‚Ļェã‚ĸです。

変化は唯一ぎ厚数です。 開į™ēč€…ã¯åĨŊきãĒツãƒŧãƒĢをäŊŋį”¨ã—、時ãĢはäģ–ぎことをやãŖãĻãŋることがありぞす。

äŊ™čĢ‡ã¨ã—ãĻīŧš

それはそぎ抟čƒŊとそれがあãĒãŸãŽå•éĄŒã‚’č§ŖæąēすることをおぎようãĢį›ŽæŒ‡ã—ãĻいるかをåŽŖäŧã™ã‚‹ãšãã§ã™

ãŠãĄã‚‰ãŒå…ˆãĢæĨぞしたかīŧŸ 抟čƒŊ、パã‚ŋãƒŧãƒŗã€ãžãŸã¯å•éĄŒīŧŸ
įĸēかãĢパã‚ŋãƒŧãƒŗã¯å•éĄŒã‚’č§ŖæąēするぎãĢåŊšįĢ‹ãĄã€ãã‚Œã‹ã‚‰æŠŸčƒŊãĢãĒりぞした
...ãã‚Œã¨ã‚‚ã€å•éĄŒã‚’åŧ•ãčĩˇã“したぎは抟čƒŊであり、それをč§Ŗæąēするためぎパã‚ŋãƒŧãƒŗをčĻ‹ã¤ã‘ぞしたかīŧŸ

ãŠãĄã‚‰ãŒå…ˆãĢæĨぞしたかīŧŸ 抟čƒŊ、パã‚ŋãƒŧãƒŗã€ãžãŸã¯å•éĄŒīŧŸ

ãŠãĄã‚‰ãŒå…ˆãĢæĨぞしたかīŧŸ éļã‹åĩかīŧŸ
äŊ•äēēかぎäēē々はã‚ĒãƒŗドãƒĒã‚’č¨€ã„ãžã™...

すずãĻぎ周りぎį´ æ™´ã‚‰ã—ã„č­°čĢ–、すずãĻぎå…Ĩ力をãŋんãĒãĢ感čŦã—ぞす。

ES6ぎã‚ĩãƒŗプãƒĢãƒĸジãƒĨãƒŧãƒĢをトナãƒŗ゚パイãƒĢするã‚ŋ゚クãĢ最遊ãĒバãƒŗドナãƒŧīŧˆãƒ­ãƒŧãƒĢã‚ĸップ、バベãƒĢ、パãƒŧã‚ģãƒĢ、ã‚ĻェブパックãĒおīŧ‰ãĢついãĻ、įš†ã•ã‚“がおう思うかをįŸĨりたいと思いぞす。 @gigabloxがここでぎįĩŒé¨“ãĢついãĻč¨€åŠã—ãĻいると思いぞすし、äģ–ぎäēēもそうしãĻいると思いぞす。

įžåœ¨ãŽãƒĒポジトãƒĒãĢは、すでãĢbabel、rollup、およãŗいくつかぎé–ĸé€ŖプナグイãƒŗがåĢぞれãĻいぞす。 į§ã¯å…ˆãĢé€˛ã‚“ã§ã€äģŠå¤œãƒãƒƒã‚­ãƒŗã‚°ã‚’é–‹å§‹ã—ãžã—ãŸã€‚å…ąæœ‰ã™ã‚‹éžå¸¸ãĢ大ぞかãĒロãƒŧãƒĢã‚ĸップ構成゚クãƒĒプトがありぞす。

// jsm-transpiler.js
export default [
  {
    input: './examples/jsm/controls/OrbitControls.js',
    output: {
      banner:"//warning this file was generated automatically",
      file: './examples/js/controls/OrbitControls.js',
      name:'OC',
      footer:'THREE["OrbitControls"]=OC.OrbitControls',
      format: 'umd'
    }
  }
];

こぎロãƒŧãƒĢã‚ĸップ構成゚クãƒĒプトは、原際ãĢOrbitControlsãƒĸジãƒĨãƒŧãƒĢを非ãƒĸジãƒĨãƒŧãƒĢ.jsãƒ•ã‚Ąã‚¤ãƒĢイãƒŗクãƒĢãƒŧドãĢ変換し、THREE.OribitControlsãĢ遊切ãĒã‚ŗãƒŗ゚トナクã‚ŋãƒŧã‚’å‰˛ã‚ŠåŊ“ãĻぞす。 それはうぞくいきぞした、それはクãƒŧãƒĢです:)īŧ ぞた、THREE.jsぎ40kčĄŒã‚’å‡ēåŠ›ãƒ•ã‚Ąã‚¤ãƒĢãĢバãƒŗドãƒĢしぞしたが、それãģおクãƒŧãƒĢではありぞせん。 ぞた、OrbitControlsã‚ŗãƒŗ゚トナクã‚ŋãƒŧをTHREEãĢčģĸ送するぎãĢåŊšįĢ‹ã¤ã€OCとå‘ŧばれる中間グロãƒŧバãƒĢ変数をåŽŖč¨€ã™ã‚‹ã“ã¨ãĢより、グロãƒŧバãƒĢ変数゚ペãƒŧ゚を怠惰ãĢæąšæŸ“ã—ãĻいぞす。

ロãƒŧãƒĢã‚ĸップãĢは、į§ãŸãĄãŽå¤šããŽå•éĄŒãĢ寞å‡Ļできると思ういくつかぎæœŦåŊ“ãĢクãƒŧãƒĢãĒ抟čƒŊがあるようです。 į‰šãĢ、æ­Ŗしいネ゚トされたãƒĸジãƒĨãƒŧãƒĢがåĢぞれる/除外されることをįĸēčĒã™ã‚‹ãŸã‚ãŽãƒžãƒƒãƒ”ãƒŗグおよãŗそぎäģ–ぎã‚ŗãƒŗトロãƒŧãƒĢ。 ヘッダãƒŧ/フッã‚ŋãƒŧ/イãƒŗトロ/å‡ē力プロパテã‚Ŗをäģ‹ã—ãĻ、トナãƒŗ゚パイãƒĢされたペイロãƒŧドぎ前垌ãĢã‚ŗãƒŧドをæŒŋå…Ĩする抟čƒŊ。

だぞされたロãƒŧãƒĢã‚ĸップ構成゚クãƒĒプトをäŊŋį”¨ã—ãĻ、åŋ…čĻãĒことを達成できると慎重ãĢæĨŊčĻŗčĻ–しãĻいぞす。 しかし、多くぎバãƒŗドナãƒŧぎ違いをčĒŋæŸģ/į†č§ŖしãĻいるäēēがここãĢ参加できればį´ æ™´ã‚‰ã—いと思いぞす。 ãƒĸジãƒĨãƒŧãƒĢがよりį´ æ™´ã‚‰ã—くãĒり、いくつかぎトナãƒŗ゚パイãƒĢã‚ŗãƒŧドがäģ–ぎã‚ŗãƒŧドよりもå„ĒれãĻいるぎで、ãƒĸジãƒĨãƒŧãƒĢをå‡Ļį†ã™ã‚‹ãĢはかãĒり堅į‰ĸãĒもぎがåŋ…čĻãĢãĒりぞす。

これがį§ãŽčĻ‹č§Ŗですīŧš
https://github.com/mrdoob/three.js/pull/20529

これは、すずãĻぎJSMãƒĸジãƒĨãƒŧãƒĢをį´„30į§’でJSグロãƒŧバãƒĢ名前įŠē間ãƒĸジãƒĨãƒŧãƒĢãĢ変換するpocã‚Ģã‚šã‚ŋムビãƒĢド゚クãƒĒプトです。 こぎ斚æŗ•ã§ã‹ãĒり成功しぞした。 より多くぎテ゚トがåŋ…čĻã§ã™ãŒã€hello worldでGLTFLoaderぎようãĒã‚ˆã‚Šč¤‡é›‘ãĒãƒĸジãƒĨãƒŧãƒĢぎいくつかをčŠĻã—ãžã—ãŸãŒã€ãã‚Œã¯å•éĄŒã‚ã‚Šãžã›ã‚“ã§ã—ãŸã€‚

įĩŒé¨“čąŠå¯ŒãĒæ­ŖčĻčĄ¨įžã‚Ļã‚Ŗã‚ļãƒŧドぎヘãƒĢプをäŊŋį”¨ã—ãĻ、PRでčŠŗį´°ã‚’čĒ­ã‚€ã“ã¨ãŒã§ãã‚‹ã„ãã¤ã‹ãŽã‚¨ãƒƒã‚¸ã‚ąãƒŧ゚をぞとめることができぞす。

Chromeぎイãƒŗポãƒŧトマップぎå‡ēčˇæ„å‘īŧš
https://groups.google.com/a/chromium.org/g/blink-dev/c/rVX_dJAJ-eI

こぎペãƒŧジはåŊšãĢįĢ‹ãĄãžã—たかīŧŸ
0 / 5 - 0 評価