├── .eslintrc.json ├── .vscode ├── extensions.json ├── iisexpress.json ├── jsconfig.json ├── launch.json └── settings.json ├── README.md ├── Web.config ├── content ├── Junk_title.png ├── Message │ ├── bref_testStage.js │ └── stage_testStage.js ├── SSR06_Born2.x ├── bgm_mp3 │ ├── Battle.mp3 │ ├── Obstacle.mp3 │ └── Trap.mp3 ├── commonSounds.js ├── cv │ ├── commonVoice.js │ └── teststage │ │ ├── bref_test.js │ │ └── stageCV_test.js ├── do_ not_seconduse.txt ├── efobj │ ├── AddBillTex.png │ ├── AlpBillTex.png │ ├── BarniaA.x │ ├── BurretAll.jpg │ ├── Missile_a1.x │ ├── ShotA.x │ ├── barnia1.png │ ├── barnia2.png │ ├── cannonB.x │ ├── laserA.x │ ├── rainbow.png │ ├── splash.png │ └── tamaC_2.x ├── enemys │ ├── Carrier_B_boro.png │ ├── Carrier_B_boro.x │ ├── Ene_AAA1.x │ ├── Ene_AAA2.x │ ├── Hover1.x │ ├── ene_grp1_uv.png │ └── track1.x ├── ground │ ├── SkyBoll_1.x │ ├── SkyD.jpg │ ├── riverwar.png │ ├── stage4_bp0.png │ ├── state4.x │ ├── state4_height.x │ └── state4_height_cam.x ├── htmlimage │ ├── barniause.gif │ ├── junk_sample1.png │ ├── junk_sample2.png │ └── junk_sample3.png ├── tex64.png ├── texture │ ├── SSR06_Born2_bp_base.png │ └── SSR06_Born2_dif.png ├── title_Back.jpg ├── title_Back_Ray.jpg ├── wayPointObj.x └── wpn │ ├── BBC_1.x │ ├── BMS_3.x │ ├── RRF_1.x │ ├── RRF_2.x │ ├── Rw_BltLifl_A.x │ ├── Rw_Bmlf_2.x │ └── wepons_uv.png ├── js ├── Detector.js ├── JfTimeRuler.js ├── ParticlTask.js ├── cEnBtPlayer.js ├── clsConst.js ├── clsCpuTink.js ├── clsEtcUnit.js ├── clsParticle.js ├── clsPlayer.js ├── clsWeapon.js ├── controls │ └── OrbitControls.js ├── index_ui.js ├── libs │ ├── charsetencoder.min.js │ ├── dat.gui.min.js │ └── stats.min.js ├── loaders │ └── thrXfileLoader.js ├── missionlist.js ├── oauth.js ├── objectSetter │ ├── ObjSetter_Base.js │ ├── obj_AAA1.js │ ├── obj_AAA2.js │ ├── obj_BarniaObj.js │ ├── obj_Hover.js │ ├── obj_SSR06.js │ └── obj_Track_1.js ├── oreBt2dSceneCommon.js ├── oreCommon.js ├── oreMath.js ├── oreScene.js ├── postprocessing │ ├── EffectComposer.js │ ├── MaskPass.js │ ├── RenderPass.js │ ├── ShaderPass.js │ └── UnrealBloomPass.js ├── pseudo-function.js ├── screenUpdater.js ├── sha1.js ├── shaders │ ├── ConvolutionShader.js │ ├── CopyShader.js │ ├── FXAAShader.js │ └── LuminosityHighPassShader.js ├── stagefile │ ├── bref_testStage.js │ ├── scriptList_testStage.js │ └── testStageScript.js ├── three.min.js ├── three.modules.js ├── threecomps.js └── titleScreenScript.js └── teststage.html /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "commonjs": true, 5 | "es6": true, 6 | "node": true 7 | }, 8 | "parserOptions": { 9 | "ecmaFeatures": { 10 | "jsx": true 11 | }, 12 | "sourceType": "module" 13 | }, 14 | "rules": { 15 | "no-const-assign": "warn", 16 | "no-this-before-super": "warn", 17 | "no-undef": "warn", 18 | "no-unreachable": "warn", 19 | "no-unused-vars": "warn", 20 | "constructor-super": "warn", 21 | "valid-typeof": "warn" 22 | } 23 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp 6 | 7 | ] 8 | } -------------------------------------------------------------------------------- /.vscode/iisexpress.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 41475 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs" 5 | } 6 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | // ローカルにあるファイルをデバッグ 4 | "configurations": [ 5 | /* 6 | { 7 | // デバッグ設定の名称 8 | "name": "Launch local file", 9 | // デバッグ種別を指定(chrome/node/monoなど) 10 | "type": "chrome", 11 | // lanunchまたはattachを指定 12 | "request": "launch", 13 | // 読み込むHTMLファイルを指定(プロジェクトからのパスを指定) 14 | "file": "${workspaceRoot}/teststage.html" 15 | }, 16 | */ 17 | // Webサーバー上にあるファイルをデバッグ 18 | { 19 | // デバッグ設定の名称 20 | "name": "Launch remote website with sourcemaps", 21 | // デバッグ種別を指定(chrome/node/monoなど) 22 | "type": "chrome", 23 | // lanunchまたはattachを指定 24 | "request": "launch", 25 | // Webサーバー上にあるデバッグ対象のURLを指定 26 | "url": " http://localhost:41475/teststage.html", 27 | // マッピングするローカルファイルが配置されているディレクトリを指定 28 | "webRoot": "${workspaceRoot}/", 29 | // ソースマップの有効・無効の指定(true/false) 30 | "sourceMaps": true, 31 | 32 | "runtimeArgs" : ["--incognito"] 33 | } 34 | , 35 | //起動済みにアタッチ 36 | { 37 | "name": "Attach chrome", 38 | "type": "chrome", 39 | "request": "attach", 40 | "port": 9222 41 | } 42 | 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // 既定の設定とユーザー設定を上書きするには、このファイル内に設定を挿入します 2 | { 3 | /* "editor.fontFamily": "'Migu 1M'",*/ 4 | "editor.renderWhitespace": "all", 5 | "editor.tabSize": 2, 6 | "editor.insertSpaces": true 7 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Junk Fields JS 2 | ==== 3 | 3D Action Game made in JavaScript (Three.js) 4 | Three.JSを使用して作られた、サンプルゲームです。 5 | 6 | ## Description 7 | 8 | 9 | ## Demo 10 | [ここで動くサンプルが見れます This Site](http://www001.upp.so-net.ne.jp/adrs2002/teststage.html) 11 | 12 | ![sample1](content/htmlimage/junk_sample1.png) 13 | ![sample1](content/htmlimage/junk_sample2.png) 14 | ![sample1](content/htmlimage/junk_sample3.png) 15 | 16 | ## Requirement 17 | [THREE.JS](https://threejs.org/) 18 | 19 | ## Contribution 20 | この汚いソースを書き直してくれる人はいつでも募集中! 21 | 22 | ## Licence 23 | 24 | MIT 25 | 26 | ## Author 27 | 28 | [adrs2002](https://github.com/adrs2002/) -------------------------------------------------------------------------------- /Web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /content/Junk_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/Junk_title.png -------------------------------------------------------------------------------- /content/Message/bref_testStage.js: -------------------------------------------------------------------------------- 1 | /* 2 | var msg_bref = new Array( 3 | "", 4 | "非常招集ご苦労。\r\n時間がない。状況を手短に説明する。", 5 | "国連軍から我々への補給物資を搭載した輸送機が、 敵部隊に撃墜された。", 6 | "撃墜された輸送機は、フレシュム市西北西60Kmの地点で 消息を絶った。\r\n現場は深い谷につき、不時着は不可能であったと思われる。", 7 | "貴君等には、輸送機の捜索救難を命ずる。\r\n周辺は中立地帯となっており、戦闘捜索救難となる可能性が高い。", 8 | "アルファは積み荷の回収及び発見された負傷者の保護、\r\nブラボーは周辺警戒を行ってもらう。", 9 | "ブラボーが先行し周辺の安全を確保、安全が確認され次第、アルファによる回収作業を行え。" 10 | ); 11 | */ 12 | 13 | var msg_bref = new Array( 14 | "", 15 | "Brf00_001", 16 | "Brf00_002", 17 | "Brf00_003", 18 | "Brf00_004", 19 | "Brf00_005", 20 | "Brf00_006" 21 | ); 22 | 23 | 24 | var txt_bref = { 25 | "Brf00_001": "非常招集ご苦労。\r\n時間がない。状況を手短に説明する。", 26 | "Brf00_002": "国連軍から我々への補給物資を搭載した輸送機が、 敵部隊に撃墜された。", 27 | "Brf00_003": "撃墜された輸送機は、フレシュム市西北西60Kmの地点で 消息を絶った。\r\n現場は深い谷につき、不時着は不可能であったと思われる。", 28 | "Brf00_004": "貴君等には、輸送機の捜索救難を命ずる。\r\n周辺は中立地帯となっており、戦闘捜索救難となる可能性が高い。", 29 | "Brf00_005": "アルファは積み荷の回収及び発見された負傷者の保護、\r\nブラボーは周辺警戒を行ってもらう。", 30 | "Brf00_006": "ブラボーが先行し周辺の安全を確保、安全が確認され次第、アルファによる回収作業を行え。" 31 | 32 | }; 33 | 34 | 35 | var txt_bref_e = { 36 | "Brf00_001": "Due to pressing circumstances, I'll be issuing an emergency briefing.", 37 | "Brf00_002": "Allied Cargo was shot down by Enemy's SAM.\r\nThere's supplies airlifting to the troops.", 38 | "Brf00_003": "They went missing in 60km north of Fureshum-city. /r/nSo impossible to landing.", 39 | "Brf00_004": "Your mission is search-and-rescue operation for Cargo.\r\nThe surrounding area is a neutral point,\r\nIt'll probably combat search-and-rescue operation.", 40 | "Brf00_005": "Alpha, your mission is search cargo and help out the wounded. \r\nBravo, your mission is guard the area.", 41 | "Brf00_006": "Bravo, you go out first for securing the area.\r\nAfter securing the area, Alpha move on and handle the direct rescue." 42 | 43 | }; -------------------------------------------------------------------------------- /content/Message/stage_testStage.js: -------------------------------------------------------------------------------- 1 |  2 | var msg_stage = { 3 | "": "", 4 | "Bt00": "指定ポイントまで移動せよ", 5 | "Bt01": "周辺を警戒せよ", 6 | "Bt02": "敵部隊を撃破せよ", 7 | "Bt03": "敵部隊を撃破せよ", 8 | "Bt04": "敵部隊を撃破せよ", 9 | "Bt05": "敵部隊を撃破せよ\r\n所属不明機を撃破せよ", 10 | "Bt06": "敵部隊を撃破せよ", 11 | "Bt07": "", 12 | "Bt07A": "", 13 | "Bt07B": "", 14 | }; 15 | 16 | 17 | var txt_stage = { 18 | "Bt00_001": "ビッグイヤーよりブラボー。\r\n墜落地点は、河川に沿って北の方角と思われます。\r\n進路を維持してください。オーバー。", 19 | "Bt00_002": "炎が見えますね。\r\nベーコンの燻製が進んでそうだ。", 20 | "Bt00_003": "今食ってるレーションよりは、ガチガチのベーコンのほうが、まだマシだ。\r\n行くぞ。", 21 | 22 | "Bt01_001": "ブラボー1よりビッグイヤー。\r\nCPポイントに到着した。", 23 | "Bt01_002": "ビッグイヤー了解。\r\n周辺の警戒をお願いします。\r\n救難信号はありますか?", 24 | "Bt01_003": "…反応はない。", 25 | "Bt01_004": "…了解しました。", 26 | "Bt01_005": "付近の捜索はアルファに任せろ。\r\nブラボーは万が一に備え、周辺警戒を怠るな。", 27 | "Bt01_006": "ブラボー、ウィルコ。", 28 | 29 | "Bt02_001": "レーダーに所属不明機!\r\n方位350、反応多数!!", 30 | "Bt02_002": "やはり来たか。\r\nブラボー全機。不明機は敵機だ。\r\n攻撃を許可する。 敵を近づかせるな。", 31 | "Bt02_003": "ブラボー了解。お仕事だ。やるぞ。", 32 | "Bt02_004": "ツー、了解。ガチガチのベーコンを守りますか。", 33 | "Bt02_005": "", 34 | "Bt02_100": "", 35 | "Bt02_101": "合流地点はここじゃなかったのか!?", 36 | "Bt02_102": "罠だったんだ!!俺達はハメられたんだ!", 37 | "Bt02_103": "こっちは丸腰だぞ!どうなってるんだ!!", 38 | 39 | 40 | "Bt03_001": "敵部隊の増援を確認しました。\r\n北東の方角から、山に沿って高速で接近中!", 41 | "Bt03_002": "ビッグイヤーよりブラボー。\r\n積み荷を狙ってくる敵を優先的に叩け。 \r\n雑魚の豆鉄砲は気にするな!", 42 | "Bt03_003": "ビッグイヤー、こちらアルファ。\r\nWP3に到達。前方に火の手が見える。\r\nベーコンの燻製が捗ってそうだ。オーバー。", 43 | "Bt03_004": "ビッグイヤーよりアルファ。\r\nWP4はブラボーが交戦中だ。\r\n戦闘が終了するまで、その場で待機せよ。", 44 | "Bt03_005": "アルファ了解!\r\nアルファ、前方の花火が収まるまで、ここで待機だ!", 45 | "Bt03_006": "…考える事、一緒か。", 46 | 47 | "Bt04_001": "アルファ3、隊列を乱すな。\r\n花火は無理に見なくていい。", 48 | "Bt04_002": "", 49 | "Bt04_003": "アルファ3、隊列を乱すな。戻れ!", 50 | "Bt04_004": "", 51 | "Bt04_005": "", /*"スリー、戻れ!停止命令が出ている!\r\n巻き込まれたいのか!!"*///未収録&ボツセリフ 52 | "Bt04_006": "こちらビッグイヤー。\r\nアルファ1,どうした?", 53 | "Bt04_007": "こちらアルファ1!\r\nアルファ3が、停止命令を無視し北進している!", 54 | "Bt04_008": "了解した。残りのアルファはそこを動くな!", 55 | "Bt04_009": "ビッグイヤーよりブラボー。", 56 | "Bt04_010": "離脱したアルファ小隊の1機が、戦闘エリアに向かっている。\r\nアルファ3を所属不明機とする。\r\n可能であれば足を止めろ。", 57 | "Bt04_011": "足を止めろって……どうやって!?\r\n破壊しろってことですか!?", 58 | "Bt04_012": "アルファ2、他の方法があるなら言ってみろ。", 59 | "Bt04_013": "ブラボー1、ネガティブ。\r\n敵の増援が止まない。2機では手が回らない!\r\n最優先目標は!?", 60 | "Bt04_014": "ブラボー、最優先は積み荷の護衛、敵の全機破壊だ。\r\n変更はない、それが最優先だ。\r\nアルファ3の停止は、副次目標とする。無理にアルファを止めるな。", 61 | "Bt04_015": "ブラボー了解。\r\nブラボー2、ここを離れるな。前方の敵に集中しろ。", 62 | "Bt04_016": "2、了解!", 63 | 64 | "Bt05_001": "アルファ3、WP4に接近!", 65 | "Bt05_002": "ビッグイヤーよりブラボー、繰り返す。\r\n最優先は積み荷の護衛と、輸送機に接近する敵の排除だ。\r\nアルファ3の破壊は無理に行うな。", 66 | "Bt05_003": "味方識別システムの都合上、アルファ3は所属不明機となっている。\r\nロックオンは出来ない。\r\n直接射撃にて撃破せよ。オーバー。", 67 | "Bt05_004": "ブラボー了解。\r\n可能であれば対応する。オーバー。", 68 | "Bt05_005": "この状況で出来るんですか!?隊長!!", 69 | "Bt05_006": "2、さっきも言ったはずだ。\r\nお前はココを離れるな。行くなら俺が行く。", 70 | "Bt05_007": "つー、了解。", 71 | 72 | 73 | "Bt06A_001": "アルファ3、領域を離脱!\r\nヴィラートとの国境線に向かっています!!", 74 | "Bt06A_002": "ビッグイヤーよりブラボー。\r\nアルファ3の追撃は行うな。引き続き周辺の防衛に当たれ。", 75 | "Bt06A_003": "ブラボー了解した。引き続き任務にあたる。", 76 | "Bt06A_004": "アレ、無理っすよ。", 77 | 78 | "Bt06B_001": "アルファ3,撃破!", 79 | "Bt06B_002": "ブラボーよくやった!\r\n至急、輸送機の防衛に戻れ!", 80 | "Bt06B_003": "さすが隊長!\r\nま、この場を守っていた俺の活躍も、お忘れなく?", 81 | "Bt06B_004": "", 82 | 83 | "Bt07_001": "接近する機影なし。敵部隊、沈黙しました。", 84 | "Bt07_002": "ビッグイヤーよりブラボー。よくやった。\r\nアルファの作業が終わるまで、引き続き周辺警戒にあたれ。", 85 | "Bt07_003": "ビッグイヤーよりアルファ。\r\nWP4の戦闘は終了した。\r\n4に進行し、積み荷の回収作業にあたれ。", 86 | "Bt07_004": "アルファ了解した!\r\nアルファ、お座りは終わりだ!ベーコンが焦げるまでに片付けるぞ!!", 87 | "Bt07_005": "アルファ1からビッグイヤー、アルファ3はどうなった?", 88 | 89 | "Bt07A_006": "アルファ3は、領域を離脱した。\r\nヴィラートに寝返った可能性がある。\r\nこの件に関しては、アルファもブラボーも、責任は不問とする。", 90 | "Bt07A_007": "アルファ1,了解!\r\nローキー、あの野郎…", 91 | 92 | "Bt07B_006": "アルファ3はブラボーによって足を止めた。\r\n進路からすると、あのまま足を止めなかった場合は、\r\nヴィラートに寝返っていただろう。", 93 | "Bt07B_007": "アルファ1,了解…。そうか、ローキー…", 94 | "Bt07B_008": "アルファ1よりブラボー。\r\n礼を言う。君達が止めていなかったら、\r\n俺達がアイツを殺すハメになった。", 95 | "Bt07B_009": "積み荷からいい酒が見つかったら、君達に1本持って行こう。", 96 | "Bt07B_010": "ブラボーよりアルファ。遠慮しておく。\r\nその酒はアルファ3の清め酒にしてやれ。\r\n仲間だったんだろ。", 97 | "Bt07B_011": "…アルファ、了解。", 98 | "Bt07B_012": "隊長、かっこいいっす。\r\nでも、後味は良くないですね…\r\n俺、しばらくベーコンはいらねぇ。", 99 | 100 | 101 | "Bt99_001": "ここまでしか作っていません。ブラウザの「戻る」か「閉じる」で未来へGo!" 102 | }; 103 | 104 | //自動でメッセージが進む[ミリ秒数] * 2 を指定する 105 | var time_stage = 106 | { 107 | "Bt00_000": 2000, //フェードイン中 108 | "Bt00_001": 9000, 109 | "Bt00_002": 7500, 110 | "Bt00_003": 6000, 111 | 112 | "Bt01_001": 4000, 113 | "Bt01_002": 7000, 114 | "Bt01_003": 3000, 115 | "Bt01_004": 3000, 116 | "Bt01_005": 7000, 117 | "Bt01_006": 2000, 118 | 119 | "Bt02_001": 6000, 120 | "Bt02_002": 9000, 121 | "Bt02_003": 4000, 122 | "Bt02_004": 5000, 123 | "Bt02_005": 10, 124 | "Bt02_100": 10, 125 | "Bt02_101": 5000, 126 | "Bt02_102": 4500, 127 | "Bt02_103": 3500, 128 | 129 | 130 | "Bt03_001": 9000, 131 | "Bt03_002": 9000, 132 | "Bt03_003": 10000, 133 | "Bt03_004": 9000, 134 | "Bt03_005": 9000, 135 | "Bt03_006": 5500, 136 | 137 | "Bt04_001": 7000, 138 | "Bt04_002": 5000, //セリフの無い、間の部分 139 | "Bt04_003": 6000, 140 | "Bt04_004": 5000, //セリフの無い、間の部分 141 | "Bt04_005": 10, //ボツセリフ 142 | "Bt04_006": 5000, 143 | "Bt04_007": 6000, 144 | "Bt04_008": 5000, 145 | "Bt04_009": 2000, 146 | "Bt04_010": 10000, 147 | "Bt04_011": 7000, 148 | "Bt04_012": 6000, 149 | "Bt04_013": 8000, 150 | "Bt04_014": 11000, 151 | "Bt04_015": 6500, 152 | "Bt04_016": 2000, 153 | /*****ここまでやった*/ 154 | 155 | "Bt05_001": 4000, 156 | "Bt05_002": 9500, 157 | "Bt05_003": 9500, 158 | "Bt05_004": 4500, 159 | "Bt05_005": 4000, 160 | "Bt05_006": 7000, 161 | "Bt05_007": 2500, 162 | 163 | 164 | "Bt06A_001": 6000, 165 | "Bt06A_002": 7000, 166 | "Bt06A_003": 4000, 167 | "Bt06A_004": 2000, 168 | 169 | "Bt06B_001": 3000, 170 | "Bt06B_002": 4000, 171 | "Bt06B_003": 7000, 172 | "Bt06B_004": 100, //Aと配列数を同じにするためにダミー値 173 | 174 | "Bt07_001": 6000, 175 | "Bt07_002": 7000, 176 | "Bt07_003": 8000, 177 | "Bt07_004": 7000, 178 | "Bt07_005": 5000, 179 | 180 | "Bt07A_006": 10000, 181 | "Bt07A_007": 8000, 182 | 183 | "Bt07B_006": 9000, 184 | "Bt07B_007": 8000, 185 | "Bt07B_008": 9000, 186 | "Bt07B_009": 5000, 187 | "Bt07B_010": 10000, 188 | "Bt07B_011": 5000, 189 | "Bt07B_012": 11000, 190 | 191 | "Bt99_001": 200000 192 | }; 193 | 194 | 195 | /********************************************************************** */ 196 | 197 | 198 | var msg_stage_e = { 199 | "": "", 200 | "Bt00": "Move to WayPoint.", 201 | "Bt01": "Stay alert", 202 | "Bt02": "Establish area superiority", 203 | "Bt03": "Establish area superiority", 204 | "Bt04": "Establish area superiority", 205 | "Bt05": "Establish area superiority\r\nDestroy the Unknown Units", 206 | "Bt06": "Establish area superiority", 207 | "Bt07": "", 208 | "Bt07A": "", 209 | "Bt07B": "", 210 | }; 211 | 212 | 213 | 214 | var txt_stage_e = { 215 | "Bt00_001": "Big-Ear to Bravo.\r\nThe extraction point's north, Ahead\r\nMaintain your course, over.", 216 | "Bt00_002": "Flames can be seen even from here.\r\nThe aroma of smoking bacon was adrift here.", 217 | "Bt00_003": "Scorched bacon is better than ration now eating.\r\nLet's go.", 218 | 219 | "Bt01_001": "Bravo to Big-Ear. \r\nWe arriving to Point of patrol.", 220 | "Bt01_002": "Big-Ear, Roger.\r\nPlease guard the area. \r\nAre there any distress signal sensor?", 221 | "Bt01_003": "…Nothing.", 222 | "Bt01_004": "…Roger.", 223 | "Bt01_005": "Leave search to the Alpha.\r\nBravo be aware of your surroundings.", 224 | "Bt01_006": "Bravo, wilco.", 225 | 226 | "Bt02_001": "Numerous radar hits confirmed, Unknown Approaching! \r\nBearing 350, inbound!!", 227 | "Bt02_002": "I thought so.\r\nAll Bravo, Clear to engage. \r\nDon't let the enemy get close!", 228 | "Bt02_003": "Bravo,Copy.\r\nTow, we've got company.", 229 | "Bt02_004": "Tow,Copy! Let's save the scorched bacon.", 230 | "Bt02_005": "", 231 | "Bt02_100": "", 232 | "Bt02_101": "Was the assembly point is here!?", 233 | "Bt02_102": "It's a trap! We fell right into it!", 234 | "Bt02_103": "We're defenseless! What's going on?", 235 | 236 | 237 | "Bt03_001": "An enemy unit is mobilizing reinforcements. \r\nv Approaching enemy bearing 010, inbound!", 238 | "Bt03_002": "Big-Ear to Bravo. \r\nPlace top priority on eliminating the threat to cargo. \r\nForget the small fry.", 239 | "Bt03_003": "Big-Ear, This is Alpha. \r\nWe arriving to WP 3. I see the fireworks.\r\nThe aroma of smoking bacon was adrift here. over.", 240 | "Bt03_004": "Big-Ear to Alpha. \r\nThe Bravos engaging enemy in WP 4. \r\nStay where you are.", 241 | "Bt03_005": "Alpha,Copy. \r\nAll alpha, Stand by at current position!", 242 | "Bt03_006": "...I messed up...", 243 | 244 | "Bt04_001": "Alpha-3, maintain formation.\r\nYou may spare yourself the trouble.", 245 | "Bt04_002": "", 246 | "Bt04_003": "Alpha-3, Go Back! Maintain formation!!", 247 | "Bt04_004": "", 248 | "Bt04_005": "", /*"スリー、戻れ!停止命令が出ている!\r\n巻き込まれたいのか!!"*///未収録&ボツセリフ 249 | "Bt04_006": "This is Big-Ear.\r\nAlpha 1, what's wrong?", 250 | "Bt04_007": "This is Alpha 1!\r\nAlpha 3 was violating orders! Moving north!", 251 | "Bt04_008": "Roger. All Alpha, stand by. Don't move until you receive orders!", 252 | "Bt04_009": "Big-Ear to Bravo.", 253 | "Bt04_010": "Once of Alpha , move on route to retrieve the Your point.\r\nAlpha 3 change to Unknown units. \r\nGot to hold them off is you can.", 254 | "Bt04_011": "Hold them ... How!?\r\nCommander, you want to 'Destroy'!?", 255 | "Bt04_012": "We have no choice, Bravo 2.", 256 | "Bt04_013": "Bravo 1, Negative!\r\nThere's too many of them!\r\nWhat's the first!?", 257 | "Bt04_014": "Bravo, your mission is [ Establish area superiority ].\r\nNo change in plans.\r\nDon't get strung out chasing to Alpha 3, needlessly!", 258 | "Bt04_015": "Bravo, Rogher. \r\nBravo 2, hold your position. Keep your eyes out front.", 259 | "Bt04_016": "2,Roger!", 260 | 261 | "Bt05_001": "Alpha 3, Approaching WP 4!", 262 | "Bt05_002": "Big-Ear to Bravo, I Repeat. \r\nYour mission is Establish area superiority \r\nDon't get strung out chasing to Alpha 3, needlessly.", 263 | "Bt05_003": "Alpha 3 is Unknown signal on your Rader and HUD.\r\nDon't Lock on them.\r\nVisually confirm your targets.", 264 | "Bt05_004": "Bravo, Rogher.\r\nI will do so, if possible. over.", 265 | "Bt05_005": "Can it really be this status, captain!?", 266 | "Bt05_006": "Tow, I say again. Hold your position. \r\nI make a decision", 267 | "Bt05_007": "Tow, Roger.", 268 | 269 | 270 | "Bt06A_001": "Alpha 3 have escaped our engagement zone!\r\nThey're heading for the border!!", 271 | "Bt06A_002": "Big-Ear to Bravo. \r\nThere's no point in chasing them any further.Flow to area superiority.", 272 | "Bt06A_003": "Bravo copy. I'll continue the operation.", 273 | "Bt06A_004": "We are sure your hands are full, captain.", 274 | 275 | "Bt06B_001": "Alpha 3 Destroy!", 276 | "Bt06B_002": "Bravo Zulu!\r\nReturn your mission immediately!", 277 | "Bt06B_003": "That's our captain!\r\nAllow me to give them a little taste of my skills.", 278 | 279 | 280 | "Bt07_001": "There are no remaining on radar.Enemy units are neutralized", 281 | "Bt07_002": "Big-Ear to Bravo, Nice work.\r\nStay alert until Alpha's operation.", 282 | "Bt07_003": "Big-Ear to Alpha. \r\nArea Clear.\r\nBegin your mission, Alpha.", 283 | "Bt07_004": "Alpha copy!\r\nAll Alpha, stund up!Let's hurry up and finish this!!", 284 | "Bt07_005": "Alpha 1 to Big-Ear. What's the do by Alpha 3?", 285 | 286 | "Bt07A_006": "Alpha 3 have escaped our engagement zone.\r\nHe will be traitor very likely\r\n", 287 | "Bt07A_007": "Alpha 1, Roger.r\nDammit, dammit! That bastard!", 288 | 289 | "Bt07B_006": "Alpha 3 was stoped by Bravo.\r\nIf we take a vector, he will be traitor very likely", 290 | "Bt07B_007": "Alpha 1, Roger.\r\nI see...", 291 | "Bt07B_008": "Alpha 1 to Bravo.\r\nI want to thank you.\r\nWe no need to think about how to kill Alppha 3.", 292 | "Bt07B_009": "I intend to bring some wine, if I can find here.", 293 | "Bt07B_010": "Bravo to Alpha, No thank you.\r\nYou'll drink with him that.\r\nThis is the last time.", 294 | "Bt07B_011": "...Rogher", 295 | "Bt07B_012": "...You are cool, Captain.\r\nBut, It's left a disagreeable aftertaste.\r\nI don't need a bacon for a while.", 296 | 297 | 298 | "Bt99_001": "ここまでしか作っていません。ブラウザの「戻る」か「閉じる」で未来へGo!" 299 | }; 300 | -------------------------------------------------------------------------------- /content/bgm_mp3/Battle.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/bgm_mp3/Battle.mp3 -------------------------------------------------------------------------------- /content/bgm_mp3/Obstacle.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/bgm_mp3/Obstacle.mp3 -------------------------------------------------------------------------------- /content/bgm_mp3/Trap.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/bgm_mp3/Trap.mp3 -------------------------------------------------------------------------------- /content/do_ not_seconduse.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/do_ not_seconduse.txt -------------------------------------------------------------------------------- /content/efobj/AddBillTex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/AddBillTex.png -------------------------------------------------------------------------------- /content/efobj/AlpBillTex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/AlpBillTex.png -------------------------------------------------------------------------------- /content/efobj/BurretAll.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/BurretAll.jpg -------------------------------------------------------------------------------- /content/efobj/barnia1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/barnia1.png -------------------------------------------------------------------------------- /content/efobj/barnia2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/barnia2.png -------------------------------------------------------------------------------- /content/efobj/laserA.x: -------------------------------------------------------------------------------- 1 | xof 0303txt 0032 2 | 3 | template Header { 4 | <3D82AB43-62DA-11cf-AB39-0020AF71E433> 5 | WORD major; 6 | WORD minor; 7 | DWORD flags; 8 | } 9 | 10 | template Vector { 11 | <3D82AB5E-62DA-11cf-AB39-0020AF71E433> 12 | FLOAT x; 13 | FLOAT y; 14 | FLOAT z; 15 | } 16 | 17 | template Coords2d { 18 | 19 | FLOAT u; 20 | FLOAT v; 21 | } 22 | 23 | template Matrix4x4 { 24 | 25 | array FLOAT matrix[16]; 26 | } 27 | 28 | template ColorRGBA { 29 | <35FF44E0-6C7C-11cf-8F52-0040333594A3> 30 | FLOAT red; 31 | FLOAT green; 32 | FLOAT blue; 33 | FLOAT alpha; 34 | } 35 | 36 | template ColorRGB { 37 | 38 | FLOAT red; 39 | FLOAT green; 40 | FLOAT blue; 41 | } 42 | 43 | template IndexedColor { 44 | <1630B820-7842-11cf-8F52-0040333594A3> 45 | DWORD index; 46 | ColorRGBA indexColor; 47 | } 48 | 49 | template Boolean { 50 | <4885AE61-78E8-11cf-8F52-0040333594A3> 51 | WORD truefalse; 52 | } 53 | 54 | template Boolean2d { 55 | <4885AE63-78E8-11cf-8F52-0040333594A3> 56 | Boolean u; 57 | Boolean v; 58 | } 59 | 60 | template MaterialWrap { 61 | <4885AE60-78E8-11cf-8F52-0040333594A3> 62 | Boolean u; 63 | Boolean v; 64 | } 65 | 66 | template TextureFilename { 67 | 68 | STRING filename; 69 | } 70 | 71 | template Material { 72 | <3D82AB4D-62DA-11cf-AB39-0020AF71E433> 73 | ColorRGBA faceColor; 74 | FLOAT power; 75 | ColorRGB specularColor; 76 | ColorRGB emissiveColor; 77 | [...] 78 | } 79 | 80 | template MeshFace { 81 | <3D82AB5F-62DA-11cf-AB39-0020AF71E433> 82 | DWORD nFaceVertexIndices; 83 | array DWORD faceVertexIndices[nFaceVertexIndices]; 84 | } 85 | 86 | template MeshFaceWraps { 87 | <4885AE62-78E8-11cf-8F52-0040333594A3> 88 | DWORD nFaceWrapValues; 89 | Boolean2d faceWrapValues; 90 | } 91 | 92 | template MeshTextureCoords { 93 | 94 | DWORD nTextureCoords; 95 | array Coords2d textureCoords[nTextureCoords]; 96 | } 97 | 98 | template MeshMaterialList { 99 | 100 | DWORD nMaterials; 101 | DWORD nFaceIndexes; 102 | array DWORD faceIndexes[nFaceIndexes]; 103 | [Material] 104 | } 105 | 106 | template MeshNormals { 107 | 108 | DWORD nNormals; 109 | array Vector normals[nNormals]; 110 | DWORD nFaceNormals; 111 | array MeshFace faceNormals[nFaceNormals]; 112 | } 113 | 114 | template MeshVertexColors { 115 | <1630B821-7842-11cf-8F52-0040333594A3> 116 | DWORD nVertexColors; 117 | array IndexedColor vertexColors[nVertexColors]; 118 | } 119 | 120 | template Mesh { 121 | <3D82AB44-62DA-11cf-AB39-0020AF71E433> 122 | DWORD nVertices; 123 | array Vector vertices[nVertices]; 124 | DWORD nFaces; 125 | array MeshFace faces[nFaces]; 126 | [...] 127 | } 128 | 129 | template FrameTransformMatrix { 130 | 131 | Matrix4x4 frameMatrix; 132 | } 133 | 134 | template Frame { 135 | <3D82AB46-62DA-11cf-AB39-0020AF71E433> 136 | [...] 137 | } 138 | 139 | 140 | template XSkinMeshHeader { 141 | <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> 142 | WORD nMaxSkinWeightsPerVertex; 143 | WORD nMaxSkinWeightsPerFace; 144 | WORD nBones; 145 | } 146 | 147 | template VertexDuplicationIndices { 148 | 149 | DWORD nIndices; 150 | DWORD nOriginalVertices; 151 | array DWORD indices[nIndices]; 152 | } 153 | 154 | template SkinWeights { 155 | <6f0d123b-bad2-4167-a0d0-80224f25fabb> 156 | STRING transformNodeName; 157 | DWORD nWeights; 158 | array DWORD vertexIndices[nWeights]; 159 | array FLOAT weights[nWeights]; 160 | Matrix4x4 matrixOffset; 161 | } 162 | 163 | 164 | Material laserA_Default { 165 | 1.000000;1.000000;1.000000;1.000000;; 166 | 51.200001; 167 | 0.000000;0.000000;0.000000;; 168 | 0.000000;0.000000;0.000000;; 169 | TextureFilename { 170 | "BurretAll.jpg"; 171 | } 172 | } 173 | 174 | Frame Frame_SCENE_ROOT { 175 | 176 | FrameTransformMatrix { 177 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 178 | } 179 | 180 | Frame Frame1_laserA { 181 | 182 | FrameTransformMatrix { 183 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 184 | } 185 | 186 | Mesh Mesh_laserA { 187 | 102; 188 | 0.000000;0.000000;-1.695142;, 189 | 0.000000;0.000000;-1.695142;, 190 | 0.000000;0.000000;-1.695142;, 191 | 0.000000;0.000000;-1.695142;, 192 | 0.000000;0.000000;-1.695142;, 193 | 0.000000;0.000000;-1.695142;, 194 | 0.000000;-0.445356;-1.344988;, 195 | 0.000000;-0.445356;-1.344988;, 196 | 0.000000;-0.445356;-1.344988;, 197 | 0.000000;-0.445356;-1.344988;, 198 | -0.385690;-0.222678;-1.344988;, 199 | -0.385690;-0.222678;-1.344988;, 200 | -0.385690;-0.222678;-1.344988;, 201 | -0.385690;-0.222678;-1.344988;, 202 | 0.000000;-0.677235;-0.792162;, 203 | 0.000000;-0.677235;-0.792162;, 204 | -0.586502;-0.338618;-0.792162;, 205 | -0.586502;-0.338618;-0.792162;, 206 | 0.385690;-0.222678;-1.344988;, 207 | 0.385690;-0.222678;-1.344988;, 208 | 0.385690;-0.222678;-1.344988;, 209 | 0.385690;-0.222678;-1.344988;, 210 | 0.586502;-0.338618;-0.792162;, 211 | 0.586502;-0.338618;-0.792162;, 212 | 0.000000;0.445356;-1.344988;, 213 | 0.000000;0.445356;-1.344988;, 214 | 0.000000;0.445356;-1.344988;, 215 | 0.000000;0.445356;-1.344988;, 216 | -0.385690;0.222678;-1.344988;, 217 | -0.385690;0.222678;-1.344988;, 218 | -0.385690;0.222678;-1.344988;, 219 | -0.385690;0.222678;-1.344988;, 220 | 0.000000;0.677235;-0.792162;, 221 | 0.000000;0.677235;-0.792162;, 222 | -0.586502;0.338618;-0.792162;, 223 | -0.586502;0.338618;-0.792162;, 224 | 0.385690;0.222678;-1.344988;, 225 | 0.385690;0.222678;-1.344988;, 226 | 0.385690;0.222678;-1.344988;, 227 | 0.385690;0.222678;-1.344988;, 228 | 0.586502;0.338618;-0.792162;, 229 | 0.586502;0.338618;-0.792162;, 230 | -0.000000;-0.377500;5.854858;, 231 | 0.000000;0.377500;5.854858;, 232 | 0.377500;-0.000000;5.854858;, 233 | -0.377500;0.000000;5.854858;, 234 | 0.000000;0.377500;-0.940142;, 235 | -0.000000;-0.377500;-0.940142;, 236 | -0.000000;-0.000000;-1.695142;, 237 | -0.000000;-0.000000;-1.695142;, 238 | -0.377500;0.000000;-0.940142;, 239 | 0.377500;-0.000000;-0.940142;, 240 | 0.000000;0.377500;0.569858;, 241 | -0.000000;-0.377500;0.569858;, 242 | -0.377500;0.000000;0.569858;, 243 | 0.377500;-0.000000;0.569858;, 244 | 0.000000;0.377500;2.834858;, 245 | -0.000000;-0.377500;2.834858;, 246 | -0.377500;0.000000;2.834858;, 247 | 0.377500;-0.000000;2.834858;, 248 | 0.000000;0.000000;-1.695142;, 249 | 0.000000;0.000000;-1.695142;, 250 | 0.000000;0.000000;-1.695142;, 251 | 0.000000;0.000000;-1.695142;, 252 | 0.000000;0.000000;-1.695142;, 253 | 0.000000;0.000000;-1.695142;, 254 | 0.472420;-0.247767;-1.062909;, 255 | 0.472420;-0.247767;-1.062909;, 256 | 0.472420;-0.247767;-1.062909;, 257 | 0.472420;-0.247767;-1.062909;, 258 | 0.000000;-0.495534;-1.062909;, 259 | 0.000000;-0.495534;-1.062909;, 260 | 0.000000;-0.495534;-1.062909;, 261 | 0.000000;-0.495534;-1.062909;, 262 | -0.472420;-0.247767;-1.062909;, 263 | -0.472420;-0.247767;-1.062909;, 264 | -0.472420;-0.247767;-1.062909;, 265 | -0.472420;-0.247767;-1.062909;, 266 | 0.000000;0.495534;-1.062909;, 267 | 0.000000;0.495534;-1.062909;, 268 | 0.000000;0.495534;-1.062909;, 269 | 0.000000;0.495534;-1.062909;, 270 | 0.472420;0.247767;-1.062909;, 271 | 0.472420;0.247767;-1.062909;, 272 | 0.472420;0.247767;-1.062909;, 273 | 0.472420;0.247767;-1.062909;, 274 | -0.472420;0.247767;-1.062909;, 275 | -0.472420;0.247767;-1.062909;, 276 | -0.472420;0.247767;-1.062909;, 277 | -0.472420;0.247767;-1.062909;, 278 | 0.835128;-0.437994;0.574389;, 279 | 0.835128;-0.437994;0.574389;, 280 | 0.000000;-0.875989;0.574389;, 281 | 0.000000;-0.875989;0.574389;, 282 | -0.835128;-0.437994;0.574389;, 283 | -0.835128;-0.437994;0.574389;, 284 | 0.000000;0.875989;0.574389;, 285 | 0.000000;0.875989;0.574389;, 286 | 0.835128;0.437994;0.574389;, 287 | 0.835128;0.437994;0.574389;, 288 | -0.835128;0.437994;0.574389;, 289 | -0.835128;0.437994;0.574389;; 290 | 50; 291 | 3;60,86,78;, 292 | 3;18,0,36;, 293 | 3;6,1,19;, 294 | 3;7,10,2;, 295 | 3;11,28,3;, 296 | 3;4,29,24;, 297 | 3;37,32,40;, 298 | 3;22,38,41;, 299 | 3;14,20,23;, 300 | 3;15,12,8;, 301 | 3;16,30,13;, 302 | 3;31,33,25;, 303 | 3;46,47,48;, 304 | 3;46,53,47;, 305 | 3;52,57,53;, 306 | 3;42,56,43;, 307 | 3;50,51,49;, 308 | 3;50,55,51;, 309 | 3;54,59,55;, 310 | 3;44,58,45;, 311 | 3;61,79,82;, 312 | 3;66,62,83;, 313 | 3;70,63,67;, 314 | 3;71,74,64;, 315 | 3;75,87,65;, 316 | 3;5,26,39;, 317 | 3;84,96,98;, 318 | 3;90,85,99;, 319 | 3;92,68,91;, 320 | 3;93,76,72;, 321 | 3;94,88,77;, 322 | 3;89,97,80;, 323 | 3;37,27,32;, 324 | 3;22,21,38;, 325 | 3;14,9,20;, 326 | 3;15,17,12;, 327 | 3;16,34,30;, 328 | 3;31,35,33;, 329 | 3;46,52,53;, 330 | 3;52,56,57;, 331 | 3;42,57,56;, 332 | 3;50,54,55;, 333 | 3;54,58,59;, 334 | 3;44,59,58;, 335 | 3;84,81,96;, 336 | 3;90,69,85;, 337 | 3;92,73,68;, 338 | 3;93,95,76;, 339 | 3;94,100,88;, 340 | 3;89,101,97;; 341 | 342 | MeshNormals { 343 | 102; 344 | 0.672175;0.000000;-0.740393;, 345 | 0.336087;-0.582121;-0.740392;, 346 | -0.336087;-0.582121;-0.740392;, 347 | -0.672175;0.000000;-0.740393;, 348 | -0.336087;0.582121;-0.740392;, 349 | 0.336087;0.582121;-0.740392;, 350 | 0.336087;-0.582121;-0.740392;, 351 | -0.336087;-0.582121;-0.740392;, 352 | -0.469956;-0.813986;-0.341420;, 353 | 0.469956;-0.813986;-0.341420;, 354 | -0.336087;-0.582121;-0.740392;, 355 | -0.672175;0.000000;-0.740393;, 356 | -0.469956;-0.813986;-0.341420;, 357 | -0.939911;0.000000;-0.341419;, 358 | 0.469956;-0.813986;-0.341420;, 359 | -0.469956;-0.813986;-0.341420;, 360 | -0.939911;0.000000;-0.341419;, 361 | -0.469956;-0.813986;-0.341420;, 362 | 0.672175;0.000000;-0.740393;, 363 | 0.336087;-0.582121;-0.740392;, 364 | 0.469956;-0.813986;-0.341420;, 365 | 0.939911;0.000000;-0.341419;, 366 | 0.939911;0.000000;-0.341419;, 367 | 0.469956;-0.813986;-0.341420;, 368 | -0.336087;0.582121;-0.740392;, 369 | -0.469955;0.813987;-0.341420;, 370 | 0.336087;0.582121;-0.740392;, 371 | 0.469955;0.813987;-0.341420;, 372 | -0.672175;0.000000;-0.740393;, 373 | -0.336087;0.582121;-0.740392;, 374 | -0.939911;0.000000;-0.341419;, 375 | -0.469955;0.813987;-0.341420;, 376 | 0.469955;0.813987;-0.341420;, 377 | -0.469955;0.813987;-0.341420;, 378 | -0.939911;0.000000;-0.341419;, 379 | -0.469955;0.813987;-0.341420;, 380 | 0.672175;0.000000;-0.740393;, 381 | 0.469955;0.813987;-0.341420;, 382 | 0.939911;0.000000;-0.341419;, 383 | 0.336087;0.582121;-0.740392;, 384 | 0.469955;0.813987;-0.341420;, 385 | 0.939911;0.000000;-0.341419;, 386 | 1.000000;-0.000000;0.000000;, 387 | 1.000000;-0.000000;0.000000;, 388 | 0.000000;1.000000;0.000000;, 389 | 0.000000;1.000000;0.000000;, 390 | 1.000000;-0.000000;0.000000;, 391 | 1.000000;-0.000000;0.000000;, 392 | 1.000000;-0.000000;0.000000;, 393 | 0.000000;1.000000;-0.000000;, 394 | 0.000000;1.000000;-0.000000;, 395 | 0.000000;1.000000;-0.000000;, 396 | 1.000000;-0.000000;0.000000;, 397 | 1.000000;-0.000000;0.000000;, 398 | 0.000000;1.000000;0.000000;, 399 | 0.000000;1.000000;0.000000;, 400 | 1.000000;-0.000000;0.000000;, 401 | 1.000000;-0.000000;0.000000;, 402 | 0.000000;1.000000;0.000000;, 403 | 0.000000;1.000000;0.000000;, 404 | -0.381553;0.727513;-0.570213;, 405 | 0.381553;0.727513;-0.570213;, 406 | 0.801066;0.000000;-0.598577;, 407 | 0.381553;-0.727513;-0.570213;, 408 | -0.381553;-0.727513;-0.570213;, 409 | -0.801066;0.000000;-0.598577;, 410 | 0.801066;0.000000;-0.598577;, 411 | 0.381553;-0.727513;-0.570213;, 412 | 0.454930;-0.867417;-0.201560;, 413 | 0.976330;0.000000;-0.216285;, 414 | 0.381553;-0.727513;-0.570213;, 415 | -0.381553;-0.727513;-0.570213;, 416 | -0.454930;-0.867417;-0.201560;, 417 | 0.454930;-0.867417;-0.201560;, 418 | -0.381553;-0.727513;-0.570213;, 419 | -0.801066;0.000000;-0.598577;, 420 | -0.454930;-0.867417;-0.201560;, 421 | -0.976330;0.000000;-0.216285;, 422 | -0.381553;0.727513;-0.570213;, 423 | 0.381553;0.727513;-0.570213;, 424 | -0.454929;0.867418;-0.201559;, 425 | 0.454929;0.867418;-0.201559;, 426 | 0.381553;0.727513;-0.570213;, 427 | 0.801066;0.000000;-0.598577;, 428 | 0.454929;0.867418;-0.201559;, 429 | 0.976330;0.000000;-0.216285;, 430 | -0.381553;0.727513;-0.570213;, 431 | -0.801066;0.000000;-0.598577;, 432 | -0.976330;0.000000;-0.216285;, 433 | -0.454929;0.867418;-0.201559;, 434 | 0.976330;0.000000;-0.216285;, 435 | 0.454930;-0.867417;-0.201560;, 436 | 0.454930;-0.867417;-0.201560;, 437 | -0.454930;-0.867417;-0.201560;, 438 | -0.976330;0.000000;-0.216285;, 439 | -0.454930;-0.867417;-0.201560;, 440 | 0.454929;0.867418;-0.201559;, 441 | -0.454929;0.867418;-0.201559;, 442 | 0.454929;0.867418;-0.201559;, 443 | 0.976330;0.000000;-0.216285;, 444 | -0.976330;0.000000;-0.216285;, 445 | -0.454929;0.867418;-0.201559;; 446 | 50; 447 | 3;60,86,78;, 448 | 3;18,0,36;, 449 | 3;6,1,19;, 450 | 3;7,10,2;, 451 | 3;11,28,3;, 452 | 3;4,29,24;, 453 | 3;37,32,40;, 454 | 3;22,38,41;, 455 | 3;14,20,23;, 456 | 3;15,12,8;, 457 | 3;16,30,13;, 458 | 3;31,33,25;, 459 | 3;46,47,48;, 460 | 3;46,53,47;, 461 | 3;52,57,53;, 462 | 3;42,56,43;, 463 | 3;50,51,49;, 464 | 3;50,55,51;, 465 | 3;54,59,55;, 466 | 3;44,58,45;, 467 | 3;61,79,82;, 468 | 3;66,62,83;, 469 | 3;70,63,67;, 470 | 3;71,74,64;, 471 | 3;75,87,65;, 472 | 3;5,26,39;, 473 | 3;84,96,98;, 474 | 3;90,85,99;, 475 | 3;92,68,91;, 476 | 3;93,76,72;, 477 | 3;94,88,77;, 478 | 3;89,97,80;, 479 | 3;37,27,32;, 480 | 3;22,21,38;, 481 | 3;14,9,20;, 482 | 3;15,17,12;, 483 | 3;16,34,30;, 484 | 3;31,35,33;, 485 | 3;46,52,53;, 486 | 3;52,56,57;, 487 | 3;42,57,56;, 488 | 3;50,54,55;, 489 | 3;54,58,59;, 490 | 3;44,59,58;, 491 | 3;84,81,96;, 492 | 3;90,69,85;, 493 | 3;92,73,68;, 494 | 3;93,95,76;, 495 | 3;94,100,88;, 496 | 3;89,101,97;; 497 | } 498 | 499 | MeshTextureCoords { 500 | 102; 501 | 0.299000;0.748800;, 502 | 0.299000;0.748800;, 503 | 0.299000;0.748800;, 504 | 0.299000;0.748800;, 505 | 0.299000;0.748800;, 506 | 0.299000;0.748800;, 507 | 0.299000;0.830091;, 508 | 0.299000;0.830091;, 509 | 0.299000;0.830091;, 510 | 0.299000;0.830091;, 511 | 0.273408;0.788610;, 512 | 0.273408;0.788610;, 513 | 0.273408;0.788610;, 514 | 0.273408;0.788610;, 515 | 0.299000;0.974084;, 516 | 0.299000;0.974084;, 517 | 0.231200;0.861442;, 518 | 0.231200;0.861442;, 519 | 0.324592;0.788610;, 520 | 0.324592;0.788610;, 521 | 0.324592;0.788610;, 522 | 0.324592;0.788610;, 523 | 0.371800;0.861442;, 524 | 0.371800;0.861442;, 525 | 0.299000;0.664165;, 526 | 0.299000;0.664165;, 527 | 0.299000;0.664165;, 528 | 0.299000;0.664165;, 529 | 0.273408;0.705646;, 530 | 0.273408;0.705646;, 531 | 0.273408;0.705646;, 532 | 0.273408;0.705646;, 533 | 0.299000;0.523516;, 534 | 0.299000;0.523516;, 535 | 0.231200;0.636158;, 536 | 0.231200;0.636158;, 537 | 0.324592;0.705646;, 538 | 0.324592;0.705646;, 539 | 0.324592;0.705646;, 540 | 0.324592;0.705646;, 541 | 0.371800;0.636158;, 542 | 0.371800;0.636158;, 543 | 0.196013;0.005000;, 544 | 0.193987;0.495000;, 545 | 0.196013;0.005000;, 546 | 0.193987;0.495000;, 547 | 0.003987;0.495000;, 548 | 0.006013;0.005000;, 549 | 0.008000;0.240000;, 550 | 0.008000;0.240000;, 551 | 0.003987;0.495000;, 552 | 0.006013;0.005000;, 553 | 0.048987;0.495000;, 554 | 0.046013;0.005000;, 555 | 0.048987;0.495000;, 556 | 0.046013;0.005000;, 557 | 0.123987;0.495000;, 558 | 0.126013;0.005000;, 559 | 0.123987;0.495000;, 560 | 0.126013;0.005000;, 561 | 0.300000;0.254750;, 562 | 0.300000;0.254750;, 563 | 0.300000;0.254750;, 564 | 0.300000;0.254750;, 565 | 0.300000;0.254750;, 566 | 0.300000;0.254750;, 567 | 0.318532;0.287401;, 568 | 0.318532;0.287401;, 569 | 0.318532;0.287401;, 570 | 0.318532;0.287401;, 571 | 0.300000;0.322332;, 572 | 0.300000;0.322332;, 573 | 0.300000;0.322332;, 574 | 0.300000;0.322332;, 575 | 0.281468;0.287401;, 576 | 0.281468;0.287401;, 577 | 0.281468;0.287401;, 578 | 0.281468;0.287401;, 579 | 0.300000;0.182608;, 580 | 0.300000;0.182608;, 581 | 0.300000;0.182608;, 582 | 0.300000;0.182608;, 583 | 0.318532;0.217539;, 584 | 0.318532;0.217539;, 585 | 0.318532;0.217539;, 586 | 0.318532;0.217539;, 587 | 0.281468;0.217539;, 588 | 0.281468;0.217539;, 589 | 0.281468;0.217539;, 590 | 0.281468;0.217539;, 591 | 0.369000;0.373500;, 592 | 0.369000;0.373500;, 593 | 0.300000;0.492250;, 594 | 0.300000;0.492250;, 595 | 0.226000;0.373500;, 596 | 0.226000;0.373500;, 597 | 0.300000;0.017250;, 598 | 0.300000;0.017250;, 599 | 0.369000;0.136000;, 600 | 0.369000;0.136000;, 601 | 0.226000;0.136000;, 602 | 0.226000;0.136000;; 603 | } 604 | 605 | VertexDuplicationIndices { 606 | 102; 607 | 101; 608 | 0, 609 | 0, 610 | 0, 611 | 0, 612 | 0, 613 | 0, 614 | 6, 615 | 6, 616 | 6, 617 | 6, 618 | 10, 619 | 10, 620 | 10, 621 | 10, 622 | 14, 623 | 14, 624 | 16, 625 | 16, 626 | 18, 627 | 18, 628 | 18, 629 | 18, 630 | 22, 631 | 22, 632 | 24, 633 | 24, 634 | 24, 635 | 24, 636 | 28, 637 | 28, 638 | 28, 639 | 28, 640 | 32, 641 | 32, 642 | 34, 643 | 34, 644 | 36, 645 | 36, 646 | 36, 647 | 36, 648 | 40, 649 | 40, 650 | 42, 651 | 43, 652 | 44, 653 | 45, 654 | 46, 655 | 47, 656 | 48, 657 | 48, 658 | 50, 659 | 51, 660 | 52, 661 | 53, 662 | 54, 663 | 55, 664 | 56, 665 | 57, 666 | 58, 667 | 59, 668 | 60, 669 | 60, 670 | 60, 671 | 60, 672 | 60, 673 | 60, 674 | 66, 675 | 66, 676 | 66, 677 | 66, 678 | 70, 679 | 70, 680 | 70, 681 | 70, 682 | 74, 683 | 74, 684 | 74, 685 | 74, 686 | 78, 687 | 78, 688 | 78, 689 | 78, 690 | 82, 691 | 82, 692 | 82, 693 | 82, 694 | 86, 695 | 86, 696 | 86, 697 | 86, 698 | 90, 699 | 90, 700 | 92, 701 | 92, 702 | 94, 703 | 94, 704 | 96, 705 | 96, 706 | 98, 707 | 98, 708 | 100, 709 | 100; 710 | } 711 | 712 | MeshMaterialList { 713 | 1; 714 | 50; 715 | 0, 716 | 0, 717 | 0, 718 | 0, 719 | 0, 720 | 0, 721 | 0, 722 | 0, 723 | 0, 724 | 0, 725 | 0, 726 | 0, 727 | 0, 728 | 0, 729 | 0, 730 | 0, 731 | 0, 732 | 0, 733 | 0, 734 | 0, 735 | 0, 736 | 0, 737 | 0, 738 | 0, 739 | 0, 740 | 0, 741 | 0, 742 | 0, 743 | 0, 744 | 0, 745 | 0, 746 | 0, 747 | 0, 748 | 0, 749 | 0, 750 | 0, 751 | 0, 752 | 0, 753 | 0, 754 | 0, 755 | 0, 756 | 0, 757 | 0, 758 | 0, 759 | 0, 760 | 0, 761 | 0, 762 | 0, 763 | 0, 764 | 0; 765 | { laserA_Default } 766 | } 767 | } 768 | } 769 | } 770 | -------------------------------------------------------------------------------- /content/efobj/rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/rainbow.png -------------------------------------------------------------------------------- /content/efobj/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/efobj/splash.png -------------------------------------------------------------------------------- /content/efobj/tamaC_2.x: -------------------------------------------------------------------------------- 1 | xof 0303txt 0032 2 | 3 | template Header { 4 | <3D82AB43-62DA-11cf-AB39-0020AF71E433> 5 | WORD major; 6 | WORD minor; 7 | DWORD flags; 8 | } 9 | 10 | template Vector { 11 | <3D82AB5E-62DA-11cf-AB39-0020AF71E433> 12 | FLOAT x; 13 | FLOAT y; 14 | FLOAT z; 15 | } 16 | 17 | template Coords2d { 18 | 19 | FLOAT u; 20 | FLOAT v; 21 | } 22 | 23 | template Matrix4x4 { 24 | 25 | array FLOAT matrix[16]; 26 | } 27 | 28 | template ColorRGBA { 29 | <35FF44E0-6C7C-11cf-8F52-0040333594A3> 30 | FLOAT red; 31 | FLOAT green; 32 | FLOAT blue; 33 | FLOAT alpha; 34 | } 35 | 36 | template ColorRGB { 37 | 38 | FLOAT red; 39 | FLOAT green; 40 | FLOAT blue; 41 | } 42 | 43 | template IndexedColor { 44 | <1630B820-7842-11cf-8F52-0040333594A3> 45 | DWORD index; 46 | ColorRGBA indexColor; 47 | } 48 | 49 | template Boolean { 50 | <4885AE61-78E8-11cf-8F52-0040333594A3> 51 | WORD truefalse; 52 | } 53 | 54 | template Boolean2d { 55 | <4885AE63-78E8-11cf-8F52-0040333594A3> 56 | Boolean u; 57 | Boolean v; 58 | } 59 | 60 | template MaterialWrap { 61 | <4885AE60-78E8-11cf-8F52-0040333594A3> 62 | Boolean u; 63 | Boolean v; 64 | } 65 | 66 | template TextureFilename { 67 | 68 | STRING filename; 69 | } 70 | 71 | template Material { 72 | <3D82AB4D-62DA-11cf-AB39-0020AF71E433> 73 | ColorRGBA faceColor; 74 | FLOAT power; 75 | ColorRGB specularColor; 76 | ColorRGB emissiveColor; 77 | [...] 78 | } 79 | 80 | template MeshFace { 81 | <3D82AB5F-62DA-11cf-AB39-0020AF71E433> 82 | DWORD nFaceVertexIndices; 83 | array DWORD faceVertexIndices[nFaceVertexIndices]; 84 | } 85 | 86 | template MeshFaceWraps { 87 | <4885AE62-78E8-11cf-8F52-0040333594A3> 88 | DWORD nFaceWrapValues; 89 | Boolean2d faceWrapValues; 90 | } 91 | 92 | template MeshTextureCoords { 93 | 94 | DWORD nTextureCoords; 95 | array Coords2d textureCoords[nTextureCoords]; 96 | } 97 | 98 | template MeshMaterialList { 99 | 100 | DWORD nMaterials; 101 | DWORD nFaceIndexes; 102 | array DWORD faceIndexes[nFaceIndexes]; 103 | [Material] 104 | } 105 | 106 | template MeshNormals { 107 | 108 | DWORD nNormals; 109 | array Vector normals[nNormals]; 110 | DWORD nFaceNormals; 111 | array MeshFace faceNormals[nFaceNormals]; 112 | } 113 | 114 | template MeshVertexColors { 115 | <1630B821-7842-11cf-8F52-0040333594A3> 116 | DWORD nVertexColors; 117 | array IndexedColor vertexColors[nVertexColors]; 118 | } 119 | 120 | template Mesh { 121 | <3D82AB44-62DA-11cf-AB39-0020AF71E433> 122 | DWORD nVertices; 123 | array Vector vertices[nVertices]; 124 | DWORD nFaces; 125 | array MeshFace faces[nFaces]; 126 | [...] 127 | } 128 | 129 | template FrameTransformMatrix { 130 | 131 | Matrix4x4 frameMatrix; 132 | } 133 | 134 | template Frame { 135 | <3D82AB46-62DA-11cf-AB39-0020AF71E433> 136 | [...] 137 | } 138 | 139 | 140 | template XSkinMeshHeader { 141 | <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> 142 | WORD nMaxSkinWeightsPerVertex; 143 | WORD nMaxSkinWeightsPerFace; 144 | WORD nBones; 145 | } 146 | 147 | template VertexDuplicationIndices { 148 | 149 | DWORD nIndices; 150 | DWORD nOriginalVertices; 151 | array DWORD indices[nIndices]; 152 | } 153 | 154 | template SkinWeights { 155 | <6f0d123b-bad2-4167-a0d0-80224f25fabb> 156 | STRING transformNodeName; 157 | DWORD nWeights; 158 | array DWORD vertexIndices[nWeights]; 159 | array FLOAT weights[nWeights]; 160 | Matrix4x4 matrixOffset; 161 | } 162 | 163 | 164 | Material tamaC_2_Default { 165 | 1.000000;1.000000;1.000000;1.000000;; 166 | 51.200001; 167 | 0.000000;0.000000;0.000000;; 168 | 0.000000;0.000000;0.000000;; 169 | TextureFilename { 170 | "BurretAll.jpg"; 171 | } 172 | } 173 | 174 | Frame Frame_SCENE_ROOT { 175 | 176 | FrameTransformMatrix { 177 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 178 | } 179 | 180 | Frame Frame1_tamaC_2 { 181 | 182 | FrameTransformMatrix { 183 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 184 | } 185 | 186 | Mesh Mesh_tamaC_2 { 187 | 27; 188 | -0.250000;-0.000000;0.340000;, 189 | 0.250000;-0.000000;0.340000;, 190 | 0.250000;0.000000;-0.140000;, 191 | -0.250000;0.000000;-0.140000;, 192 | -0.000000;-0.000000;0.340000;, 193 | 0.000000;0.000000;-0.140000;, 194 | 0.250000;-0.000000;0.000000;, 195 | 0.000000;0.000000;0.000000;, 196 | -0.250000;0.000000;0.000000;, 197 | -0.250000;-0.250000;0.000000;, 198 | -0.250000;0.250000;0.000000;, 199 | 0.250000;0.250000;0.000000;, 200 | 0.250000;-0.250000;0.000000;, 201 | -0.250000;0.000000;0.000000;, 202 | 0.250000;0.000000;0.000000;, 203 | 0.000000;0.250000;0.000000;, 204 | 0.000000;0.000000;0.000000;, 205 | 0.000000;-0.250000;0.000000;, 206 | 0.000000;-0.250000;0.340000;, 207 | 0.000000;0.250000;0.340000;, 208 | -0.000000;0.250000;-0.140000;, 209 | -0.000000;-0.250000;-0.140000;, 210 | 0.000000;0.000000;0.340000;, 211 | -0.000000;0.000000;-0.140000;, 212 | 0.000000;0.250000;0.000000;, 213 | 0.000000;0.000000;0.000000;, 214 | 0.000000;-0.250000;0.000000;; 215 | 24; 216 | 3;4,7,6;, 217 | 3;2,7,5;, 218 | 3;4,8,7;, 219 | 3;5,8,3;, 220 | 3;13,15,10;, 221 | 3;11,16,14;, 222 | 3;13,17,16;, 223 | 3;14,17,12;, 224 | 3;22,24,19;, 225 | 3;20,25,23;, 226 | 3;22,26,25;, 227 | 3;23,26,21;, 228 | 3;4,6,1;, 229 | 3;2,6,7;, 230 | 3;4,0,8;, 231 | 3;5,7,8;, 232 | 3;13,16,15;, 233 | 3;11,15,16;, 234 | 3;13,9,17;, 235 | 3;14,16,17;, 236 | 3;22,25,24;, 237 | 3;20,24,25;, 238 | 3;22,18,26;, 239 | 3;23,25,26;; 240 | 241 | MeshNormals { 242 | 27; 243 | -0.000000;-1.000000;-0.000000;, 244 | -0.000000;-1.000000;-0.000000;, 245 | -0.000000;-1.000000;-0.000000;, 246 | -0.000000;-1.000000;-0.000000;, 247 | -0.000000;-1.000000;-0.000000;, 248 | -0.000000;-1.000000;-0.000000;, 249 | -0.000000;-1.000000;-0.000000;, 250 | -0.000000;-1.000000;-0.000000;, 251 | -0.000000;-1.000000;-0.000000;, 252 | 0.000000;0.000000;1.000000;, 253 | 0.000000;0.000000;1.000000;, 254 | 0.000000;0.000000;1.000000;, 255 | 0.000000;0.000000;1.000000;, 256 | 0.000000;0.000000;1.000000;, 257 | 0.000000;0.000000;1.000000;, 258 | 0.000000;0.000000;1.000000;, 259 | 0.000000;0.000000;1.000000;, 260 | 0.000000;0.000000;1.000000;, 261 | 1.000000;0.000000;-0.000000;, 262 | 1.000000;0.000000;-0.000000;, 263 | 1.000000;0.000000;-0.000000;, 264 | 1.000000;0.000000;-0.000000;, 265 | 1.000000;0.000000;-0.000000;, 266 | 1.000000;0.000000;-0.000000;, 267 | 1.000000;0.000000;-0.000000;, 268 | 1.000000;0.000000;-0.000000;, 269 | 1.000000;0.000000;-0.000000;; 270 | 24; 271 | 3;4,7,6;, 272 | 3;2,7,5;, 273 | 3;4,8,7;, 274 | 3;5,8,3;, 275 | 3;13,15,10;, 276 | 3;11,16,14;, 277 | 3;13,17,16;, 278 | 3;14,17,12;, 279 | 3;22,24,19;, 280 | 3;20,25,23;, 281 | 3;22,26,25;, 282 | 3;23,26,21;, 283 | 3;4,6,1;, 284 | 3;2,6,7;, 285 | 3;4,0,8;, 286 | 3;5,7,8;, 287 | 3;13,16,15;, 288 | 3;11,15,16;, 289 | 3;13,9,17;, 290 | 3;14,16,17;, 291 | 3;22,25,24;, 292 | 3;20,24,25;, 293 | 3;22,18,26;, 294 | 3;23,25,26;; 295 | } 296 | 297 | MeshTextureCoords { 298 | 27; 299 | 0.201935;0.991935;, 300 | 0.201935;0.508065;, 301 | -0.001935;0.508065;, 302 | -0.001935;0.991935;, 303 | 0.201935;0.750000;, 304 | -0.001935;0.750000;, 305 | 0.099194;0.508065;, 306 | 0.099194;0.750000;, 307 | 0.099194;0.991935;, 308 | 0.001532;0.991935;, 309 | 0.001532;0.508065;, 310 | 0.193468;0.508065;, 311 | 0.193468;0.991935;, 312 | 0.001532;0.750000;, 313 | 0.193468;0.750000;, 314 | 0.099500;0.508065;, 315 | 0.099500;0.750000;, 316 | 0.099500;0.991935;, 317 | 0.201935;0.991935;, 318 | 0.201935;0.508065;, 319 | -0.001935;0.508065;, 320 | -0.001935;0.991935;, 321 | 0.201935;0.750000;, 322 | -0.001935;0.750000;, 323 | 0.099194;0.508065;, 324 | 0.099194;0.750000;, 325 | 0.099194;0.991935;; 326 | } 327 | 328 | MeshMaterialList { 329 | 1; 330 | 24; 331 | 0, 332 | 0, 333 | 0, 334 | 0, 335 | 0, 336 | 0, 337 | 0, 338 | 0, 339 | 0, 340 | 0, 341 | 0, 342 | 0, 343 | 0, 344 | 0, 345 | 0, 346 | 0, 347 | 0, 348 | 0, 349 | 0, 350 | 0, 351 | 0, 352 | 0, 353 | 0, 354 | 0; 355 | { tamaC_2_Default } 356 | } 357 | } 358 | } 359 | } 360 | -------------------------------------------------------------------------------- /content/enemys/Carrier_B_boro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/enemys/Carrier_B_boro.png -------------------------------------------------------------------------------- /content/enemys/ene_grp1_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/enemys/ene_grp1_uv.png -------------------------------------------------------------------------------- /content/ground/SkyD.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/ground/SkyD.jpg -------------------------------------------------------------------------------- /content/ground/riverwar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/ground/riverwar.png -------------------------------------------------------------------------------- /content/ground/stage4_bp0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/ground/stage4_bp0.png -------------------------------------------------------------------------------- /content/htmlimage/barniause.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/htmlimage/barniause.gif -------------------------------------------------------------------------------- /content/htmlimage/junk_sample1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/htmlimage/junk_sample1.png -------------------------------------------------------------------------------- /content/htmlimage/junk_sample2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/htmlimage/junk_sample2.png -------------------------------------------------------------------------------- /content/htmlimage/junk_sample3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/htmlimage/junk_sample3.png -------------------------------------------------------------------------------- /content/tex64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/tex64.png -------------------------------------------------------------------------------- /content/texture/SSR06_Born2_bp_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/texture/SSR06_Born2_bp_base.png -------------------------------------------------------------------------------- /content/texture/SSR06_Born2_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/texture/SSR06_Born2_dif.png -------------------------------------------------------------------------------- /content/title_Back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/title_Back.jpg -------------------------------------------------------------------------------- /content/title_Back_Ray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/title_Back_Ray.jpg -------------------------------------------------------------------------------- /content/wayPointObj.x: -------------------------------------------------------------------------------- 1 | xof 0303txt 0032 2 | 3 | template XSkinMeshHeader { 4 | <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> 5 | WORD nMaxSkinWeightsPerVertex; 6 | WORD nMaxSkinWeightsPerFace; 7 | WORD nBones; 8 | } 9 | 10 | template VertexDuplicationIndices { 11 | 12 | DWORD nIndices; 13 | DWORD nOriginalVertices; 14 | array DWORD indices[nIndices]; 15 | } 16 | 17 | template SkinWeights { 18 | <6f0d123b-bad2-4167-a0d0-80224f25fabb> 19 | STRING transformNodeName; 20 | DWORD nWeights; 21 | array DWORD vertexIndices[nWeights]; 22 | array FLOAT weights[nWeights]; 23 | Matrix4x4 matrixOffset; 24 | } 25 | 26 | 27 | Frame Frame_SCENE_ROOT { 28 | 29 | FrameTransformMatrix { 30 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 31 | } 32 | 33 | Frame Frame1_wayPointObj { 34 | 35 | FrameTransformMatrix { 36 | 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; 37 | } 38 | 39 | Mesh Mesh_wayPointObj { 40 | 128; 41 | -0.250000;1.000000;-0.250000;, 42 | -0.250000;1.000000;-0.250000;, 43 | -0.250000;1.000000;-0.250000;, 44 | -0.250000;1.000000;-0.250000;, 45 | 0.250000;1.000000;-0.250000;, 46 | 0.250000;1.000000;-0.250000;, 47 | 0.250000;1.000000;-0.250000;, 48 | 0.250000;1.000000;-0.250000;, 49 | 0.250000;1.000000;0.250000;, 50 | 0.250000;1.000000;0.250000;, 51 | 0.250000;1.000000;0.250000;, 52 | 0.250000;1.000000;0.250000;, 53 | -0.250000;1.000000;0.250000;, 54 | -0.250000;1.000000;0.250000;, 55 | -0.250000;1.000000;0.250000;, 56 | -0.250000;1.000000;0.250000;, 57 | 0.000000;0.000000;0.000000;, 58 | 0.000000;0.000000;0.000000;, 59 | 0.000000;0.000000;0.000000;, 60 | 0.000000;0.000000;0.000000;, 61 | -0.170000;1.100000;-0.170000;, 62 | -0.170000;1.100000;-0.170000;, 63 | -0.170000;1.100000;-0.170000;, 64 | -0.170000;1.100000;0.170000;, 65 | -0.170000;1.100000;0.170000;, 66 | -0.170000;1.100000;0.170000;, 67 | 0.170000;1.100000;0.170000;, 68 | 0.170000;1.100000;0.170000;, 69 | 0.170000;1.100000;0.170000;, 70 | 0.170000;1.100000;-0.170000;, 71 | 0.170000;1.100000;-0.170000;, 72 | 0.170000;1.100000;-0.170000;, 73 | 10.000000;-0.200000;0.000000;, 74 | 10.000000;-0.200000;0.000000;, 75 | 9.659258;-0.200000;2.588191;, 76 | 9.659258;-0.200000;2.588191;, 77 | 8.660254;-0.200000;5.000000;, 78 | 8.660254;-0.200000;5.000000;, 79 | 7.071068;-0.200000;7.071068;, 80 | 7.071068;-0.200000;7.071068;, 81 | 5.000000;-0.200000;8.660254;, 82 | 5.000000;-0.200000;8.660254;, 83 | 2.588191;-0.200000;9.659258;, 84 | 2.588191;-0.200000;9.659258;, 85 | 0.000000;-0.200000;10.000000;, 86 | 0.000000;-0.200000;10.000000;, 87 | -2.588191;-0.200000;9.659258;, 88 | -2.588191;-0.200000;9.659258;, 89 | -5.000000;-0.200000;8.660254;, 90 | -5.000000;-0.200000;8.660254;, 91 | -7.071068;-0.200000;7.071068;, 92 | -7.071068;-0.200000;7.071068;, 93 | -8.660254;-0.200000;5.000000;, 94 | -8.660254;-0.200000;5.000000;, 95 | -9.659258;-0.200000;2.588191;, 96 | -9.659258;-0.200000;2.588191;, 97 | -10.000000;-0.200000;0.000000;, 98 | -10.000000;-0.200000;0.000000;, 99 | -9.659258;-0.200000;-2.588191;, 100 | -9.659258;-0.200000;-2.588191;, 101 | -8.660254;-0.200000;-5.000000;, 102 | -8.660254;-0.200000;-5.000000;, 103 | -7.071068;-0.200000;-7.071068;, 104 | -7.071068;-0.200000;-7.071068;, 105 | -5.000000;-0.200000;-8.660254;, 106 | -5.000000;-0.200000;-8.660254;, 107 | -2.588191;-0.200000;-9.659258;, 108 | -2.588191;-0.200000;-9.659258;, 109 | 0.000000;-0.200000;-10.000000;, 110 | 0.000000;-0.200000;-10.000000;, 111 | 2.588191;-0.200000;-9.659258;, 112 | 2.588191;-0.200000;-9.659258;, 113 | 5.000000;-0.200000;-8.660254;, 114 | 5.000000;-0.200000;-8.660254;, 115 | 7.071068;-0.200000;-7.071068;, 116 | 7.071068;-0.200000;-7.071068;, 117 | 8.660254;-0.200000;-5.000000;, 118 | 8.660254;-0.200000;-5.000000;, 119 | 9.659258;-0.200000;-2.588191;, 120 | 9.659258;-0.200000;-2.588191;, 121 | 10.000000;0.400000;0.000000;, 122 | 10.000000;0.400000;0.000000;, 123 | 9.659258;0.400000;2.588191;, 124 | 9.659258;0.400000;2.588191;, 125 | 8.660254;0.400000;5.000000;, 126 | 8.660254;0.400000;5.000000;, 127 | 7.071068;0.400000;7.071068;, 128 | 7.071068;0.400000;7.071068;, 129 | 5.000000;0.400000;8.660254;, 130 | 5.000000;0.400000;8.660254;, 131 | 2.588191;0.400000;9.659258;, 132 | 2.588191;0.400000;9.659258;, 133 | 0.000000;0.400000;10.000000;, 134 | 0.000000;0.400000;10.000000;, 135 | -2.588191;0.400000;9.659258;, 136 | -2.588191;0.400000;9.659258;, 137 | -5.000000;0.400000;8.660254;, 138 | -5.000000;0.400000;8.660254;, 139 | -7.071068;0.400000;7.071068;, 140 | -7.071068;0.400000;7.071068;, 141 | -8.660254;0.400000;5.000000;, 142 | -8.660254;0.400000;5.000000;, 143 | -9.659258;0.400000;2.588191;, 144 | -9.659258;0.400000;2.588191;, 145 | -10.000000;0.400000;0.000000;, 146 | -10.000000;0.400000;0.000000;, 147 | -9.659258;0.400000;-2.588191;, 148 | -9.659258;0.400000;-2.588191;, 149 | -8.660254;0.400000;-5.000000;, 150 | -8.660254;0.400000;-5.000000;, 151 | -7.071068;0.400000;-7.071068;, 152 | -7.071068;0.400000;-7.071068;, 153 | -5.000000;0.400000;-8.660254;, 154 | -5.000000;0.400000;-8.660254;, 155 | -2.588191;0.400000;-9.659258;, 156 | -2.588191;0.400000;-9.659258;, 157 | 0.000000;0.400000;-10.000000;, 158 | 0.000000;0.400000;-10.000000;, 159 | 2.588191;0.400000;-9.659258;, 160 | 2.588191;0.400000;-9.659258;, 161 | 5.000000;0.400000;-8.660254;, 162 | 5.000000;0.400000;-8.660254;, 163 | 7.071068;0.400000;-7.071068;, 164 | 7.071068;0.400000;-7.071068;, 165 | 8.660254;0.400000;-5.000000;, 166 | 8.660254;0.400000;-5.000000;, 167 | 9.659258;0.400000;-2.588191;, 168 | 9.659258;0.400000;-2.588191;; 169 | 62; 170 | 3;76,126,78;, 171 | 3;4,8,16;, 172 | 3;17,9,12;, 173 | 3;18,13,0;, 174 | 3;20,26,29;, 175 | 3;5,21,30;, 176 | 3;1,23,22;, 177 | 3;14,27,24;, 178 | 3;6,28,10;, 179 | 3;32,82,34;, 180 | 3;35,84,36;, 181 | 3;37,86,38;, 182 | 3;39,88,40;, 183 | 3;41,90,42;, 184 | 3;43,92,44;, 185 | 3;46,93,94;, 186 | 3;48,95,96;, 187 | 3;50,97,98;, 188 | 3;52,99,100;, 189 | 3;54,101,102;, 190 | 3;56,103,104;, 191 | 3;58,105,106;, 192 | 3;60,107,108;, 193 | 3;62,109,110;, 194 | 3;64,111,112;, 195 | 3;66,113,114;, 196 | 3;68,115,116;, 197 | 3;69,118,70;, 198 | 3;71,120,72;, 199 | 3;73,122,74;, 200 | 3;75,124,77;, 201 | 3;2,7,19;, 202 | 3;79,80,33;, 203 | 3;20,25,26;, 204 | 3;5,3,21;, 205 | 3;1,15,23;, 206 | 3;14,11,27;, 207 | 3;6,31,28;, 208 | 3;32,81,82;, 209 | 3;35,83,84;, 210 | 3;37,85,86;, 211 | 3;39,87,88;, 212 | 3;41,89,90;, 213 | 3;43,91,92;, 214 | 3;46,45,93;, 215 | 3;48,47,95;, 216 | 3;50,49,97;, 217 | 3;52,51,99;, 218 | 3;54,53,101;, 219 | 3;56,55,103;, 220 | 3;58,57,105;, 221 | 3;60,59,107;, 222 | 3;62,61,109;, 223 | 3;64,63,111;, 224 | 3;66,65,113;, 225 | 3;68,67,115;, 226 | 3;69,117,118;, 227 | 3;71,119,120;, 228 | 3;73,121,122;, 229 | 3;75,123,124;, 230 | 3;76,125,126;, 231 | 3;79,127,80;; 232 | 233 | MeshNormals { 234 | 128; 235 | -0.970142;-0.242536;0.000000;, 236 | -0.780869;0.624695;0.000000;, 237 | 0.000000;-0.242536;-0.970142;, 238 | 0.000000;0.624695;-0.780869;, 239 | 0.970142;-0.242536;0.000000;, 240 | 0.000000;0.624695;-0.780869;, 241 | 0.780869;0.624695;0.000000;, 242 | 0.000000;-0.242536;-0.970142;, 243 | 0.970142;-0.242536;0.000000;, 244 | 0.000000;-0.242536;0.970142;, 245 | 0.780869;0.624695;0.000000;, 246 | 0.000000;0.624695;0.780869;, 247 | 0.000000;-0.242536;0.970142;, 248 | -0.970142;-0.242536;0.000000;, 249 | 0.000000;0.624695;0.780869;, 250 | -0.780869;0.624695;0.000000;, 251 | 0.970142;-0.242536;0.000000;, 252 | 0.000000;-0.242536;0.970142;, 253 | -0.970142;-0.242536;0.000000;, 254 | 0.000000;-0.242536;-0.970142;, 255 | 0.000000;1.000000;0.000000;, 256 | 0.000000;0.624695;-0.780869;, 257 | -0.780869;0.624695;0.000000;, 258 | -0.780869;0.624695;0.000000;, 259 | 0.000000;0.624695;0.780869;, 260 | 0.000000;1.000000;0.000000;, 261 | 0.000000;1.000000;0.000000;, 262 | 0.000000;0.624695;0.780869;, 263 | 0.780869;0.624695;0.000000;, 264 | 0.000000;1.000000;0.000000;, 265 | 0.000000;0.624695;-0.780869;, 266 | 0.780869;0.624695;0.000000;, 267 | 0.991445;0.000000;0.130526;, 268 | 0.991445;0.000000;-0.130526;, 269 | 0.991445;0.000000;0.130526;, 270 | 0.923880;0.000000;0.382683;, 271 | 0.923880;0.000000;0.382683;, 272 | 0.793353;0.000000;0.608761;, 273 | 0.793353;0.000000;0.608761;, 274 | 0.608761;0.000000;0.793353;, 275 | 0.608761;0.000000;0.793353;, 276 | 0.382683;0.000000;0.923880;, 277 | 0.382683;0.000000;0.923880;, 278 | 0.130526;0.000000;0.991445;, 279 | 0.130526;0.000000;0.991445;, 280 | -0.130526;0.000000;0.991445;, 281 | -0.130526;0.000000;0.991445;, 282 | -0.382683;0.000000;0.923880;, 283 | -0.382683;0.000000;0.923880;, 284 | -0.608761;0.000000;0.793353;, 285 | -0.608761;0.000000;0.793353;, 286 | -0.793353;0.000000;0.608761;, 287 | -0.793353;0.000000;0.608761;, 288 | -0.923880;0.000000;0.382683;, 289 | -0.923880;0.000000;0.382683;, 290 | -0.991445;0.000000;0.130526;, 291 | -0.991445;0.000000;0.130526;, 292 | -0.991445;0.000000;-0.130526;, 293 | -0.991445;0.000000;-0.130526;, 294 | -0.923880;0.000000;-0.382683;, 295 | -0.923880;0.000000;-0.382683;, 296 | -0.793353;0.000000;-0.608761;, 297 | -0.793353;0.000000;-0.608761;, 298 | -0.608761;0.000000;-0.793353;, 299 | -0.608761;0.000000;-0.793353;, 300 | -0.382683;0.000000;-0.923880;, 301 | -0.382683;0.000000;-0.923880;, 302 | -0.130526;0.000000;-0.991445;, 303 | -0.130526;0.000000;-0.991445;, 304 | 0.130526;0.000000;-0.991445;, 305 | 0.130526;0.000000;-0.991445;, 306 | 0.382683;0.000000;-0.923880;, 307 | 0.382683;0.000000;-0.923880;, 308 | 0.608761;0.000000;-0.793353;, 309 | 0.608761;0.000000;-0.793353;, 310 | 0.793353;0.000000;-0.608761;, 311 | 0.923880;0.000000;-0.382683;, 312 | 0.793353;0.000000;-0.608761;, 313 | 0.923880;0.000000;-0.382683;, 314 | 0.991445;0.000000;-0.130526;, 315 | 0.991445;0.000000;-0.130526;, 316 | 0.991445;0.000000;0.130526;, 317 | 0.991445;0.000000;0.130526;, 318 | 0.923880;0.000000;0.382683;, 319 | 0.923880;0.000000;0.382683;, 320 | 0.793353;0.000000;0.608761;, 321 | 0.793353;0.000000;0.608761;, 322 | 0.608761;0.000000;0.793353;, 323 | 0.608761;0.000000;0.793353;, 324 | 0.382683;0.000000;0.923880;, 325 | 0.382683;0.000000;0.923880;, 326 | 0.130526;0.000000;0.991445;, 327 | 0.130526;0.000000;0.991445;, 328 | -0.130526;0.000000;0.991445;, 329 | -0.130526;0.000000;0.991445;, 330 | -0.382683;0.000000;0.923880;, 331 | -0.382683;0.000000;0.923880;, 332 | -0.608761;0.000000;0.793353;, 333 | -0.608761;0.000000;0.793353;, 334 | -0.793353;0.000000;0.608761;, 335 | -0.793353;0.000000;0.608761;, 336 | -0.923880;0.000000;0.382683;, 337 | -0.923880;0.000000;0.382683;, 338 | -0.991445;0.000000;0.130526;, 339 | -0.991445;0.000000;0.130526;, 340 | -0.991445;0.000000;-0.130526;, 341 | -0.991445;0.000000;-0.130526;, 342 | -0.923880;0.000000;-0.382683;, 343 | -0.923880;0.000000;-0.382683;, 344 | -0.793353;0.000000;-0.608761;, 345 | -0.793353;0.000000;-0.608761;, 346 | -0.608761;0.000000;-0.793353;, 347 | -0.608761;0.000000;-0.793353;, 348 | -0.382683;0.000000;-0.923880;, 349 | -0.382683;0.000000;-0.923880;, 350 | -0.130526;0.000000;-0.991445;, 351 | -0.130526;0.000000;-0.991445;, 352 | 0.130526;0.000000;-0.991445;, 353 | 0.130526;0.000000;-0.991445;, 354 | 0.382683;0.000000;-0.923880;, 355 | 0.382683;0.000000;-0.923880;, 356 | 0.608761;0.000000;-0.793353;, 357 | 0.608761;0.000000;-0.793353;, 358 | 0.793353;0.000000;-0.608761;, 359 | 0.793353;0.000000;-0.608761;, 360 | 0.923880;0.000000;-0.382683;, 361 | 0.923880;0.000000;-0.382683;, 362 | 0.991445;0.000000;-0.130526;; 363 | 62; 364 | 3;76,126,78;, 365 | 3;4,8,16;, 366 | 3;17,9,12;, 367 | 3;18,13,0;, 368 | 3;20,26,29;, 369 | 3;5,21,30;, 370 | 3;1,23,22;, 371 | 3;14,27,24;, 372 | 3;6,28,10;, 373 | 3;32,82,34;, 374 | 3;35,84,36;, 375 | 3;37,86,38;, 376 | 3;39,88,40;, 377 | 3;41,90,42;, 378 | 3;43,92,44;, 379 | 3;46,93,94;, 380 | 3;48,95,96;, 381 | 3;50,97,98;, 382 | 3;52,99,100;, 383 | 3;54,101,102;, 384 | 3;56,103,104;, 385 | 3;58,105,106;, 386 | 3;60,107,108;, 387 | 3;62,109,110;, 388 | 3;64,111,112;, 389 | 3;66,113,114;, 390 | 3;68,115,116;, 391 | 3;69,118,70;, 392 | 3;71,120,72;, 393 | 3;73,122,74;, 394 | 3;75,124,77;, 395 | 3;2,7,19;, 396 | 3;79,80,33;, 397 | 3;20,25,26;, 398 | 3;5,3,21;, 399 | 3;1,15,23;, 400 | 3;14,11,27;, 401 | 3;6,31,28;, 402 | 3;32,81,82;, 403 | 3;35,83,84;, 404 | 3;37,85,86;, 405 | 3;39,87,88;, 406 | 3;41,89,90;, 407 | 3;43,91,92;, 408 | 3;46,45,93;, 409 | 3;48,47,95;, 410 | 3;50,49,97;, 411 | 3;52,51,99;, 412 | 3;54,53,101;, 413 | 3;56,55,103;, 414 | 3;58,57,105;, 415 | 3;60,59,107;, 416 | 3;62,61,109;, 417 | 3;64,63,111;, 418 | 3;66,65,113;, 419 | 3;68,67,115;, 420 | 3;69,117,118;, 421 | 3;71,119,120;, 422 | 3;73,121,122;, 423 | 3;75,123,124;, 424 | 3;76,125,126;, 425 | 3;79,127,80;; 426 | } 427 | 428 | MeshTextureCoords { 429 | 128; 430 | 0.000000;1.000000;, 431 | 0.000000;1.000000;, 432 | 0.000000;1.000000;, 433 | 0.000000;1.000000;, 434 | 1.000000;1.000000;, 435 | 1.000000;1.000000;, 436 | 1.000000;1.000000;, 437 | 1.000000;1.000000;, 438 | 1.000000;0.000000;, 439 | 1.000000;0.000000;, 440 | 1.000000;0.000000;, 441 | 1.000000;0.000000;, 442 | 0.000000;0.000000;, 443 | 0.000000;0.000000;, 444 | 0.000000;0.000000;, 445 | 0.000000;0.000000;, 446 | 0.500000;0.500000;, 447 | 0.500000;0.500000;, 448 | 0.500000;0.500000;, 449 | 0.500000;0.500000;, 450 | 0.160000;0.840000;, 451 | 0.160000;0.840000;, 452 | 0.160000;0.840000;, 453 | 0.160000;0.160000;, 454 | 0.160000;0.160000;, 455 | 0.160000;0.160000;, 456 | 0.840000;0.160000;, 457 | 0.840000;0.160000;, 458 | 0.840000;0.160000;, 459 | 0.840000;0.840000;, 460 | 0.840000;0.840000;, 461 | 0.840000;0.840000;, 462 | 0.000000;1.000000;, 463 | 0.000000;1.000000;, 464 | 0.000000;1.000000;, 465 | 0.000000;1.000000;, 466 | 0.000000;1.000000;, 467 | 0.000000;1.000000;, 468 | 0.000000;1.000000;, 469 | 0.000000;1.000000;, 470 | 0.000000;1.000000;, 471 | 0.000000;1.000000;, 472 | 0.000000;1.000000;, 473 | 0.000000;1.000000;, 474 | 0.000000;1.000000;, 475 | 0.000000;1.000000;, 476 | 0.000000;1.000000;, 477 | 0.000000;1.000000;, 478 | 0.000000;1.000000;, 479 | 0.000000;1.000000;, 480 | 0.000000;1.000000;, 481 | 0.000000;1.000000;, 482 | 0.000000;1.000000;, 483 | 0.000000;1.000000;, 484 | 0.000000;1.000000;, 485 | 0.000000;1.000000;, 486 | 0.000000;1.000000;, 487 | 0.000000;1.000000;, 488 | 0.000000;1.000000;, 489 | 0.000000;1.000000;, 490 | 0.000000;1.000000;, 491 | 0.000000;1.000000;, 492 | 0.000000;1.000000;, 493 | 0.000000;1.000000;, 494 | 0.000000;1.000000;, 495 | 0.000000;1.000000;, 496 | 0.000000;1.000000;, 497 | 0.000000;1.000000;, 498 | 0.000000;1.000000;, 499 | 0.000000;1.000000;, 500 | 0.000000;1.000000;, 501 | 0.000000;1.000000;, 502 | 0.000000;1.000000;, 503 | 0.000000;1.000000;, 504 | 0.000000;1.000000;, 505 | 0.000000;1.000000;, 506 | 0.000000;1.000000;, 507 | 0.000000;1.000000;, 508 | 0.000000;1.000000;, 509 | 0.000000;1.000000;, 510 | 0.000000;1.000000;, 511 | 0.000000;1.000000;, 512 | 0.000000;1.000000;, 513 | 0.000000;1.000000;, 514 | 0.000000;1.000000;, 515 | 0.000000;1.000000;, 516 | 0.000000;1.000000;, 517 | 0.000000;1.000000;, 518 | 0.000000;1.000000;, 519 | 0.000000;1.000000;, 520 | 0.000000;1.000000;, 521 | 0.000000;1.000000;, 522 | 0.000000;1.000000;, 523 | 0.000000;1.000000;, 524 | 0.000000;1.000000;, 525 | 0.000000;1.000000;, 526 | 0.000000;1.000000;, 527 | 0.000000;1.000000;, 528 | 0.000000;1.000000;, 529 | 0.000000;1.000000;, 530 | 0.000000;1.000000;, 531 | 0.000000;1.000000;, 532 | 0.000000;1.000000;, 533 | 0.000000;1.000000;, 534 | 0.000000;1.000000;, 535 | 0.000000;1.000000;, 536 | 0.000000;1.000000;, 537 | 0.000000;1.000000;, 538 | 0.000000;1.000000;, 539 | 0.000000;1.000000;, 540 | 0.000000;1.000000;, 541 | 0.000000;1.000000;, 542 | 0.000000;1.000000;, 543 | 0.000000;1.000000;, 544 | 0.000000;1.000000;, 545 | 0.000000;1.000000;, 546 | 0.000000;1.000000;, 547 | 0.000000;1.000000;, 548 | 0.000000;1.000000;, 549 | 0.000000;1.000000;, 550 | 0.000000;1.000000;, 551 | 0.000000;1.000000;, 552 | 0.000000;1.000000;, 553 | 0.000000;1.000000;, 554 | 0.000000;1.000000;, 555 | 0.000000;1.000000;, 556 | 0.000000;1.000000;, 557 | 0.000000;1.000000;; 558 | } 559 | 560 | VertexDuplicationIndices { 561 | 128; 562 | 127; 563 | 0, 564 | 0, 565 | 0, 566 | 0, 567 | 4, 568 | 4, 569 | 4, 570 | 4, 571 | 8, 572 | 8, 573 | 8, 574 | 8, 575 | 12, 576 | 12, 577 | 12, 578 | 12, 579 | 16, 580 | 16, 581 | 16, 582 | 16, 583 | 20, 584 | 20, 585 | 20, 586 | 23, 587 | 23, 588 | 23, 589 | 26, 590 | 26, 591 | 26, 592 | 29, 593 | 29, 594 | 29, 595 | 32, 596 | 32, 597 | 34, 598 | 34, 599 | 36, 600 | 36, 601 | 38, 602 | 38, 603 | 40, 604 | 40, 605 | 42, 606 | 42, 607 | 44, 608 | 44, 609 | 46, 610 | 46, 611 | 48, 612 | 48, 613 | 50, 614 | 50, 615 | 52, 616 | 52, 617 | 54, 618 | 54, 619 | 56, 620 | 56, 621 | 58, 622 | 58, 623 | 60, 624 | 60, 625 | 62, 626 | 62, 627 | 64, 628 | 64, 629 | 66, 630 | 66, 631 | 68, 632 | 68, 633 | 70, 634 | 70, 635 | 72, 636 | 72, 637 | 74, 638 | 74, 639 | 76, 640 | 76, 641 | 78, 642 | 78, 643 | 80, 644 | 80, 645 | 82, 646 | 82, 647 | 84, 648 | 84, 649 | 86, 650 | 86, 651 | 88, 652 | 88, 653 | 90, 654 | 90, 655 | 92, 656 | 92, 657 | 94, 658 | 94, 659 | 96, 660 | 96, 661 | 98, 662 | 98, 663 | 100, 664 | 100, 665 | 102, 666 | 102, 667 | 104, 668 | 104, 669 | 106, 670 | 106, 671 | 108, 672 | 108, 673 | 110, 674 | 110, 675 | 112, 676 | 112, 677 | 114, 678 | 114, 679 | 116, 680 | 116, 681 | 118, 682 | 118, 683 | 120, 684 | 120, 685 | 122, 686 | 122, 687 | 124, 688 | 124, 689 | 126, 690 | 126; 691 | } 692 | 693 | MeshMaterialList { 694 | 1; 695 | 62; 696 | 0, 697 | 0, 698 | 0, 699 | 0, 700 | 0, 701 | 0, 702 | 0, 703 | 0, 704 | 0, 705 | 0, 706 | 0, 707 | 0, 708 | 0, 709 | 0, 710 | 0, 711 | 0, 712 | 0, 713 | 0, 714 | 0, 715 | 0, 716 | 0, 717 | 0, 718 | 0, 719 | 0, 720 | 0, 721 | 0, 722 | 0, 723 | 0, 724 | 0, 725 | 0, 726 | 0, 727 | 0, 728 | 0, 729 | 0, 730 | 0, 731 | 0, 732 | 0, 733 | 0, 734 | 0, 735 | 0, 736 | 0, 737 | 0, 738 | 0, 739 | 0, 740 | 0, 741 | 0, 742 | 0, 743 | 0, 744 | 0, 745 | 0, 746 | 0, 747 | 0, 748 | 0, 749 | 0, 750 | 0, 751 | 0, 752 | 0, 753 | 0, 754 | 0, 755 | 0, 756 | 0, 757 | 0; 758 | 759 | Material { 760 | 1.000000;1.000000;1.000000;1.000000;; 761 | 51.200001; 762 | 0.000000;0.000000;0.000000;; 763 | 0.000000;0.000000;0.000000;; 764 | TextureFilename { 765 | "tex64.png"; 766 | } 767 | } 768 | } 769 | } 770 | } 771 | } 772 | -------------------------------------------------------------------------------- /content/wpn/wepons_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrs2002/junkfieldsjs/318a33bec4f326e12dab72dba914281703423fe7/content/wpn/wepons_uv.png -------------------------------------------------------------------------------- /js/Detector.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * @author mr.doob / http://mrdoob.com/ 4 | */ 5 | 6 | var Detector = { 7 | 8 | canvas: !! window.CanvasRenderingContext2D, 9 | webgl: ( function () { 10 | 11 | try { 12 | 13 | var canvas = document.createElement( 'canvas' ); return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) ); 14 | 15 | } catch ( e ) { 16 | 17 | return false; 18 | 19 | } 20 | 21 | } )(), 22 | workers: !! window.Worker, 23 | fileapi: window.File && window.FileReader && window.FileList && window.Blob, 24 | 25 | getWebGLErrorMessage: function () { 26 | 27 | var element = document.createElement( 'div' ); 28 | element.id = 'webgl-error-message'; 29 | element.style.fontFamily = 'monospace'; 30 | element.style.fontSize = '13px'; 31 | element.style.fontWeight = 'normal'; 32 | element.style.textAlign = 'center'; 33 | element.style.background = '#fff'; 34 | element.style.color = '#000'; 35 | element.style.padding = '1.5em'; 36 | element.style.width = '400px'; 37 | element.style.margin = '5em auto 0'; 38 | 39 | if ( ! this.webgl ) { 40 | 41 | element.innerHTML = window.WebGLRenderingContext ? [ 42 | 'Your graphics card does not seem to support WebGL.
', 43 | 'Find out how to get it here.' 44 | ].join( '\n' ) : [ 45 | 'Your browser does not seem to support WebGL.
', 46 | 'Find out how to get it here.' 47 | ].join( '\n' ); 48 | 49 | } 50 | 51 | return element; 52 | 53 | }, 54 | 55 | addGetWebGLMessage: function ( parameters ) { 56 | 57 | var parent, id, element; 58 | 59 | parameters = parameters || {}; 60 | 61 | parent = parameters.parent !== undefined ? parameters.parent : document.body; 62 | id = parameters.id !== undefined ? parameters.id : 'oldie'; 63 | 64 | element = Detector.getWebGLErrorMessage(); 65 | element.id = id; 66 | 67 | parent.appendChild( element ); 68 | 69 | } 70 | 71 | }; 72 | 73 | // browserify support 74 | if ( typeof module === 'object' ) { 75 | 76 | module.exports = Detector; 77 | 78 | } 79 | -------------------------------------------------------------------------------- /js/JfTimeRuler.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Jey-en 3 | * 改変自由:てきとーにやっちゃって 4 | */ 5 | 6 | //計測用オブジェクト 7 | var JfTimeRulerObject = function (_name,_col) { 8 | 9 | this.Name = _name; 10 | this.Color = _col; 11 | this.beginTime = Date.now(); 12 | this.spanTime = 0; 13 | }; 14 | JfTimeRulerObject.prototype = { 15 | 16 | constructor: JfTimeRulerObject, 17 | stop: function () { 18 | var self = this; 19 | self.spanTime = Date.now() - self.beginTime; 20 | } 21 | }; 22 | 23 | 24 | //モジュールクラス本体 25 | var JfTimeRuler = function (_x, _y) { 26 | 27 | var setPos = [0, 60]; 28 | if (_x != undefined && _y != undefined) { 29 | setPos = [_x, _y]; 30 | } 31 | if (_x != undefined && _y != undefined) { 32 | setPos = [_x, _y]; 33 | } 34 | 35 | var container = document.createElement('div'); 36 | container.style.cssText = 'position:fixed;top:0;left:0;width:300px; height:0px; opacity:0.9;z-index:2000'; 37 | 38 | //初期位置を決める。デフォルトはThree.jsのStatsにかぶらないようにしている。 39 | container.style.left = setPos[0] + "px"; 40 | container.style.top = setPos[1] + "px"; 41 | 42 | var canvas = document.createElement('canvas'); 43 | container.appendChild(canvas); 44 | var conteText2D = canvas.getContext("2d"); 45 | 46 | 47 | /////////////////////////////// 48 | 49 | var targetFrameTime = 1000 / 60; 50 | 51 | var timers = []; 52 | var timersCount = 0; 53 | var nowCuclTarget = ""; 54 | var nowBeginTime = null; 55 | 56 | return { 57 | dom: container, 58 | pos: setPos, 59 | timers: timers, 60 | timersCount: timersCount, 61 | nowCuclTarget: nowCuclTarget, 62 | nowBeginTime: nowBeginTime, 63 | targetFrameTime: targetFrameTime, 64 | 65 | conteText2D: conteText2D, 66 | canvas:canvas, 67 | 68 | ///目標とするフレームレートの変更 69 | setTargetFrameRate: function (_f) { 70 | var self = this; 71 | self.targetFrameTime = 1000 / _f; 72 | }, 73 | 74 | //現在の計測対象を止める。 75 | currentStop: function () { 76 | var self = this; 77 | if (self.nowCuclTarget != "") { 78 | self.timers[self.nowCuclTarget].stop(); 79 | self.nowCuclTarget = ""; 80 | } 81 | }, 82 | 83 | //計測結果を描画 84 | update: function () { 85 | var self = this; 86 | self.currentStop(); 87 | 88 | self.conteText2D.clearRect(0, 0, self.conteText2D.canvas.width, self.conteText2D.canvas.height); 89 | self.conteText2D.fillStyle = "rgba(0, 0, 0, 0.5)"; 90 | self.conteText2D.fillRect(0, 0, self.conteText2D.canvas.width, self.conteText2D.canvas.height); 91 | self.conteText2D.textAlign = 'left'; 92 | self.conteText2D.font = "10pt Arial"; 93 | 94 | var totalTime = 0; 95 | var keys = Object.keys(self.timers); 96 | 97 | //時間かかったよバーの描画 98 | for (var i = 0; i < keys.length; i++) { 99 | var startPos = 0; 100 | if (totalTime > 0) { 101 | startPos = totalTime / self.targetFrameTime; 102 | } 103 | startPos = startPos * self.conteText2D.canvas.width; 104 | var nowWidth = self.timers[keys[i]].spanTime / self.targetFrameTime; 105 | nowWidth = nowWidth * self.conteText2D.canvas.width; 106 | 107 | self.conteText2D.fillStyle = self.timers[keys[i]].Color; 108 | self.conteText2D.fillRect(startPos, 11, nowWidth, 10); 109 | 110 | totalTime += self.timers[keys[i]].spanTime; 111 | 112 | self.conteText2D.fillText(keys[i] + ':' + self.timers[keys[i]].spanTime, 5, 35 + i * 25); 113 | self.conteText2D.fillRect(0, 35 + i * 25 + 1, nowWidth, 10); 114 | } 115 | 116 | //トータル情報(一番上の文字)の描画 117 | self.conteText2D.fillStyle = 'rgb(255,255,255)'; 118 | self.conteText2D.fillText('totalTime:' + totalTime, 5, 10); 119 | 120 | //目標フレーム地点に印を付ける。コレを超えていなければ万歳だね 121 | var line = self.conteText2D.canvas.width / 3; 122 | if (totalTime > self.targetFrameTime) { 123 | self.conteText2D.fillStyle = 'rgb(255, 0, 0)'; 124 | } else { 125 | self.conteText2D.fillStyle = 'rgb(255, 255, 255)'; 126 | } 127 | 128 | self.conteText2D.fillRect(line * 2, 0, 3, self.conteText2D.canvas.height); 129 | 130 | 131 | self.timers = []; 132 | self.timersCount = 0; 133 | self.nowCuclTarget = ""; 134 | }, 135 | 136 | //計測対象を追加して計測を開始する 137 | add: function (_name, _col) { 138 | var self = this; 139 | self.currentStop(); 140 | 141 | self.nowCuclTarget = _name; 142 | var colObj = "rgb("; 143 | 144 | if (_col == undefined) { 145 | var result = self.timersCount % 3; 146 | switch (result) { 147 | case 0: colObj += "0,100,255)"; break; 148 | case 1: colObj += "0,255,0)"; break; 149 | case 2: colObj += "255,255,0)"; break; 150 | } 151 | } 152 | else { 153 | colObj = _col; 154 | } 155 | 156 | var rurerOBj = new JfTimeRulerObject(_name, colObj); 157 | self.timers[_name] = rurerOBj; 158 | self.timersCount++; 159 | } 160 | 161 | 162 | } 163 | }; 164 | 165 | if (typeof module === 'object') { 166 | 167 | module.exports = JfTimeRuler; 168 | 169 | } -------------------------------------------------------------------------------- /js/ParticlTask.js: -------------------------------------------------------------------------------- 1 | importScripts('three.js', 'clsParticle.js'); 2 | 3 | self.addEventListener('message', function (e) { 4 | for (var i = 0; i < e.data[0].length; i++) { 5 | particleComp.ParticeUpdate(e.data[0][i], e.data[1]); 6 | } 7 | self.postMessage(e.data); 8 | }, false); -------------------------------------------------------------------------------- /js/cEnBtPlayer.js: -------------------------------------------------------------------------------- 1 |  2 | 3 | /// 武器種別 4 | cEnWpnType 5 | = { 6 | RW_1: 0, 7 | LW_1: 1, 8 | SW_1: 2, 9 | RW_2_RF: 3, 10 | RW_2_MG: 4, 11 | //RW_2_LC, 12 | RW_2_BZ: 5, 13 | LW_2_RF: 6, 14 | LW_2_MG: 7, 15 | LW_2_LC: 8, 16 | LW_2_BZ: 9, 17 | //// 18 | SW_2_N: 10, 19 | SW_2_LGT: 11, 20 | SW_2_GG_DL: 12, 21 | SW_2_DL: 13, 22 | 23 | 24 | Null: 12, 25 | } 26 | 27 | /// リンクの配列ID 28 | cEnLinkID 29 | = { 30 | playerID: 0, 31 | mountID: 1, 32 | useWpnID: 2, 33 | BulletPosID: 3, 34 | } 35 | 36 | /// 装備箇所ID 37 | cEnWpnMontID 38 | = { 39 | R_Hand: 0, 40 | L_Hand: 1, 41 | R_Sholder_1: 2, 42 | L_Sholder_1: 3, 43 | R_Sholder_2: 4, 44 | L_Sholder_2: 5, 45 | 46 | val_Max: 6, 47 | } 48 | 49 | 50 | /// 使用中及び使用不可能時間ID 51 | cEnStat_ParamTime 52 | = { 53 | /// 使用中及び使用不可能時間ID・ショット 54 | Stat_Shot_time: 0, 55 | /// 使用中及び使用不可能時間ID・格闘 56 | Stat_Kaku_time: 1, 57 | /// 使用中及び使用不可能時間ID・サブ攻撃 58 | Stat_SubS_time: 2, 59 | /// 使用中及び使用不可能時間ID・バーストショット 60 | Stat_BstShot_time: 3, 61 | /// 使用中及び使用不可能時間ID・バースト格闘 62 | Stat_BstKaku_Time: 4, 63 | /// 使用中及び使用不可能時間ID・Expアタック 64 | Stat_ExAt_time: 5, 65 | /// 使用中及び使用不可能時間ID・移動 66 | Stat_move_time: 6, 67 | /// 使用中及び使用不可能時間ID・ダッシュ 68 | Stat_dash_time: 7, 69 | /// 使用中及び使用不可能時間ID・ジャンプ 70 | Stat_Junp_time: 8, 71 | /// 使用中及び使用不可能時間ID・ステップ 72 | Stat_Step_time: 9, 73 | /// 使用中及び使用不可能時間ID・ゲイン使用 74 | Stat_use_gain_time: 10, 75 | /// 同一アニメーション維持数 76 | motion_time: 11, 77 | 78 | 79 | val_Max: 12, 80 | } 81 | 82 | /// 83 | /// 能力値構造体引数ID関連 84 | /// 85 | cEnConsts_ParamF 86 | = { 87 | /// 歩行速度上昇値 88 | warkS_up: 0, 89 | /// 歩行速度最大値 90 | warkS_max: 1, 91 | /// ダッシュ速度上昇値 92 | dashS_up: 2, 93 | /// ダッシュ速度最大値 94 | dashS_max: 3, 95 | /// 地上からの機体の中心・高さ 96 | body_height: 4, 97 | /// 機体の回転速度・立ち 98 | rool_S_stand: 5, 99 | /// 期待の回転速度・ダッシュ 100 | rool_S_dash: 6, 101 | /// ジャンプの上昇速度 102 | junpS_up: 7, 103 | /// ジャンプ上昇速度最大値 104 | junpS_max: 8, 105 | /// ジャンプ上昇速度最大値(ナナメ) 106 | junpS_max2: 9, 107 | /// ジャンプ開始時硬直 108 | junp_Kotyoku: 10, 109 | /// 空中ダッシュの速度上昇値 110 | junpD_up: 11, 111 | /// 空中ダッシュの速度最大値 112 | junpD_max: 12, 113 | /// 空中での左右移動倍率 114 | junpMoveFact: 13, 115 | 116 | /// ステップの速度上昇値 117 | StepS_up: 14, 118 | /// ステップの速度最大値 119 | StepS_max: 15, 120 | 121 | /// ステップの最低時間 122 | StepT_short: 16, 123 | /// ステップの最大時間 124 | StepT_max: 17, 125 | /// ステップの終了中のスキ時間 126 | StepT_End: 18, 127 | 128 | /// HP最大値 129 | life_max: 19, 130 | /// ゲイン最大値 131 | gein_max: 20, 132 | /// ダッシュ時のゲイン使用値 133 | Guse_dash: 21, 134 | /// ダッシュ【開始時】のゲイン使用値 135 | Guse_dashFast: 22, 136 | /// ジャンプ時のゲイン使用値 137 | Guse_junp: 23, 138 | /// ジャンプ【開始時】のゲイン使用値 139 | Guse_junpfast: 24, 140 | /// ステップ時のゲイン使用値 141 | Guse_Step: 25, 142 | /// ステップ【開始時】のゲイン使用値 143 | Guse_Stepfast: 26, 144 | 145 | /// 通常時のゲイン回復値 146 | gein_regeinS: 27, 147 | /// 武器装備時のゲイン占有倍率 148 | gein_wpnFact: 28, 149 | /// 摩擦係数のようなもの:立ちからの加速の遅さ 1を超えてはいけない 150 | Stand_Brake: 29, 151 | /// ダッシュ後のブレーキ性能 1を超えてはいけない 152 | ext_brake: 30, 153 | /// ダッシュ開始時の硬直フレーム時間 154 | Dash_KotyokuTime: 31, 155 | /// ダッシュ初期時のブースト時間 156 | Dash_FastBoostTime: 32, 157 | /// ダッシュ開始時の所期ブースト加速度 158 | Dash_FastBoost: 33, 159 | /// Rw攻撃時、強制振り向き角度 右 160 | Rw_RolLock_R: 34, 161 | /// Rw攻撃時、強制振り向き角度 左 162 | Rw_RolLock_L: 35, 163 | 164 | /// 被ダメ⇒よろけまでの値 165 | Dmg_Tolerance: 36, 166 | /// 被ダメ⇒ダウンまでの値 167 | Don_Tolerance: 37, 168 | 169 | /// LWで付加されるセービングフレーム数 170 | SevTime: 38, 171 | /// LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 172 | Sev_Power: 39, 173 | /// 壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 174 | savHalfLockTime: 40, 175 | /// ロックオン可能距離 176 | LockRange: 41, 177 | 178 | /// 気力 179 | //Kiryoku, 180 | /// プラーナ 181 | //MaxPlana, 182 | 183 | val_Max: 42, 184 | 185 | } 186 | 187 | /// 188 | /// ゲーム中のキャラのパラメーター(変動値) 189 | /// 190 | cEnChara_ParamFloat 191 | = { 192 | /// 現在のHP 193 | life: 0, 194 | /// 現在の歩行速度 195 | warkS_n: 1, 196 | /// 値現在のダッシュ速度 197 | dashS_n: 2, 198 | /// 現在のジャンプ速度 199 | junpS_n: 3, 200 | /// 現在の空中ダッシュ速度 201 | junpD_n: 4, 202 | /// 203 | junpS_up_Fast: 5, 204 | /// ダウン無敵時間の値 205 | down_life: 6, 206 | /// 無敵時間の現在の値 207 | down_life_now: 7, 208 | /// ゲイン残量 209 | gein_n: 8, 210 | /// マウントによるゲイン使用量 Constの場合はかかる倍率 211 | Guse_mountuse: 9, 212 | /// 発射する弾にかかる速度関数 213 | shot_Spd_F: 10, 214 | /// 現在のロックオン目標までの角度(Y) 215 | TGT_Dist_Kaku: 11, 216 | /// ダッシュ開始時の機体角度(Y) 217 | Dash_Start_Kaku: 12, 218 | /// ボーン変形のブレンドファクター 219 | blendFactor: 13, 220 | /// 上半身用のブレンドファクタ- 221 | blendFactor_up: 14, 222 | /// blendFactorへのフレーム加算係数。 223 | FactorAdd: 15, 224 | 225 | /// ダウン値。 226 | DwnFactor: 16, 227 | 228 | // Plana, 229 | 230 | ///Kiryoku, 231 | /// 現在のロックオン目標までの角度(Y):ひとつ前 232 | TGT_Dist_Kaku_Last: 17, 233 | /// 現在のロックオン目標までの距離 ひとつ前 234 | TGT_Dist_Last: 18, 235 | 236 | val_Max: 19, 237 | 238 | } 239 | 240 | /// 241 | /// 出現中のタマのパラメータ 242 | /// 243 | cEnShot_Param 244 | = { 245 | /// その玉を誰が出したかのID 246 | Shot_by: 0, 247 | shot_type: 1, 248 | shot_ID: 2, 249 | shot_lock_ID: 3, 250 | shot_out: 4, 251 | shot_reng: 5, 252 | /// 5フレーム間保持用ロールベクターX 253 | shot_rol_X_nexting: 6, 254 | /// 5フレーム間保持用ロールベクターZ 255 | shot_rol_Z_nexting: 7, 256 | shot_speed: 8, 257 | shot_speed_Base: 9, 258 | 259 | val_Max: 10, 260 | } 261 | 262 | /// 263 | /// 格闘のコンビネーションパターン 264 | /// 265 | cEnLw1ComboSet 266 | = { 267 | Lw1Base: 0, 268 | LL: 1, 269 | LLL: 2, 270 | LR: 3, 271 | LS: 4, 272 | LLR: 5, 273 | LLS: 6, 274 | LLLL: 7, 275 | } 276 | 277 | /// 278 | /// プレイヤーモーション管理。 279 | /// 280 | cEnPlayer_Motion 281 | = { 282 | stand: 0, 283 | init: 1, 284 | walk: 2, 285 | walk_R: 2.1, 286 | walk_L: 2.2, 287 | back: 3, 288 | dash_F: 4, 289 | /// 空中ダッシュ 290 | //dash_S : 4, 291 | tach_Down: 5, 292 | Junp: 6, 293 | J_Down: 7, 294 | Step_F: 8, 295 | Step_R: 9, 296 | Step_L: 10, 297 | Step_B: 11, 298 | 299 | dmg: 12, 300 | down_1: 13, 301 | down_1_2: 14, 302 | down_2: 15, 303 | down_Rise: 16, 304 | 305 | /// モーション指定時の中継のみに使用 306 | RW_2_Base: 17, 307 | 308 | RW_2_RF_N: 18, 309 | RW_2_RF_2_N: 19, 310 | RW_2_RF_Shot_N: 20, 311 | RW_2_RF_End_N: 21, 312 | 313 | RW_2_MG_N: 22, 314 | RW_2_MG_2_N: 23, 315 | RW_2_MG_Shot_N: 24, 316 | RW_2_MG_End_N: 25, 317 | 318 | RW_2_BZ: 26, 319 | RW_2_BZ_2: 27, 320 | RW_2_BZ_Shot: 28, 321 | RW_2_BZ_End: 29, 322 | 323 | /// 左手1段目 324 | LW_2_RF_N: 30, 325 | LW_2_RF_2: 31, 326 | LW_2_RF_Shot: 32, 327 | LW_2_RF_End: 33, 328 | /// L→L とつないだ時の2段目 329 | LW_2_MG_N: 34, 330 | LW_2_MG_2: 35, 331 | LW_2_MG_Shot: 36, 332 | LW_2_MG_End: 37, 333 | /// L→R とつないだ時の2段目 334 | LW_2_BZ: 38, 335 | LW_2_BZ_2: 39, 336 | LW_2_BZ_Shot: 40, 337 | LW_2_BZ_End: 41, 338 | 339 | //SW/////////////////////////////////// 340 | SW_1: 42, 341 | SW_1_2: 43, 342 | SW_1_Shot: 44, 343 | SW_1_End: 45, 344 | 345 | SW_R: 46, 346 | SW_R_2: 47, 347 | SW_R_Shot: 48, 348 | SW_R_End: 49, 349 | 350 | SW_R_LGT: 50, 351 | SW_R_LGT_2: 51, 352 | SW_R_LGT_Shot: 52, 353 | SW_R_LGT_End: 53, 354 | 355 | SW_L: 54, 356 | SW_L_2: 55, 357 | SW_L_Shot: 56, 358 | SW_L_End: 57, 359 | 360 | SW_L_LGT: 58, 361 | SW_L_LGT_2: 59, 362 | SW_L_LGT_Shot: 60, 363 | SW_L_LGT_End: 61, 364 | 365 | SW_2_GG_DL: 62, 366 | SW_2_GG_DL_2: 63, 367 | SW_2_GG_DL_Shot: 64, 368 | SW_2_GG_DL_End: 65, 369 | 370 | SW_2_DL: 66, 371 | SW_2_DL_2: 67, 372 | SW_2_DL_Shot: 68, 373 | SW_2_DL_End: 69, 374 | 375 | down_dead: 70, 376 | 377 | maxval: 71, 378 | 379 | } 380 | 381 | //武器使用モーション 382 | cEnWeaponMotionID = 383 | { 384 | /// モーション指定時の中継のみに使用 385 | RW_2_Base: 0, 386 | 387 | RW_2_RF_N: 1, 388 | RW_2_RF_N_S: 2, 389 | RW_2_RF_2_N: 3, 390 | RW_2_RF_Shot_N: 4, 391 | RW_2_RF_End_N: 5, 392 | 393 | RW_2_RF_R: 6, 394 | RW_2_RF_R_S: 7, 395 | RW_2_RF_2_R: 8, 396 | RW_2_RF_Shot_R: 9, 397 | RW_2_RF_End_R: 10, 398 | 399 | RW_2_RF_L: 11, 400 | RW_2_RF_L_S: 12, 401 | RW_2_RF_2_L: 13, 402 | RW_2_RF_Shot_L: 14, 403 | RW_2_RF_End_L: 15, 404 | 405 | RW_2_MG_N: 16, 406 | RW_2_MG_N_S: 17, 407 | RW_2_MG_2_N: 18, 408 | RW_2_MG_Shot_N: 19, 409 | RW_2_MG_End_N: 20, 410 | 411 | RW_2_MG_R: 21, 412 | RW_2_MG_R_S: 22, 413 | RW_2_MG_2_R: 23, 414 | RW_2_MG_Shot_R: 24, 415 | RW_2_MG_End_R: 25, 416 | 417 | 418 | RW_2_MG_L: 26, 419 | RW_2_MG_L_S: 27, 420 | RW_2_MG_2_L: 28, 421 | RW_2_MG_Shot_L: 29, 422 | RW_2_MG_End_L: 30, 423 | 424 | 425 | RW_2_BZ: 31, 426 | RW_2_BZ_S: 32, 427 | RW_2_BZ_2: 33, 428 | RW_2_BZ_Shot: 34, 429 | RW_2_BZ_End: 35, 430 | 431 | //////////////////////////// 432 | LW_1: 36, 433 | LW_1_2: 37, 434 | LW_1_AT: 38, 435 | LW_1_End: 39, 436 | 437 | ///////////////////// 438 | SW_R: 40, 439 | SW_R_S: 41, 440 | SW_R_2: 42, 441 | SW_R_Shot: 43, 442 | SW_R_End: 44, 443 | 444 | SW_R_LGT: 45, 445 | SW_R_LGT_S: 46, 446 | SW_R_LGT_2: 47, 447 | SW_R_LGT_Shot: 48, 448 | SW_R_LGT_End: 49, 449 | 450 | SW_L: 50, 451 | SW_L_S: 51, 452 | SW_L_2: 52, 453 | SW_L_Shot: 53, 454 | SW_L_End: 54, 455 | 456 | SW_L_LGT: 55, 457 | SW_L_LGT_S: 56, 458 | SW_L_LGT_2: 57, 459 | SW_L_LGT_Shot: 58, 460 | SW_L_LGT_End: 59, 461 | 462 | SW_2_GG_DL: 60, 463 | SW_2_GG_DL_S: 61, 464 | SW_2_GG_DL_2: 62, 465 | SW_2_GG_DL_Shot: 63, 466 | SW_2_GG_DL_End: 64, 467 | 468 | SW_2_DL: 65, 469 | SW_2_DL_S: 66, 470 | SW_2_DL_2: 67, 471 | SW_2_DL_Shot: 68, 472 | SW_2_DL_End: 69, 473 | 474 | } 475 | 476 | /// 477 | /// プレイヤーのモーションステータス(大分類) 478 | /// 479 | cEnPlayer_ActStatus 480 | = { 481 | /// 立ち 482 | stand: 0, 483 | /// 歩き 484 | walk: 1, 485 | /// 地上ダッシュ 486 | dash: 2, 487 | /// 空中ダッシュ 488 | dash_J: 3, 489 | /// ステップ 490 | step: 4, 491 | /// ジャンプ 492 | Junp: 5, 493 | /// 下降 494 | J_Down: 6, 495 | /// 着地 496 | tach_Down: 7, 497 | 498 | /// よろけ 499 | dmg1: 8, 500 | /// ダウン開始 501 | down_1: 9, 502 | /// ダウン中 503 | down_2: 10, 504 | /// 起き上がり 505 | downRise: 11, 506 | 507 | /// 起き上がり 508 | dead: 12, 509 | 510 | 511 | val_Max: 13, 512 | 513 | } 514 | 515 | /// 516 | /// CPU専用的のモーション 517 | /// 518 | cEnEnemy_Motion 519 | = { 520 | stand: 0, 521 | Move_F: 1, 522 | Move_R: 2, 523 | Move_L: 3, 524 | Move_B: 4, 525 | 526 | W_1: 5, 527 | W_1_2: 6, 528 | W_1_Shot: 7, 529 | W_1_End: 8, 530 | 531 | W_2: 9, 532 | W_2_2: 10, 533 | W_2_Shot: 11, 534 | W_2_End: 12, 535 | 536 | dead_1: 13, 537 | 538 | maxval: 14, 539 | 540 | } 541 | 542 | 543 | barniaUsingFlg 544 | = { 545 | init: 0, 546 | UseStart: 1, 547 | UseEnd: 2, 548 | 549 | } 550 | 551 | 552 | /// 553 | /// ダッシュ状況 554 | /// 555 | lEnDashMode = 556 | { 557 | noDash: 0, 558 | FirstRoling: 1, 559 | DashFirstKasoku: 2, 560 | normalDash: 3, 561 | Dash_ending: 4, 562 | 563 | } 564 | 565 | //HUD上1行情報欄への表示種別 566 | cEnConsts_DisplayInfoType 567 | = { 568 | none: 0, //表示なし 569 | EnemyHit: 11, //敵に命中 570 | 571 | EmInfo_w: 21, //ステージ文字表示:Lv0 572 | 573 | ////////////////////// 574 | infCol_yel: 50, 575 | EnemyDestroy: 51, //敵を撃破 576 | 577 | PlayerDmg: 61, //プレイヤー被弾 578 | 579 | EmInfo_w2: 71, //ステージ文字表示:Lv1 580 | 581 | ////////////////////// 582 | infCol_Y_W: 100, //黄背景に白字 583 | PlayerDmg2: 101, //プレイヤー被弾 yaba 584 | 585 | ////////////////////// 586 | infCol_Red: 200, //黄背景に赤字 587 | PlayerDestroy: 201, //プレイヤー破壊 588 | 589 | EmInfo_r: 211, //ステージ文字表示:Lv2 590 | 591 | /////////////////// 592 | infCol_b: 800, 593 | EmInfo_b: 801, //クリア表示専用:青背景に白地 594 | } 595 | 596 | cEn_CommonVoiceType 597 | = { 598 | Rw_normal: 0, 599 | Rw_high: 1, 600 | 601 | Lw_nowmal: 10, 602 | 603 | Sw_Magnum: 100, 604 | Sw_Snype: 150, 605 | 606 | tgtContact:200, 607 | 608 | } -------------------------------------------------------------------------------- /js/clsConst.js: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | "use strict"; 4 | /// 90度 5 | var KD090 = Math.PI / 2; 6 | /// 89度(真横先回時、後ろ向きになりにくいようにしている) 7 | var KD089 = Math.PI / 2 - 0.01; 8 | 9 | /// 135度 10 | var KD135 = Math.PI / 2 + Math.PI / 4; 11 | /// 45度 12 | var KD045 = Math.PI / 4; 13 | /// 60度 14 | var KD060 = Math.PI / 3; 15 | /// 30度 16 | var KD030 = Math.PI / 6; 17 | 18 | /// 15度 19 | var KD015 = Math.PI / 12; 20 | 21 | /// 90度を加算するmatrix 22 | var mx_rol090 = new THREE.Matrix4(); 23 | mx_rol090.makeRotationFromEuler(new THREE.Euler(-KD090, 0, 0)); 24 | 25 | var qt_rol090 = new THREE.Quaternion(); 26 | qt_rol090.setFromEuler(new THREE.Euler(-KD090, 0, 0)); 27 | 28 | ///2Dスプライト としてのエフェクトの最大数 29 | var SpliteEfect_MAX = 50; 30 | ///3Dオブジェクトとしてのエフェクトの最大数 31 | var ObjectEfect_MAX = 100; 32 | ///出現する弾の最大数 33 | var StageShot_MAX = 100; 34 | ///マップに落っこちている武器の最大数 35 | var F_wapon_MAX = 50; 36 | ///定義する武器最大数 37 | var wapon_MAX = 100; 38 | ///定義済み武器数 39 | var now_Wapon_max = 35; 40 | ///敵の同時出現数 41 | var enemy_MAX = 50; 42 | ///乱数構造体最大数 43 | var rand_MAX =255; 44 | 45 | ///レーダーに映る敵の最大数 46 | var rader_img_max = 50; 47 | ///レーダー描画範囲(+-の片方) 48 | var rader_WH_max = 100; 49 | 50 | ///ログを取るキーの最大数 51 | var Key_Log_MAX = 30; 52 | ///プレイヤーの位置・角度情報のログ数 53 | var PlayerStruct_Log_MAX = 30; 54 | ///プレイヤーの位置・角度情報のログから「現在の」位置のインデックス指定値 55 | var NowKey_int = (Key_Log_MAX - 1); 56 | 57 | /// ダッシュ等のコマンド入力受け入れ時間 58 | var Command_AcceptTime1 = 15; 59 | 60 | ///小のけぞり無敵時間 61 | var invtime_1 = 18; 62 | ///大のけぞり無敵時間 63 | var invtime_2 = 30; 64 | ///ダウン時の無敵時間 65 | var invtime_3 = 45; 66 | 67 | /// 弾の射程・調整用倍率 68 | var Master_Shot_Renge_Rate = 1.5; //1.0; 69 | ///弾のスピード・調整用倍率 70 | var Master_Shot_Speed_Rate = 1.5; //0.1; 71 | ///弾の追尾修正角度・調整用倍率 72 | var Master_Shot_Kaku_Rate = 0.6; //0.45f 73 | 74 | //移動速度にかける倍率。全キャラにかかる 75 | var Master_Move_Rate = 2.0; 76 | 77 | //大きさ。全キャラにかける 78 | var Master_Chara_Size = 2.0; 79 | 80 | ///何フレーム遅延した位置をカメラが見るか 81 | var CAM_LAZY_OF_FRAME = 5; //3; 82 | //var CAM_LAZY_OF_FRAME = 1; 83 | 84 | ///障害物回避要の余裕を持たせるエリア 標準は100 85 | var hit_Pos_Dist = 100; 86 | ///プレイヤ同士の当たり判定距離(球範囲) 87 | var hit_Player_Dist = 8; 88 | ///1フレームに旋回できる最大値 攻撃時に使用 89 | var ROL_Y_FrameToRol_Max = 0.25; 90 | /// 武器拾得時の許容範囲 91 | var WpnGet_Tolerance = 10.0; 92 | 93 | /// 経過フレーム格納数 94 | var PassedFrameSu = 3; 95 | 96 | /// enumなどの最大値 97 | var em_Maxval = "Maxval"; 98 | 99 | /// 剣の残像用エフェクトモデルのボーン数 100 | var LW_bone_Max = 5; 101 | 102 | /// 剣の残像用エフェクトモデルのボーンにセットする値の過去ログ値 103 | var LW_bone_Set_Max = 20; 104 | 105 | /// 衝突判定の判定分割数 106 | var tgtModMax = 3; 107 | 108 | var ZanzoLog_Max = 30; 109 | /// 上の値-1をセットする 110 | var ZanzoLog_Max_Acsess = 29; 111 | 112 | /// X軸に90度回転するためのMatrix 113 | //var mx_X_90 = new THREE.Matrix4(); 114 | //mx_X_90.makeBasis(KD090, 0,0); 115 | 116 | // #region 画像セット関連定数 117 | 118 | /// 画像位置:戦闘時、RWの横位置 119 | var imgSet_BT_WpnBar_RW_X = 520; 120 | /// 画像位置:戦闘時、SWの横位置 121 | var imgSet_BT_WpnBar_SW_X = 120; 122 | 123 | /// 画像位置:戦闘時、Wpn1の縦位置 124 | var imgSet_BT_WpnBar_Wp1_Y = 401; 125 | /// 画像位置:戦闘時、Wpn2の横位置 126 | var imgSet_BT_WpnBar_Wp2_Y = 451; 127 | 128 | /// 画像位置:戦闘時、WpnのEnバーのMax幅 129 | var imgSet_BT_WpnBar_W = 158; 130 | /// 画像位置:戦闘時、WpnのEnバーのMax高 131 | var imgSet_BT_WpnBar_H = 13; 132 | 133 | 134 | /// メッセージ枠・背景用 135 | //var imgGetRec_imgW = new Rectangle(0, 0, 1, 1); 136 | 137 | /// メッセージ枠・メニューなどの1列表示用の小枠 138 | //var imgGetRec_msgWin_S = new Rectangle(40, 40, 220, 320); 139 | 140 | /// メッセージ枠・メインメッセージなどの複数行表示用の大枠 141 | //var imgGetRec_msgWin_L = new Rectangle(65, 390, 680, 195); 142 | 143 | /// メッセージウィンドウの共通背景色 144 | var Img_MsgWinBG_G = 64; 145 | 146 | // #endregion 147 | 148 | /// CPU位置取り用間合い値 149 | //public static float[] CpuSampleDist = new float[(int)cEnCPUThinkID_Dist.maxval]; 150 | 151 | // #region ミッション結果データテーブル用列名 152 | /// 撃墜した兵器名 153 | var ResDT_Col_UnitName = "UnitName"; 154 | /// 特殊名称(パイロット名など) 155 | var ResDT_Col_ExtName = "ExtName"; 156 | /// 単品コスト 157 | var ResDT_Col_Point = "Point"; 158 | /// 撃墜時間(フレーム) 159 | var ResDT_Col_Frame = "Frame"; 160 | /// 箇所(Vect3) 161 | var ResDT_Col_Pos = "Pos"; 162 | /// 使用武器ID 163 | var ResDT_Col_WpID = "WpID"; 164 | // #endregion 165 | 166 | var air_rol_Add = 0.05; -------------------------------------------------------------------------------- /js/index_ui.js: -------------------------------------------------------------------------------- 1 | //"use strict"; 2 | 3 | var _missionUrl = ""; 4 | 5 | function beginPointerLock() { 6 | if (ScreenUpdater.endingFlg) { return; } 7 | 8 | try { 9 | var body = document.body; 10 | body.requestPointerLock = body.requestPointerLock || body.mozRequestPointerLock || body.webkitRequestPointerLock; 11 | body.requestPointerLock(); 12 | } catch (ex) { } 13 | } 14 | 15 | function exitPointerLock() { 16 | try { 17 | var body = document.body; 18 | body.exitPointerLock = body.exitPointerLock || body.mozExitPointerLock || body.webkitExitPointerLock; 19 | body.exitPointerLock(); 20 | } catch (ex) { 21 | 22 | } 23 | } 24 | 25 | 26 | 27 | //言語変更 28 | function changeLang(_flg) { 29 | if (_flg == undefined || _flg == -1) { 30 | oreCommon.nowLang += 1; 31 | if (oreCommon.nowLang > 1) { oreCommon.nowLang = 0; } 32 | } 33 | else { 34 | oreCommon.nowLang = _flg; 35 | } 36 | 37 | //ボタンの色変更 38 | setEnable_Btn('langbtn_jp', _flg === 0); 39 | setEnable_Btn('langbtn_jp2', _flg === 0); 40 | 41 | setEnable_Btn('langbtn_en', _flg === 1); 42 | setEnable_Btn('langbtn_en2', _flg === 1); 43 | 44 | //要素の表示:非表示 45 | //チュートリアルテーブル 46 | setDisplay_elm('tb_tu_j', _flg === 0); 47 | setDisplay_elm('tb_tu_e', _flg === 1); 48 | 49 | setDisplay_elm('tb_tu2_j', _flg === 0); 50 | setDisplay_elm('tb_tu2_e', _flg === 1); 51 | //ミッションテーブル 52 | setDisplay_elm('tb_missionList_j', _flg === 0); 53 | setDisplay_elm('tb_missionList_e', _flg === 1); 54 | setDisplay_elm('launch_j', _flg === 0); 55 | setDisplay_elm('launch_e', _flg === 1); 56 | 57 | } 58 | 59 | //ボタンの選択/非選択のクラス指定切り替え 60 | function setEnable_Btn(_id, _flg) { 61 | var elm = document.getElementById(_id); 62 | if (elm == null) { return; } 63 | 64 | if (_flg) { 65 | elm.className = 'select'; 66 | } else { 67 | elm.className = ''; 68 | } 69 | } 70 | 71 | //要素の表示/非表示切り替え(display要素) 72 | function setDisplay_elm(_id, _flg) { 73 | if (_flg) { 74 | document.getElementById(_id).style.display = ""; 75 | } else { 76 | document.getElementById(_id).style.display = "none"; 77 | } 78 | } 79 | 80 | //要素の表示/非表示切り替え(Visible要素) 81 | function setVisible_elm(_id, _flg) { 82 | if (_flg) { 83 | document.getElementById(_id).style.visibility = "visible"; 84 | } else { 85 | document.getElementById(_id).style.visibility = "hidden"; 86 | } 87 | } 88 | 89 | 90 | //ガチスタート 91 | function start_mission() { 92 | closeDialog('mission'); 93 | setDisplay_elm("beginButton", false); 94 | if (!oreCommon.beginFlg) { 95 | //document.getElementById("beginButton").style.visibility = "hidden"; 96 | oreCommon.beginFlg = true; 97 | document.getElementById("pinterLockUse").style.visibility = "visible"; 98 | oreCommon.downloadScript(_missionUrl, null); 99 | } 100 | } 101 | 102 | function messageSkip() { 103 | ScreenUpdater.nowSceneID = ScreenUpdater.NextSceneID; 104 | ScreenUpdater.initScreenMsg(); 105 | ScreenUpdater.viewEndingScreen(); 106 | } 107 | 108 | //プレイ可能ミッションリストをDLする。 109 | function getMissionList() { 110 | oreCommon.beginFlg = false; 111 | oreCommon.downloadScript('js/missionlist.js', null); 112 | ShowDialog('mission'); 113 | } 114 | 115 | function game_Restart() { 116 | testStageScript.stageInit_reStart(); 117 | setDisplay_elm("closediv_restart", false); 118 | closeDialog('Staff'); 119 | } 120 | 121 | function game_end() { 122 | masterInitting(); 123 | closeDialog('Staff'); 124 | } 125 | 126 | function closeDialog(_dialog) { 127 | setDisplay_elm("dialogback", false); 128 | setDisplay_elm("dialog_" + _dialog, false); 129 | /* 130 | document.getElementById().style.display = "none"; 131 | document.getElementById(.style.display = "none"; 132 | */ 133 | document.getElementById("dialog_" + _dialog).className = ''; 134 | document.getElementById("dialogBody_" + _dialog).className = ''; 135 | 136 | oreCommon.PauseFlg = false; 137 | } 138 | 139 | function ShowDialog(_dialog) { 140 | setDisplay_elm("dialogback", true); 141 | setDisplay_elm("dialog_" + _dialog, true); 142 | 143 | document.getElementById("dialog_" + _dialog).className = 'active'; 144 | document.getElementById("dialogBody_" + _dialog).className = 'active'; 145 | oreCommon.PauseFlg = true; 146 | } 147 | 148 | function togulRestart(_isEnding) { 149 | 150 | setDisplay_elm("closediv_restart", _isEnding); 151 | setDisplay_elm("closediv_staff", !_isEnding); 152 | setDisplay_elm("beginButton", !_isEnding); 153 | /* 154 | if(_isEnding){ 155 | document.getElementById("closediv_restart").style.display = "inherit"; 156 | document.getElementById("closediv_staff").style.display = "none"; 157 | document.getElementById("beginButton").style.display = "none"; 158 | }else{ 159 | document.getElementById("beginButton").style.display = "inherit"; 160 | document.getElementById("closediv_staff").style.display = "inherit"; 161 | document.getElementById("closediv_restart").style.display = "none"; 162 | } 163 | */ 164 | } 165 | 166 | function masterInitting() { 167 | try { 168 | if (testStageScript != null) { 169 | testStageScript = {}; 170 | delete testStageScript; //strictモードがOnだと、 deleteできないんだってさ…うーん微妙(まぁこのdeleteにどのくらいの意味があるか… 171 | } 172 | } catch (e) { } 173 | 174 | try { 175 | threeComps.destructor(); 176 | } catch (e) { } 177 | 178 | togulRestart(false); 179 | beginStageInit_Master(); 180 | } 181 | 182 | /////////////////////////// 183 | -------------------------------------------------------------------------------- /js/libs/stats.min.js: -------------------------------------------------------------------------------- 1 | // stats.js - http://github.com/mrdoob/stats.js 2 | var Stats=function(){function h(a){c.appendChild(a.dom);return a}function k(a){for(var d=0;de+1E3&&(r.update(1E3*a/(c-e),100),e=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){g=this.end()},domElement:c,setMode:k}}; 4 | Stats.Panel=function(h,k,l){var c=Infinity,g=0,e=Math.round,a=e(window.devicePixelRatio||1),r=80*a,f=48*a,t=3*a,u=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement("canvas");q.width=r;q.height=f;q.style.cssText="width:80px;height:48px";var b=q.getContext("2d");b.font="bold "+9*a+"px Helvetica,Arial,sans-serif";b.textBaseline="top";b.fillStyle=l;b.fillRect(0,0,r,f);b.fillStyle=k;b.fillText(h,t,u);b.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(f, 5 | v){c=Math.min(c,f);g=Math.max(g,f);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=k;b.fillText(e(f)+" "+h+" ("+e(c)+"-"+e(g)+")",t,u);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,e((1-f/v)*p))}}};"object"===typeof module&&(module.exports=Stats); 6 | -------------------------------------------------------------------------------- /js/missionlist.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | 4 | 5 | var tb_elm_j = null; 6 | var tb_elm_e = null; 7 | 8 | var missionList = { 9 | "0": ["テストステージ", "Test Stage", "Easy", "Easy", "墜落した輸送機を捜索・救助せよ", "Conbat Rescue", "true", "js/stagefile/scriptList_testStage.js"], 10 | "1": ["ダミーステージ", "Dummy Stage", "Hard", "Hard", "選択できまへん", "disabled test", "false", ""], 11 | }; 12 | 13 | 14 | //////////////////////////////////// 15 | makeMissionList(); 16 | 17 | //テーブルにミッション一覧を割り当てる。スクロール?知らんな。 18 | function makeMissionList() { 19 | tb_elm_j = document.getElementById("tb_missionList_j"); 20 | tb_elm_e = document.getElementById("tb_missionList_e"); 21 | 22 | //一度列を全削除 23 | for (var i = 0; i < tb_elm_j.rows.length;) { 24 | tb_elm_j.deleteRow(0); 25 | tb_elm_e.deleteRow(0); 26 | } 27 | 28 | var keys = Object.keys(missionList); 29 | for (var i = 0; i < keys.length; i++) { 30 | addMissionRow(i, 0, tb_elm_j); 31 | addMissionRow(i, 1, tb_elm_e); 32 | } 33 | 34 | _missionUrl = missionList[0][missionList[0].length - 1]; 35 | } 36 | 37 | //ミッションリスト行をHTMLのTableに追加する 38 | function addMissionRow(i, _engFlg, _table) { 39 | var row = _table.insertRow(-1); 40 | // セルの挿入 41 | var cell1 = row.insertCell(-1); 42 | var cell2 = row.insertCell(-1); 43 | var cell3 = row.insertCell(-1); 44 | // セルの内容入力 45 | cell1.insertAdjacentHTML("beforeend", missionList[i][0 + _engFlg]); 46 | cell2.insertAdjacentHTML("beforeend", missionList[i][2 + _engFlg]); 47 | cell3.insertAdjacentHTML("beforeend", missionList[i][4 + _engFlg]); 48 | 49 | if (i == 0) { 50 | row.classList.add('tr_mission_sel'); 51 | } else { 52 | row.classList.add('tr_mission_unsel'); 53 | } 54 | } 55 | 56 | 57 | //選択した行以外の色を変えたりできればいいな 58 | function selectMissionRow(_r, _engFlg, _table) { 59 | 60 | if (missionList[0][missionList[_r].length - 1] == "") { 61 | return; 62 | } 63 | 64 | var keys = Object.keys(missionList); 65 | for (var i = 0; i < keys.length; i++) { 66 | //列の色を変える。だがどうやって。 67 | } 68 | 69 | } -------------------------------------------------------------------------------- /js/objectSetter/ObjSetter_Base.js: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | "use strict"; 4 | //操作オブジェクトの元となるクラス 5 | //いわばC#のabstructクラスっぽいことをやってみたかった 6 | function ObjectSetter(name) 7 | { 8 | this.name = name; 9 | this.modelObject = null; 10 | 11 | this.AnimationSetInfo = null; 12 | this.AnimationKeys = null; 13 | 14 | this.animationController = null; 15 | 16 | this.BarniaEffectBone = []; 17 | this.BulletEffectBone = []; 18 | 19 | this.mountWpnBone = []; 20 | 21 | this.allBoneAnimation = new Array(); 22 | this.upBodyAnimation = new Array(); 23 | 24 | /// CPU思考 25 | //this.CpuParam = new strCpuParams(); 26 | 27 | //各「機体」で持っているパラメータ 28 | this.meca_Stat_Const_f = []; 29 | 30 | this.BoundingLinkers = [new BoundingLinker()]; 31 | } 32 | 33 | ObjectSetter.prototype = {}; 34 | //クラスメソッドの定義 35 | ObjectSetter.prototype.init = function () { 36 | 37 | }; 38 | 39 | ObjectSetter.prototype.loadComplete = function () { }; 40 | 41 | /////////////////////////////////// 42 | 43 | //ボーンに併せて動くアタリ判定球(BondingSphere) 44 | function BoundingLinker(_bone, _radius, _transPoint) { 45 | this.LinkBone = _bone != undefined ? _bone : null; 46 | this.Radius = _radius != undefined ? _radius : 10; 47 | this.transPoint = _transPoint != undefined ? _transPoint : new THREE.Vector3(0,5,0); 48 | 49 | this.BoundingSphere = new THREE.Sphere(new THREE.Vector3(), _radius); 50 | 51 | this.tmpV3 = new THREE.Vector3(); 52 | } 53 | 54 | BoundingLinker.prototype.Update = function (_pos) { 55 | if (this.LinkBone == null) { 56 | this.BoundingSphere.set(_pos, this.Radius); 57 | } 58 | else { 59 | this.tmpV3.copy(this.transPoint); 60 | this.LinkBone.localToWorld(this.tmpV3); 61 | this.BoundingSphere.set(this.tmpV3, this.Radius); 62 | } 63 | } 64 | 65 | //////////////////////// 66 | 67 | 68 | var inherits = function (childCtor, parentCtor) { 69 | // 子クラスの prototype のプロトタイプとして 親クラスの 70 | // prototype を指定することで継承が実現される 71 | Object.setPrototypeOf(childCtor.prototype, parentCtor.prototype); 72 | }; -------------------------------------------------------------------------------- /js/objectSetter/obj_AAA1.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | "use strict"; 7 | //操作オブジェクトの元となるクラス。 8 | //これは「1モデル(キャラクター1種類)」毎に用意され、 9 | //各能力値などもここに格納されている。 10 | //これも、操作キャラが増える度にインスタンスは【作られない】 ‥はず 11 | function Obj_AAA_1() { 12 | ObjectSetter.call(this, "AAA"); 13 | } 14 | 15 | //オブジェクトのロードメソッド 16 | Obj_AAA_1.prototype.load = function (object) { 17 | 18 | var self = this; 19 | 20 | self.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 21 | self.modelObject.scale.setScalar(Master_Chara_Size); 22 | 23 | self.AnimationSetInfo = null; 24 | self.AnimationKeys = null 25 | 26 | self.name = "M503-AAA"; 27 | //能力値セット 28 | self.meca_Stat_Const_f = []; 29 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_up] = 0.005;//歩行速度上昇値 30 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_max] = 0.25; //歩行速度最大値 31 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_up] = 0.3; //ダッシュ速度上昇値 32 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_max] = 1.5; //ダッシュ速度最大値 33 | self.meca_Stat_Const_f[cEnConsts_ParamF.body_height] = 3.5 * Master_Chara_Size; //地上からの機体の中心・高さ 34 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_stand] = 0.025; //機体の回転速度・立ち 35 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_dash] = 0.015; //期待の回転速度・ダッシュ 36 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_up] = 0.04; //ジャンプの上昇速度 37 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_max] = 0.25; //ジャンプ上昇速度最大値 38 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_up] = 0.05; //空中ダッシュ(斜めジャンプ)の速度上昇値 39 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_max] = 0.8; //空中ダッシュ(斜めジャンプ)の速度最大値 40 | self.meca_Stat_Const_f[cEnConsts_ParamF.junp_Kotyoku] = 30; //ジャンプ開始時の初期硬直 41 | 42 | self.meca_Stat_Const_f[cEnConsts_ParamF.life_max] = 555; //HP最大値 43 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_max] = 1000; //ゲイン最大値 44 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dash] = 8; //ダッシュ時のゲイン使用値 45 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junp] = 10; //ジャンプ時のゲイン使用値 46 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junpfast] = 100; //ジャンプ初期時のゲイン使用値 47 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_regeinS] = 8; //通常時のゲイン回復値 48 | self.meca_Stat_Const_f[cEnConsts_ParamF.Stand_Brake] = 0.7; //摩擦係数のようなもの:立ちからの加速の遅さ 49 | self.meca_Stat_Const_f[cEnConsts_ParamF.ext_brake] = 0.85; //ダッシュ後のブレーキ性能 50 | 51 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dashFast] = 100; //ダッシュに最低限必要なEn残量 52 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_KotyokuTime] = 15; //ダッシュ開始時の硬直フレーム時間 53 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoostTime] = 25; //ダッシュ初期時のブースト時間(実質、上の硬直時間を引いた数だけ適用 54 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoost] = 0.5; //ダッシュ開始時の所期ブースト加速度 55 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_R] = (95 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 右 56 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_L] = -(105 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 左 57 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dmg_Tolerance] = 3.5; //被ダメ⇒よろけまでの値 一番ダウンしないヤツで4~5くらい? 58 | self.meca_Stat_Const_f[cEnConsts_ParamF.Don_Tolerance] = 6; //被ダメ⇒ダウンまでの値 59 | self.meca_Stat_Const_f[cEnConsts_ParamF.SevTime] = 15; //LWで付加されるセービングフレーム数 60 | self.meca_Stat_Const_f[cEnConsts_ParamF.Sev_Power] = 0.5; //LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 61 | self.meca_Stat_Const_f[cEnConsts_ParamF.savHalfLockTime] = 45; //壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 62 | self.meca_Stat_Const_f[cEnConsts_ParamF.LockRange] = 4500 * Master_Shot_Renge_Rate; // ロック可能距離 63 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_wpnFact] = 0.8; //武器装備時、武器の重さがEn制限に与える倍数 大きいほど影響を受ける 64 | 65 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_short] = 60; // ステップの最低時間 66 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_End] = 20; //ステップの終了中のスキ時間 67 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_Step] = 150; //ステップに最低限必要なEn残量 68 | 69 | //self.BarniaEffectBone.push(self.modelObject.skeleton.bones[37]); 70 | 71 | self.UpBodyBone = self.modelObject.skeleton.bones[2]; //X軸も向かせたいなら 3 72 | if (self.UpBodyBone.appendMatrix == undefined) { 73 | self.UpBodyBone.appendMatrix = new THREE.Matrix4(); 74 | } 75 | self.UpBodyBone.BaseMatrix = new THREE.Matrix4(); 76 | self.UpBodyBone.BaseMatrix.copy(self.UpBodyBone.matrix); 77 | self.UpBodyBone.BaseMatrix.elements[5] = 1.0; 78 | self.UpBodyBone.BaseMatrix.elements[10] = 1.0; 79 | self.UpBodyBone.BaseMatrix.elements[13] *= -1.0; 80 | self.UpBodyBone.BaseMatrix.elements[14] *= -1.0; 81 | 82 | self.mountWpnBone[0] = self.modelObject.skeleton.bones[3]; 83 | 84 | if (self.loadComplete != null) { 85 | self.loadComplete(); 86 | } 87 | 88 | } 89 | 90 | 91 | inherits(Obj_AAA_1, ObjectSetter); 92 | 93 | /////////////////////////////////////////////////////// 94 | /* 95 | function Animater_SSR06() 96 | { 97 | Animater.call(this); 98 | } 99 | inherits(Animater_SSR06, Animater); 100 | 101 | //古くて使ってない? 102 | Animater_SSR06.prototype.createAnimation = function( _modelobj, _animation) 103 | { 104 | this.animationController = new XAnimationObject(); 105 | 106 | var keys = Object.keys(_animation); 107 | //全身を使うアニメーション 108 | this.animationController.set(_modelobj, _animation[keys[0]], keys[0]); 109 | //上半身のみに適用するアニメーション 110 | this.animationController.addAnimation(_animation[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 111 | { 112 | this.animationController.createAnimation("stand", keys[0], 10, 11, true); 113 | this.animationController.createAnimation("wark", keys[0], 50, 82, true); 114 | this.animationController.createAnimation("back", keys[0], 100, 130, true); 115 | this.animationController.createAnimation("dash", keys[0], 150, 180, true); 116 | this.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 117 | this.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 118 | 119 | this.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 120 | this.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 121 | } 122 | } 123 | */ -------------------------------------------------------------------------------- /js/objectSetter/obj_AAA2.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | "use strict"; 7 | //操作オブジェクトの元となるクラス。 8 | //これは「1モデル(キャラクター1種類)」毎に用意され、 9 | //各能力値などもここに格納されている。 10 | //これも、操作キャラが増える度にインスタンスは【作られない】 ‥はず 11 | function Obj_AAA_2() 12 | { 13 | ObjectSetter.call(this, "Tank"); 14 | } 15 | 16 | //オブジェクトのロードメソッド 17 | Obj_AAA_2.prototype.load = function (object) { 18 | 19 | var self = this; 20 | 21 | self.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 22 | self.modelObject.scale.setScalar(Master_Chara_Size); 23 | 24 | self.AnimationSetInfo = null; 25 | self.AnimationKeys = null 26 | 27 | self.name = "M503-ACA"; 28 | //能力値セット 29 | self.meca_Stat_Const_f = []; 30 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_up] = 0.01;//歩行速度上昇値 31 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_max] = 0.25; //歩行速度最大値 32 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_up] = 0.3; //ダッシュ速度上昇値 33 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_max] = 1.5; //ダッシュ速度最大値 34 | self.meca_Stat_Const_f[cEnConsts_ParamF.body_height] = 3.5 * Master_Chara_Size; //地上からの機体の中心・高さ 35 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_stand] = 0.025; //機体の回転速度・立ち 36 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_dash] = 0.015; //期待の回転速度・ダッシュ 37 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_up] = 0.04; //ジャンプの上昇速度 38 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_max] = 0.25; //ジャンプ上昇速度最大値 39 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_up] = 0.05; //空中ダッシュ(斜めジャンプ)の速度上昇値 40 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_max] = 0.8; //空中ダッシュ(斜めジャンプ)の速度最大値 41 | self.meca_Stat_Const_f[cEnConsts_ParamF.junp_Kotyoku] = 30; //ジャンプ開始時の初期硬直 42 | 43 | self.meca_Stat_Const_f[cEnConsts_ParamF.life_max] = 1255; //HP最大値 44 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_max] = 1000; //ゲイン最大値 45 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dash] = 8; //ダッシュ時のゲイン使用値 46 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junp] = 10; //ジャンプ時のゲイン使用値 47 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junpfast] = 100; //ジャンプ初期時のゲイン使用値 48 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_regeinS] = 8; //通常時のゲイン回復値 49 | self.meca_Stat_Const_f[cEnConsts_ParamF.Stand_Brake] = 0.7; //摩擦係数のようなもの:立ちからの加速の遅さ 50 | self.meca_Stat_Const_f[cEnConsts_ParamF.ext_brake] = 0.85; //ダッシュ後のブレーキ性能 51 | 52 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dashFast] = 100; //ダッシュに最低限必要なEn残量 53 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_KotyokuTime] = 15; //ダッシュ開始時の硬直フレーム時間 54 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoostTime] = 25; //ダッシュ初期時のブースト時間(実質、上の硬直時間を引いた数だけ適用 55 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoost] = 0.5; //ダッシュ開始時の所期ブースト加速度 56 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_R] = (95 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 右 57 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_L] = -(105 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 左 58 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dmg_Tolerance] = 3.5; //被ダメ⇒よろけまでの値 一番ダウンしないヤツで4~5くらい? 59 | self.meca_Stat_Const_f[cEnConsts_ParamF.Don_Tolerance] = 6; //被ダメ⇒ダウンまでの値 60 | self.meca_Stat_Const_f[cEnConsts_ParamF.SevTime] = 15; //LWで付加されるセービングフレーム数 61 | self.meca_Stat_Const_f[cEnConsts_ParamF.Sev_Power] = 0.5; //LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 62 | self.meca_Stat_Const_f[cEnConsts_ParamF.savHalfLockTime] = 45; //壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 63 | self.meca_Stat_Const_f[cEnConsts_ParamF.LockRange] = 4500 * Master_Shot_Renge_Rate; // ロック可能距離 64 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_wpnFact] = 0.8; //武器装備時、武器の重さがEn制限に与える倍数 大きいほど影響を受ける 65 | 66 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_short] = 60; // ステップの最低時間 67 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_End] = 20; //ステップの終了中のスキ時間 68 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_Step] = 150; //ステップに最低限必要なEn残量 69 | 70 | //self.BarniaEffectBone.push(self.modelObject.skeleton.bones[37]); 71 | 72 | self.UpBodyBone = self.modelObject.skeleton.bones[2]; //X軸も向かせたいなら 3 73 | if(self.UpBodyBone.appendMatrix == undefined){ 74 | self.UpBodyBone.appendMatrix = new THREE.Matrix4(); 75 | } 76 | self.UpBodyBone.BaseMatrix = new THREE.Matrix4(); 77 | self.UpBodyBone.BaseMatrix.copy(self.UpBodyBone.matrix); 78 | self.UpBodyBone.BaseMatrix.elements[5] = 1.0; 79 | self.UpBodyBone.BaseMatrix.elements[10] = 1.0; 80 | self.UpBodyBone.BaseMatrix.elements[13] *= -1.0; 81 | self.UpBodyBone.BaseMatrix.elements[14] *= -1.0; 82 | 83 | self.mountWpnBone[0] = self.modelObject.skeleton.bones[3]; 84 | 85 | if (self.loadComplete != null) { 86 | self.loadComplete(); 87 | } 88 | 89 | } 90 | 91 | 92 | inherits(Obj_AAA_2, ObjectSetter); 93 | 94 | /////////////////////////////////////////////////////// 95 | /* 96 | function Animater_SSR06() 97 | { 98 | Animater.call(this); 99 | } 100 | inherits(Animater_SSR06, Animater); 101 | 102 | //古くて使ってない? 103 | Animater_SSR06.prototype.createAnimation = function( _modelobj, _animation) 104 | { 105 | this.animationController = new XAnimationObject(); 106 | 107 | var keys = Object.keys(_animation); 108 | //全身を使うアニメーション 109 | this.animationController.set(_modelobj, _animation[keys[0]], keys[0]); 110 | //上半身のみに適用するアニメーション 111 | this.animationController.addAnimation(_animation[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 112 | { 113 | this.animationController.createAnimation("stand", keys[0], 10, 11, true); 114 | this.animationController.createAnimation("wark", keys[0], 50, 82, true); 115 | this.animationController.createAnimation("back", keys[0], 100, 130, true); 116 | this.animationController.createAnimation("dash", keys[0], 150, 180, true); 117 | this.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 118 | this.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 119 | 120 | this.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 121 | this.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 122 | } 123 | } 124 | */ -------------------------------------------------------------------------------- /js/objectSetter/obj_BarniaObj.js: -------------------------------------------------------------------------------- 1 | 2 | "use strict"; 3 | 4 | function Obj_BarniaObj(object) { 5 | 6 | this.nowUseMode = "dmy"; 7 | 8 | this.name = "Barnia"; 9 | this.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 10 | 11 | this.ModelObject = this.modelObject; 12 | 13 | this.AnimationSetInfo = object.AnimationSetInfo; 14 | this.AnimationKeys = Object.keys(object.AnimationSetInfo); 15 | 16 | //アニメーションコントローラーをセット&作成する 17 | var keys = Object.keys(object.AnimationSetInfo); 18 | this.animationController = new XAnimationObject(); 19 | this.allBoneAnimation = new Array(); 20 | this.upBodyAnimation = new Array(); 21 | //全身を使うアニメーション 22 | this.animationController.set(this.modelObject, object.AnimationSetInfo[keys[0]], keys[0]); 23 | //上半身のみに適用するアニメーション 24 | //self.animationController.addAnimation(object.AnimationSetInfo[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 25 | this.animationController.createAnimation("init", keys[0], 9, 10, false, true); 26 | this.animationController.createAnimation("use", keys[0], 10, 35, false, true); 27 | this.animationController.createAnimation("stop", keys[0], 36, 50, false, true); 28 | if (this.loadComplete != null) { 29 | this.loadComplete(); 30 | } 31 | //this.nowMotion_base = ""; 32 | this.Animater = this.animationController; 33 | this.ModelObject.castShadow = false; 34 | 35 | //質感セット 36 | for (var i = 0; i < this.ModelObject.material.materials.length; i++) { 37 | this.ModelObject.material.materials[i].side = THREE.DoubleSide; 38 | this.ModelObject.material.materials[i].color.set(0x1133ff); 39 | this.ModelObject.material.materials[i].specular.set(0x000000); 40 | this.ModelObject.material.materials[i].shininess = 0; 41 | this.ModelObject.material.materials[i].reflectivity = 0; 42 | //this.ModelObject.material.materials[0].emissive.set(0x5555ff); 43 | this.ModelObject.material.materials[i].transparent = true; 44 | this.ModelObject.material.materials[i].depthTest = true; 45 | this.ModelObject.material.materials[i].blending = THREE.AdditiveBlending; 46 | this.ModelObject.material.materials[i].depthFunc = THREE.NeverDepth; 47 | this.ModelObject.material.materials[i].depthWrite = false; 48 | 49 | } 50 | } 51 | 52 | Obj_BarniaObj.prototype.SetUse = function (_flg) { 53 | var self = this; 54 | if (_flg != self.nowUseMode) { 55 | if (_flg) { 56 | self.Animater.beginAnimation("use", true); 57 | } else { 58 | self.Animater.beginAnimation("stop", true); 59 | } 60 | } 61 | self.nowUseMode = _flg; 62 | 63 | if (_flg) { 64 | //self.animationController.ActionInfo["use"].nowMorphPower = 1.0; 65 | self.modelObject.skeleton.bones[0].appendMatrix.makeRotationZ(ScreenUpdater.scene_spanTime % 100 * 0.01); 66 | } 67 | 68 | }; 69 | -------------------------------------------------------------------------------- /js/objectSetter/obj_Hover.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | "use strict"; 7 | //操作オブジェクトの元となるクラス。 8 | //これは「1モデル(キャラクター1種類)」毎に用意され、 9 | //各能力値などもここに格納されている。 10 | //これも、操作キャラが増える度にインスタンスは【作られない】 ‥はず 11 | function Obj_Hover() 12 | { 13 | ObjectSetter.call(this, "Hover"); 14 | } 15 | 16 | //オブジェクトのロードメソッド 17 | Obj_Hover.prototype.load = function (object) { 18 | 19 | var self = this; 20 | 21 | self.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 22 | 23 | self.AnimationSetInfo = null; 24 | self.AnimationKeys = null 25 | 26 | self.name = "HMV-22C"; 27 | //能力値セット 28 | self.meca_Stat_Const_f = []; 29 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_up] = 0.01;//歩行速度上昇値 30 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_max] = 0.3; //歩行速度最大値 31 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_up] = 0.3; //ダッシュ速度上昇値 32 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_max] = 1.5; //ダッシュ速度最大値 33 | self.meca_Stat_Const_f[cEnConsts_ParamF.body_height] = 6.5; //地上からの機体の中心・高さ 34 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_stand] = 0.025; //機体の回転速度・立ち 35 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_dash] = 0.015; //期待の回転速度・ダッシュ 36 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_up] = 0.04; //ジャンプの上昇速度 37 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_max] = 0.25; //ジャンプ上昇速度最大値 38 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_up] = 0.05; //空中ダッシュ(斜めジャンプ)の速度上昇値 39 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_max] = 0.8; //空中ダッシュ(斜めジャンプ)の速度最大値 40 | self.meca_Stat_Const_f[cEnConsts_ParamF.junp_Kotyoku] = 30; //ジャンプ開始時の初期硬直 41 | 42 | self.meca_Stat_Const_f[cEnConsts_ParamF.life_max] = 250; //HP最大値 43 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_max] = 1000; //ゲイン最大値 44 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dash] = 8; //ダッシュ時のゲイン使用値 45 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junp] = 10; //ジャンプ時のゲイン使用値 46 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junpfast] = 100; //ジャンプ初期時のゲイン使用値 47 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_regeinS] = 8; //通常時のゲイン回復値 48 | self.meca_Stat_Const_f[cEnConsts_ParamF.Stand_Brake] = 0.7; //摩擦係数のようなもの:立ちからの加速の遅さ 49 | self.meca_Stat_Const_f[cEnConsts_ParamF.ext_brake] = 0.85; //ダッシュ後のブレーキ性能 50 | 51 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dashFast] = 100; //ダッシュに最低限必要なEn残量 52 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_KotyokuTime] = 15; //ダッシュ開始時の硬直フレーム時間 53 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoostTime] = 25; //ダッシュ初期時のブースト時間(実質、上の硬直時間を引いた数だけ適用 54 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoost] = 0.5; //ダッシュ開始時の所期ブースト加速度 55 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_R] = (95 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 右 56 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_L] = -(105 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 左 57 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dmg_Tolerance] = 3.5; //被ダメ⇒よろけまでの値 一番ダウンしないヤツで4~5くらい? 58 | self.meca_Stat_Const_f[cEnConsts_ParamF.Don_Tolerance] = 6; //被ダメ⇒ダウンまでの値 59 | self.meca_Stat_Const_f[cEnConsts_ParamF.SevTime] = 15; //LWで付加されるセービングフレーム数 60 | self.meca_Stat_Const_f[cEnConsts_ParamF.Sev_Power] = 0.5; //LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 61 | self.meca_Stat_Const_f[cEnConsts_ParamF.savHalfLockTime] = 45; //壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 62 | self.meca_Stat_Const_f[cEnConsts_ParamF.LockRange] = 4500 * Master_Shot_Renge_Rate; // ロック可能距離 63 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_wpnFact] = 0.8; //武器装備時、武器の重さがEn制限に与える倍数 大きいほど影響を受ける 64 | 65 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_short] = 60; // ステップの最低時間 66 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_End] = 20; //ステップの終了中のスキ時間 67 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_Step] = 150; //ステップに最低限必要なEn残量 68 | 69 | //self.BarniaEffectBone.push(self.modelObject.skeleton.bones[37]); 70 | 71 | 72 | if (self.loadComplete != null) { 73 | self.loadComplete(); 74 | } 75 | 76 | } 77 | 78 | 79 | inherits(Obj_Hover, ObjectSetter); 80 | 81 | /////////////////////////////////////////////////////// 82 | /* 83 | function Animater_SSR06() 84 | { 85 | Animater.call(this); 86 | } 87 | inherits(Animater_SSR06, Animater); 88 | 89 | //古くて使ってない? 90 | Animater_SSR06.prototype.createAnimation = function( _modelobj, _animation) 91 | { 92 | this.animationController = new XAnimationObject(); 93 | 94 | var keys = Object.keys(_animation); 95 | //全身を使うアニメーション 96 | this.animationController.set(_modelobj, _animation[keys[0]], keys[0]); 97 | //上半身のみに適用するアニメーション 98 | this.animationController.addAnimation(_animation[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 99 | { 100 | this.animationController.createAnimation("stand", keys[0], 10, 11, true); 101 | this.animationController.createAnimation("wark", keys[0], 50, 82, true); 102 | this.animationController.createAnimation("back", keys[0], 100, 130, true); 103 | this.animationController.createAnimation("dash", keys[0], 150, 180, true); 104 | this.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 105 | this.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 106 | 107 | this.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 108 | this.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 109 | } 110 | } 111 | */ -------------------------------------------------------------------------------- /js/objectSetter/obj_SSR06.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | "use strict"; 7 | //操作オブジェクトの元となるクラス。 8 | //これは「1モデル(キャラクター1種類)」毎に用意され、 9 | //各能力値などもここに格納されている。 10 | //これも、操作キャラが増える度にインスタンスは【作られない】 ‥はず 11 | function Obj_SSR06() { 12 | ObjectSetter.call(this, "SSR06"); 13 | } 14 | 15 | //オブジェクトのロードメソッド 16 | Obj_SSR06.prototype.load = function (object) { 17 | 18 | var self = this; 19 | 20 | self.name = "SSR-006"; 21 | self.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 22 | self.modelObject.scale.multiplyScalar(Master_Chara_Size); 23 | //self.modelObject.scale.set(-Master_Chara_Size, Master_Chara_Size, Master_Chara_Size); 24 | 25 | self.AnimationSetInfo = object.AnimationSetInfo; 26 | self.AnimationKeys = Object.keys(object.AnimationSetInfo); 27 | 28 | //武器装備箇所のセット 29 | for (var i = 0; i < self.modelObject.skeleton.bones.length; i++) { 30 | if (self.modelObject.skeleton.bones[i].name.indexOf('R_Wpn2') > -1) { 31 | self.mountWpnBone[0] = self.modelObject.skeleton.bones[i]; 32 | self.mountWpnBone[0].mounting = null; 33 | //武器装備に必要な角度を足す 34 | var rolx = new THREE.Matrix4(); 35 | rolx.makeRotationX(Math.PI); 36 | self.mountWpnBone[0].MountMx = rolx; 37 | } 38 | 39 | if (self.modelObject.skeleton.bones[i].name.indexOf('L_Wpn') > -1) { 40 | self.mountWpnBone[1] = self.modelObject.skeleton.bones[i]; 41 | self.mountWpnBone[1].mounting = null; 42 | //武器装備に必要な角度を足す 43 | var rolx = new THREE.Matrix4(); 44 | rolx.makeRotationX(Math.PI); 45 | self.mountWpnBone[1].MountMx = rolx; 46 | } 47 | 48 | if (self.modelObject.skeleton.bones[i].name.indexOf('SW2_R_mp_2') > -1) { 49 | self.mountWpnBone[2] = self.modelObject.skeleton.bones[i]; 50 | self.mountWpnBone[2].mounting = null; 51 | var refz = new THREE.Matrix4(); 52 | refz.elements[0] = -1; 53 | self.mountWpnBone[2].MountMx = refz; 54 | } 55 | 56 | 57 | if (self.modelObject.skeleton.bones[i].name.indexOf('SW2_L_mp_2') > -1) { 58 | self.mountWpnBone[3] = self.modelObject.skeleton.bones[i]; 59 | self.mountWpnBone[3].mounting = null; 60 | //武器装備に必要な角度を足す 61 | var refz = new THREE.Matrix4(); 62 | //refz.elements[0] = -1; 63 | self.mountWpnBone[3].MountMx = refz; 64 | } 65 | 66 | if (self.modelObject.skeleton.bones[i].name.indexOf('Bone01') > -1) { 67 | self.UpBodyBone = self.modelObject.skeleton.bones[i]; 68 | } 69 | 70 | //BarniaEffectBone 71 | if (self.modelObject.skeleton.bones[i].name.indexOf('BarniaBaseR') > -1 && self.modelObject.skeleton.bones[i].name.indexOf('_2') == -1) { 72 | self.BarniaEffectBone[0] = self.modelObject.skeleton.bones[i]; 73 | self.BarniaEffectBone[0].mounting = null; 74 | //バーニアマウントに必要な角度とスケールを足す 75 | var rolx = new THREE.Matrix4(); 76 | rolx.makeRotationX(Math.PI); 77 | rolx.elements[10] = 1.5; 78 | rolx.elements[0] *= 0.3; 79 | rolx.elements[5] *= 0.3; 80 | self.BarniaEffectBone[0].MountMx = rolx; 81 | } 82 | 83 | if (self.modelObject.skeleton.bones[i].name.indexOf('BarniaBaseL') > -1 && self.modelObject.skeleton.bones[i].name.indexOf('_2') == -1) { 84 | self.BarniaEffectBone[1] = self.modelObject.skeleton.bones[i]; 85 | self.BarniaEffectBone[1].mounting = null; 86 | //バーニアマウントに必要な角度を足す 87 | var rolx = new THREE.Matrix4(); 88 | rolx.makeRotationX(Math.PI); 89 | rolx.elements[10] = 1.3; 90 | rolx.elements[0] *= 0.2; 91 | rolx.elements[5] *= 0.2; 92 | self.BarniaEffectBone[1].MountMx = rolx; 93 | } 94 | } 95 | 96 | 97 | 98 | //アニメーションコントローラーをセット&作成する 99 | var keys = Object.keys(object.AnimationSetInfo); 100 | self.animationController = new XAnimationObject(); 101 | self.allBoneAnimation = new Array(); 102 | self.upBodyAnimation = new Array(); 103 | //全身を使うアニメーション 104 | self.animationController.set(self.modelObject, object.AnimationSetInfo[keys[0]], keys[0]); 105 | //上半身のみに適用するアニメーション 106 | self.animationController.addAnimation(object.AnimationSetInfo[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 107 | 108 | //アニメーションの定義作成 109 | { 110 | self.animationController.createAnimation("stand", keys[0], 10, 11, true); 111 | self.animationController.createAnimation("walk", keys[0], 50, 81, true); 112 | self.animationController.createAnimation("back", keys[0], 100, 131, true); 113 | self.animationController.createAnimation("walk_R", keys[0], 3100, 3131, true); 114 | self.animationController.createAnimation("walk_L", keys[0], 3150, 3181, true); 115 | self.animationController.createAnimation("dash", keys[0], 150, 180, false, true); 116 | self.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 117 | self.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 118 | 119 | self.animationController.createAnimation("dash_F", keys[0], 150, 180, false, true); 120 | self.animationController.createAnimation("dash_R", keys[0], 200, 230, false, true); 121 | self.animationController.createAnimation("dash_L", keys[0], 250, 280, false, true); 122 | self.animationController.createAnimation("dash_B", keys[0], 300, 330, false, true); 123 | 124 | self.animationController.createAnimation("tach_Down", keys[0], 350, 352, false, true); 125 | 126 | self.animationController.createAnimation("Junp", keys[0], 415, 440, false, true); 127 | self.animationController.createAnimation("J_Down", keys[0], 440, 470, false, true); 128 | 129 | self.animationController.createAnimation("dmg", keys[0], 500, 540, false, true); 130 | self.animationController.createAnimation("down_1", keys[0], 600, 615, false, true); 131 | self.animationController.createAnimation("down_1_2", keys[0], 625, 650, false, true); 132 | self.animationController.createAnimation("down_2", keys[0], 650, 680, false, true); 133 | self.animationController.createAnimation("down_Rise", keys[0], 700, 735, false, true); 134 | self.animationController.createAnimation("down_dead", keys[0], 600, 680, false, true); 135 | 136 | /////////////////////////////////////////////////////////////// 137 | //////////////////////////////////////////////////////////////// 138 | 139 | ////Wpnモーション 140 | self.animationController.createAnimation("RW_1_N", keys[0] + "_up", 1010, 1020, false, true); 141 | self.animationController.createAnimation("RW_1_2_N", keys[0] + "_up", 1029, 1030, false, true); 142 | self.animationController.createAnimation("RW_1_Shot_N", keys[0] + "_up", 1032, 1050, false, true); 143 | self.animationController.createAnimation("RW_1_End_N", keys[0] + "_up", 1032, 1050, false, false); //繰り返さない&最後モーションを維持せず、破棄 144 | 145 | ///////////////////// 146 | self.animationController.createAnimation("RW_2_RF_N", keys[0] + "_up", 1510, 1523, false, true); 147 | self.animationController.createAnimation("RW_2_RF_2_N", keys[0] + "_up", 1529, 1530, false, true); 148 | self.animationController.createAnimation("RW_2_RF_Shot_N", keys[0] + "_up", 1530, 1550, false, true); 149 | self.animationController.createAnimation("RW_2_RF_End_N", keys[0] + "_up", 1550, 1560, false, false); 150 | 151 | ///////////////////// 152 | self.animationController.createAnimation("RW_2_MG_N", keys[0] + "_up", 2005, 2015, false, true); 153 | self.animationController.createAnimation("RW_2_MG_2_N", keys[0] + "_up", 2020, 2021, false, true); 154 | self.animationController.createAnimation("RW_2_MG_Shot_N", keys[0] + "_up", 2020, 2022, false, true); 155 | self.animationController.createAnimation("RW_2_MG_End_N", keys[0] + "_up", 2022, 2035, false, false); 156 | 157 | //////////////////// 158 | self.animationController.createAnimation("RW_2_BZ", keys[0] + "_up", 2205, 2225, false, true); 159 | self.animationController.createAnimation("RW_2_BZ_2", keys[0] + "_up", 2229, 2230, false, true); 160 | self.animationController.createAnimation("RW_2_BZ_Shot_N", keys[0] + "_up", 2235, 2260, false, true); 161 | self.animationController.createAnimation("RW_2_BZ_End", keys[0] + "_up", 2260, 2271, false, false); 162 | 163 | ////// 164 | self.animationController.createAnimation("LW_2_MG_N", keys[0] + "_up", 2910, 2923, false, true); 165 | self.animationController.createAnimation("LW_2_MG_2_N", keys[0] + "_up", 2929, 2930, false, true); 166 | self.animationController.createAnimation("LW_2_MG_Shot_N", keys[0] + "_up", 2930, 2933, false, true); 167 | self.animationController.createAnimation("LW_2_MG_End_N", keys[0] + "_up", 2935, 2936, false, false); 168 | ////////// 169 | //////////// 170 | 171 | self.animationController.createAnimation("SW_R", keys[0], 2700, 2720, false, true); 172 | self.animationController.createAnimation("SW_R_2", keys[0], 2729, 2730, false, true); 173 | self.animationController.createAnimation("SW_R_Shot", keys[0], 2731, 2740, false, true); 174 | self.animationController.createAnimation("SW_R_End", keys[0], 2740, 2750, false, false); 175 | ///////////// 176 | self.animationController.createAnimation("SW_L", keys[0], 2600, 2620, false, true); 177 | self.animationController.createAnimation("SW_L_2", keys[0], 2629, 2630, false, true); 178 | self.animationController.createAnimation("SW_L_Shot", keys[0], 2631, 2640, false, true); 179 | self.animationController.createAnimation("SW_L_End", keys[0], 2640, 2650, false, false); 180 | ///////////// 181 | self.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 182 | self.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 183 | } 184 | 185 | 186 | //能力値セット 187 | self.meca_Stat_Const_f = []; 188 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_up] = 0.02;//歩行速度上昇値 189 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_max] = 0.5; //歩行速度最大値 190 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_up] = 0.3; //ダッシュ速度上昇値 191 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_max] = 1.5; //ダッシュ速度最大値 192 | self.meca_Stat_Const_f[cEnConsts_ParamF.body_height] = 7.5 * Master_Chara_Size; //地上からの機体の中心・高さ 193 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_stand] = 0.025; //機体の回転速度・立ち 194 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_dash] = 0.015; //期待の回転速度・ダッシュ 195 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_up] = 0.04; //ジャンプの上昇速度 196 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_max] = 0.25; //ジャンプ上昇速度最大値 197 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_up] = 0.05; //空中ダッシュ(斜めジャンプ)の速度上昇値 198 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_max] = 0.8; //空中ダッシュ(斜めジャンプ)の速度最大値 199 | self.meca_Stat_Const_f[cEnConsts_ParamF.junp_Kotyoku] = 30; //ジャンプ開始時の初期硬直 200 | 201 | self.meca_Stat_Const_f[cEnConsts_ParamF.life_max] = 2300; //HP最大値 202 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_max] = 1000; //ゲイン最大値 203 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dash] = 2; //ダッシュ時のゲイン使用値 204 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junp] = 5; //ジャンプ時のゲイン使用値 205 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junpfast] = 100; //ジャンプ初期時のゲイン使用値 206 | 207 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_regeinS] = 8; //通常時のゲイン回復値 208 | self.meca_Stat_Const_f[cEnConsts_ParamF.Stand_Brake] = 0.7; //摩擦係数のようなもの:立ちからの加速の遅さ 209 | self.meca_Stat_Const_f[cEnConsts_ParamF.ext_brake] = 0.85; //ダッシュ後のブレーキ性能 210 | 211 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dashFast] = 100; //ダッシュに最低限必要なEn残量 212 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_KotyokuTime] = 15; //ダッシュ開始時の硬直フレーム時間 213 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoostTime] = 25; //ダッシュ初期時のブースト時間(実質、上の硬直時間を引いた数だけ適用 214 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoost] = 0.5; //ダッシュ開始時の所期ブースト加速度 215 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_R] = (95 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 右 216 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_L] = -(105 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 左 217 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dmg_Tolerance] = 3.5; //被ダメ⇒よろけまでの値 一番ダウンしないヤツで4~5くらい? 218 | self.meca_Stat_Const_f[cEnConsts_ParamF.Don_Tolerance] = 6; //被ダメ⇒ダウンまでの値 219 | self.meca_Stat_Const_f[cEnConsts_ParamF.SevTime] = 15; //LWで付加されるセービングフレーム数 220 | self.meca_Stat_Const_f[cEnConsts_ParamF.Sev_Power] = 0.5; //LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 221 | self.meca_Stat_Const_f[cEnConsts_ParamF.savHalfLockTime] = 45; //壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 222 | self.meca_Stat_Const_f[cEnConsts_ParamF.LockRange] = 4500 * Master_Shot_Renge_Rate; // ロック可能距離 223 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_wpnFact] = 0.8; //武器装備時、武器の重さがEn制限に与える倍数 大きいほど影響を受ける 224 | 225 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_short] = 60; // ステップの最低時間 226 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_End] = 20; //ステップの終了中のスキ時間 227 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_Step] = 250; //ステップに最低限必要なEn残量 228 | 229 | var sphereLink1 = new BoundingLinker(self.modelObject.skeleton.bones[2], 7 * Master_Chara_Size); 230 | var sphereLink2 = new BoundingLinker(self.modelObject.skeleton.bones[40], 5 * Master_Chara_Size); 231 | 232 | self.BoundingLinkers = [sphereLink1, sphereLink2]; 233 | 234 | if (self.loadComplete != null) { 235 | self.loadComplete(); 236 | } 237 | 238 | } 239 | 240 | Obj_SSR06.prototype.UpdateBoundings = function (_pos) { 241 | 242 | var Spheres = []; 243 | 244 | return Spheres; 245 | } 246 | 247 | inherits(Obj_SSR06, ObjectSetter); 248 | 249 | /////////////////////////////////////////////////////// 250 | /* 251 | function Animater_SSR06() 252 | { 253 | Animater.call(this); 254 | } 255 | inherits(Animater_SSR06, Animater); 256 | 257 | //古くて使ってない? 258 | Animater_SSR06.prototype.createAnimation = function( _modelobj, _animation) 259 | { 260 | this.animationController = new XAnimationObject(); 261 | 262 | var keys = Object.keys(_animation); 263 | //全身を使うアニメーション 264 | this.animationController.set(_modelobj, _animation[keys[0]], keys[0]); 265 | //上半身のみに適用するアニメーション 266 | this.animationController.addAnimation(_animation[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 267 | { 268 | this.animationController.createAnimation("stand", keys[0], 10, 11, true); 269 | this.animationController.createAnimation("wark", keys[0], 50, 82, true); 270 | this.animationController.createAnimation("back", keys[0], 100, 130, true); 271 | this.animationController.createAnimation("dash", keys[0], 150, 180, true); 272 | this.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 273 | this.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 274 | 275 | this.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 276 | this.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 277 | } 278 | } 279 | */ -------------------------------------------------------------------------------- /js/objectSetter/obj_Track_1.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | "use strict"; 7 | //操作オブジェクトの元となるクラス。 8 | //これは「1モデル(キャラクター1種類)」毎に用意され、 9 | //各能力値などもここに格納されている。 10 | //これも、操作キャラが増える度にインスタンスは【作られない】 ‥はず 11 | function Obj_Track_1() 12 | { 13 | ObjectSetter.call(this, "Track_1"); 14 | } 15 | 16 | //オブジェクトのロードメソッド 17 | Obj_Track_1.prototype.load = function (object) { 18 | 19 | var self = this; 20 | 21 | self.modelObject = object.FrameInfo[0]; //XfileLoader_CopyObject(object.FrameInfo[0]); 22 | self.modelObject.scale.setScalar(Master_Chara_Size); 23 | 24 | self.AnimationSetInfo = null; 25 | self.AnimationKeys = null 26 | 27 | self.name = "M498-C"; 28 | 29 | //能力値セット 30 | self.meca_Stat_Const_f = []; 31 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_up] = 0.02;//歩行速度上昇値 32 | self.meca_Stat_Const_f[cEnConsts_ParamF.warkS_max] = 0.36; //歩行速度最大値 33 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_up] = 0.3; //ダッシュ速度上昇値 34 | self.meca_Stat_Const_f[cEnConsts_ParamF.dashS_max] = 1.5; //ダッシュ速度最大値 35 | self.meca_Stat_Const_f[cEnConsts_ParamF.body_height] = 3.5 * Master_Chara_Size; //地上からの機体の中心・高さ 36 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_stand] = 0.025; //機体の回転速度・立ち 37 | self.meca_Stat_Const_f[cEnConsts_ParamF.rool_S_dash] = 0.015; //期待の回転速度・ダッシュ 38 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_up] = 0.04; //ジャンプの上昇速度 39 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpS_max] = 0.25; //ジャンプ上昇速度最大値 40 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_up] = 0.05; //空中ダッシュ(斜めジャンプ)の速度上昇値 41 | self.meca_Stat_Const_f[cEnConsts_ParamF.junpD_max] = 0.8; //空中ダッシュ(斜めジャンプ)の速度最大値 42 | self.meca_Stat_Const_f[cEnConsts_ParamF.junp_Kotyoku] = 30; //ジャンプ開始時の初期硬直 43 | 44 | self.meca_Stat_Const_f[cEnConsts_ParamF.life_max] = 355; //HP最大値 45 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_max] = 1000; //ゲイン最大値 46 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dash] = 8; //ダッシュ時のゲイン使用値 47 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junp] = 10; //ジャンプ時のゲイン使用値 48 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_junpfast] = 100; //ジャンプ初期時のゲイン使用値 49 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_regeinS] = 8; //通常時のゲイン回復値 50 | self.meca_Stat_Const_f[cEnConsts_ParamF.Stand_Brake] = 0.7; //摩擦係数のようなもの:立ちからの加速の遅さ 51 | self.meca_Stat_Const_f[cEnConsts_ParamF.ext_brake] = 0.85; //ダッシュ後のブレーキ性能 52 | 53 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_dashFast] = 100; //ダッシュに最低限必要なEn残量 54 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_KotyokuTime] = 15; //ダッシュ開始時の硬直フレーム時間 55 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoostTime] = 25; //ダッシュ初期時のブースト時間(実質、上の硬直時間を引いた数だけ適用 56 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dash_FastBoost] = 0.5; //ダッシュ開始時の所期ブースト加速度 57 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_R] = (95 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 右 58 | self.meca_Stat_Const_f[cEnConsts_ParamF.Rw_RolLock_L] = -(105 * 3.141592 / 180.0); //Rw攻撃時、強制振り向き角度 左 59 | self.meca_Stat_Const_f[cEnConsts_ParamF.Dmg_Tolerance] = 3.5; //被ダメ⇒よろけまでの値 一番ダウンしないヤツで4~5くらい? 60 | self.meca_Stat_Const_f[cEnConsts_ParamF.Don_Tolerance] = 6; //被ダメ⇒ダウンまでの値 61 | self.meca_Stat_Const_f[cEnConsts_ParamF.SevTime] = 15; //LWで付加されるセービングフレーム数 62 | self.meca_Stat_Const_f[cEnConsts_ParamF.Sev_Power] = 0.5; //LWで付加される、ダウン耐久乗算値(少ないほうがセビ中にダウンしなくなる) 63 | self.meca_Stat_Const_f[cEnConsts_ParamF.savHalfLockTime] = 45; //壁にさえぎられた半ロック常態から、完全にロックが切れるまでの時間 64 | self.meca_Stat_Const_f[cEnConsts_ParamF.LockRange] = 4500 * Master_Shot_Renge_Rate; // ロック可能距離 65 | self.meca_Stat_Const_f[cEnConsts_ParamF.gein_wpnFact] = 0.8; //武器装備時、武器の重さがEn制限に与える倍数 大きいほど影響を受ける 66 | 67 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_short] = 60; // ステップの最低時間 68 | self.meca_Stat_Const_f[cEnConsts_ParamF.StepT_End] = 20; //ステップの終了中のスキ時間 69 | self.meca_Stat_Const_f[cEnConsts_ParamF.Guse_Step] = 150; //ステップに最低限必要なEn残量 70 | 71 | //self.BarniaEffectBone.push(self.modelObject.skeleton.bones[37]); 72 | 73 | 74 | if (self.loadComplete != null) { 75 | self.loadComplete(); 76 | } 77 | 78 | } 79 | 80 | 81 | inherits(Obj_Track_1, ObjectSetter); 82 | 83 | /////////////////////////////////////////////////////// 84 | /* 85 | function Animater_SSR06() 86 | { 87 | Animater.call(this); 88 | } 89 | inherits(Animater_SSR06, Animater); 90 | 91 | //古くて使ってない? 92 | Animater_SSR06.prototype.createAnimation = function( _modelobj, _animation) 93 | { 94 | this.animationController = new XAnimationObject(); 95 | 96 | var keys = Object.keys(_animation); 97 | //全身を使うアニメーション 98 | this.animationController.set(_modelobj, _animation[keys[0]], keys[0]); 99 | //上半身のみに適用するアニメーション 100 | this.animationController.addAnimation(_animation[keys[0]], keys[0] + "_up", ["Frame2_Bone01"]); 101 | { 102 | this.animationController.createAnimation("stand", keys[0], 10, 11, true); 103 | this.animationController.createAnimation("wark", keys[0], 50, 82, true); 104 | this.animationController.createAnimation("back", keys[0], 100, 130, true); 105 | this.animationController.createAnimation("dash", keys[0], 150, 180, true); 106 | this.animationController.createAnimation("kiri1", keys[0], 2400, 2480, true); 107 | this.animationController.createAnimation("kiri2", keys[0], 2500, 2560, true); 108 | 109 | this.animationController.createAnimation("Fire1", keys[0] + "_up", 1000, 1050, false); 110 | this.animationController.createAnimation("Fire2", keys[0] + "_up", 2600, 2680, false); 111 | } 112 | } 113 | */ -------------------------------------------------------------------------------- /js/oreScene.js: -------------------------------------------------------------------------------- 1 | ////// 2 | ///// 進行管理のベースクラス 3 | ///// THREE.js の threeComps.scene とは全く別物になる 4 | 5 | "use strict"; 6 | 7 | function gameScene() 8 | { } 9 | 10 | gameScene.prototype.Update = function () { 11 | 12 | }; 13 | 14 | 15 | gameScene.prototype.Render = function () { 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /js/postprocessing/EffectComposer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.EffectComposer = function ( renderer, renderTarget ) { 6 | 7 | this.renderer = renderer; 8 | 9 | if ( renderTarget === undefined ) { 10 | 11 | var parameters = { 12 | minFilter: THREE.LinearFilter, 13 | magFilter: THREE.LinearFilter, 14 | format: THREE.RGBAFormat, 15 | stencilBuffer: false 16 | }; 17 | var size = renderer.getSize(); 18 | renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters ); 19 | 20 | } 21 | 22 | this.renderTarget1 = renderTarget; 23 | this.renderTarget2 = renderTarget.clone(); 24 | 25 | this.writeBuffer = this.renderTarget1; 26 | this.readBuffer = this.renderTarget2; 27 | 28 | this.passes = []; 29 | 30 | if ( THREE.CopyShader === undefined ) 31 | console.error( "THREE.EffectComposer relies on THREE.CopyShader" ); 32 | 33 | this.copyPass = new THREE.ShaderPass( THREE.CopyShader ); 34 | 35 | }; 36 | 37 | Object.assign( THREE.EffectComposer.prototype, { 38 | 39 | swapBuffers: function() { 40 | 41 | var tmp = this.readBuffer; 42 | this.readBuffer = this.writeBuffer; 43 | this.writeBuffer = tmp; 44 | 45 | }, 46 | 47 | addPass: function ( pass ) { 48 | 49 | this.passes.push( pass ); 50 | 51 | var size = this.renderer.getSize(); 52 | pass.setSize( size.width, size.height ); 53 | 54 | }, 55 | 56 | insertPass: function ( pass, index ) { 57 | 58 | this.passes.splice( index, 0, pass ); 59 | 60 | }, 61 | 62 | render: function ( delta ) { 63 | 64 | var maskActive = false; 65 | 66 | var pass, i, il = this.passes.length; 67 | 68 | for ( i = 0; i < il; i ++ ) { 69 | 70 | pass = this.passes[ i ]; 71 | 72 | if ( pass.enabled === false ) continue; 73 | 74 | pass.render( this.renderer, this.writeBuffer, this.readBuffer, delta, maskActive ); 75 | 76 | if ( pass.needsSwap ) { 77 | 78 | if ( maskActive ) { 79 | 80 | var context = this.renderer.context; 81 | 82 | context.stencilFunc( context.NOTEQUAL, 1, 0xffffffff ); 83 | 84 | this.copyPass.render( this.renderer, this.writeBuffer, this.readBuffer, delta ); 85 | 86 | context.stencilFunc( context.EQUAL, 1, 0xffffffff ); 87 | 88 | } 89 | 90 | this.swapBuffers(); 91 | 92 | } 93 | 94 | if ( THREE.MaskPass !== undefined ) { 95 | 96 | if ( pass instanceof THREE.MaskPass ) { 97 | 98 | maskActive = true; 99 | 100 | } else if ( pass instanceof THREE.ClearMaskPass ) { 101 | 102 | maskActive = false; 103 | 104 | } 105 | 106 | } 107 | 108 | } 109 | 110 | }, 111 | 112 | reset: function ( renderTarget ) { 113 | 114 | if ( renderTarget === undefined ) { 115 | 116 | var size = this.renderer.getSize(); 117 | 118 | renderTarget = this.renderTarget1.clone(); 119 | renderTarget.setSize( size.width, size.height ); 120 | 121 | } 122 | 123 | this.renderTarget1.dispose(); 124 | this.renderTarget2.dispose(); 125 | this.renderTarget1 = renderTarget; 126 | this.renderTarget2 = renderTarget.clone(); 127 | 128 | this.writeBuffer = this.renderTarget1; 129 | this.readBuffer = this.renderTarget2; 130 | 131 | }, 132 | 133 | setSize: function ( width, height ) { 134 | 135 | this.renderTarget1.setSize( width, height ); 136 | this.renderTarget2.setSize( width, height ); 137 | 138 | for ( var i = 0; i < this.passes.length; i ++ ) { 139 | 140 | this.passes[i].setSize( width, height ); 141 | 142 | } 143 | 144 | } 145 | 146 | } ); 147 | 148 | 149 | THREE.Pass = function () { 150 | 151 | // if set to true, the pass is processed by the composer 152 | this.enabled = true; 153 | 154 | // if set to true, the pass indicates to swap read and write buffer after rendering 155 | this.needsSwap = true; 156 | 157 | // if set to true, the pass clears its buffer before rendering 158 | this.clear = false; 159 | 160 | // if set to true, the result of the pass is rendered to screen 161 | this.renderToScreen = false; 162 | 163 | }; 164 | 165 | Object.assign( THREE.Pass.prototype, { 166 | 167 | setSize: function( width, height ) {}, 168 | 169 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 170 | 171 | console.error( "THREE.Pass: .render() must be implemented in derived pass." ); 172 | 173 | } 174 | 175 | } ); 176 | -------------------------------------------------------------------------------- /js/postprocessing/MaskPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.MaskPass = function ( scene, camera ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.scene = scene; 10 | this.camera = camera; 11 | 12 | this.clear = true; 13 | this.needsSwap = false; 14 | 15 | this.inverse = false; 16 | 17 | }; 18 | 19 | THREE.MaskPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 20 | 21 | constructor: THREE.MaskPass, 22 | 23 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 24 | 25 | var context = renderer.context; 26 | var state = renderer.state; 27 | 28 | // don't update color or depth 29 | 30 | state.buffers.color.setMask( false ); 31 | state.buffers.depth.setMask( false ); 32 | 33 | // lock buffers 34 | 35 | state.buffers.color.setLocked( true ); 36 | state.buffers.depth.setLocked( true ); 37 | 38 | // set up stencil 39 | 40 | var writeValue, clearValue; 41 | 42 | if ( this.inverse ) { 43 | 44 | writeValue = 0; 45 | clearValue = 1; 46 | 47 | } else { 48 | 49 | writeValue = 1; 50 | clearValue = 0; 51 | 52 | } 53 | 54 | state.buffers.stencil.setTest( true ); 55 | state.buffers.stencil.setOp( context.REPLACE, context.REPLACE, context.REPLACE ); 56 | state.buffers.stencil.setFunc( context.ALWAYS, writeValue, 0xffffffff ); 57 | state.buffers.stencil.setClear( clearValue ); 58 | 59 | // draw into the stencil buffer 60 | 61 | renderer.render( this.scene, this.camera, readBuffer, this.clear ); 62 | renderer.render( this.scene, this.camera, writeBuffer, this.clear ); 63 | 64 | // unlock color and depth buffer for subsequent rendering 65 | 66 | state.buffers.color.setLocked( false ); 67 | state.buffers.depth.setLocked( false ); 68 | 69 | // only render where stencil is set to 1 70 | 71 | state.buffers.stencil.setFunc( context.EQUAL, 1, 0xffffffff ); // draw if == 1 72 | state.buffers.stencil.setOp( context.KEEP, context.KEEP, context.KEEP ); 73 | 74 | } 75 | 76 | } ); 77 | 78 | 79 | THREE.ClearMaskPass = function () { 80 | 81 | THREE.Pass.call( this ); 82 | 83 | this.needsSwap = false; 84 | 85 | }; 86 | 87 | THREE.ClearMaskPass.prototype = Object.create( THREE.Pass.prototype ); 88 | 89 | Object.assign( THREE.ClearMaskPass.prototype, { 90 | 91 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 92 | 93 | renderer.state.buffers.stencil.setTest( false ); 94 | 95 | } 96 | 97 | } ); 98 | -------------------------------------------------------------------------------- /js/postprocessing/RenderPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.RenderPass = function ( scene, camera, overrideMaterial, clearColor, clearAlpha ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.scene = scene; 10 | this.camera = camera; 11 | 12 | this.overrideMaterial = overrideMaterial; 13 | 14 | this.clearColor = clearColor; 15 | this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0; 16 | 17 | this.clear = true; 18 | this.needsSwap = false; 19 | 20 | }; 21 | 22 | THREE.RenderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 23 | 24 | constructor: THREE.RenderPass, 25 | 26 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 27 | 28 | var oldAutoClear = renderer.autoClear; 29 | renderer.autoClear = false; 30 | 31 | this.scene.overrideMaterial = this.overrideMaterial; 32 | 33 | var oldClearColor, oldClearAlpha; 34 | 35 | if ( this.clearColor ) { 36 | 37 | oldClearColor = renderer.getClearColor().getHex(); 38 | oldClearAlpha = renderer.getClearAlpha(); 39 | 40 | renderer.setClearColor( this.clearColor, this.clearAlpha ); 41 | 42 | } 43 | 44 | renderer.render( this.scene, this.camera, this.renderToScreen ? null : readBuffer, this.clear ); 45 | 46 | if ( this.clearColor ) { 47 | 48 | renderer.setClearColor( oldClearColor, oldClearAlpha ); 49 | 50 | } 51 | 52 | this.scene.overrideMaterial = null; 53 | renderer.autoClear = oldAutoClear; 54 | } 55 | 56 | } ); 57 | -------------------------------------------------------------------------------- /js/postprocessing/ShaderPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.ShaderPass = function ( shader, textureID ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.textureID = ( textureID !== undefined ) ? textureID : "tDiffuse"; 10 | 11 | if ( shader instanceof THREE.ShaderMaterial ) { 12 | 13 | this.uniforms = shader.uniforms; 14 | 15 | this.material = shader; 16 | 17 | } else if ( shader ) { 18 | 19 | this.uniforms = THREE.UniformsUtils.clone( shader.uniforms ); 20 | 21 | this.material = new THREE.ShaderMaterial( { 22 | 23 | defines: shader.defines || {}, 24 | uniforms: this.uniforms, 25 | vertexShader: shader.vertexShader, 26 | fragmentShader: shader.fragmentShader 27 | 28 | } ); 29 | 30 | } 31 | 32 | this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); 33 | this.scene = new THREE.Scene(); 34 | 35 | this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null ); 36 | this.scene.add( this.quad ); 37 | 38 | }; 39 | 40 | THREE.ShaderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 41 | 42 | constructor: THREE.ShaderPass, 43 | 44 | render: function( renderer, writeBuffer, readBuffer, delta, maskActive ) { 45 | 46 | if ( this.uniforms[ this.textureID ] ) { 47 | 48 | this.uniforms[ this.textureID ].value = readBuffer.texture; 49 | 50 | } 51 | 52 | this.quad.material = this.material; 53 | 54 | if ( this.renderToScreen ) { 55 | 56 | renderer.render( this.scene, this.camera ); 57 | 58 | } else { 59 | 60 | renderer.render( this.scene, this.camera, writeBuffer, this.clear ); 61 | 62 | } 63 | 64 | } 65 | 66 | } ); 67 | -------------------------------------------------------------------------------- /js/postprocessing/UnrealBloomPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author spidersharma / http://eduperiment.com/ 3 | Inspired from Unreal Engine:: 4 | https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/Bloom/ 5 | */ 6 | 7 | THREE.UnrealBloomPass = function ( resolution, strength, radius, threshold ) { 8 | 9 | THREE.Pass.call( this ); 10 | 11 | this.strength = ( strength !== undefined ) ? strength : 1; 12 | this.radius = radius; 13 | this.threshold = threshold; 14 | this.resolution = ( resolution !== undefined ) ? new THREE.Vector2(resolution.x, resolution.y) : new THREE.Vector2(256, 256); 15 | 16 | // render targets 17 | var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBAFormat }; 18 | this.renderTargetsHorizontal = []; 19 | this.renderTargetsVertical = []; 20 | this.nMips = 5; 21 | var resx = Math.round(this.resolution.x/2); 22 | var resy = Math.round(this.resolution.y/2); 23 | 24 | this.renderTargetBright = new THREE.WebGLRenderTarget( resx, resy, pars ); 25 | this.renderTargetBright.texture.generateMipmaps = false; 26 | 27 | for( var i=0; i\ 246 | varying vec2 vUv;\n\ 247 | uniform sampler2D colorTexture;\n\ 248 | uniform vec2 texSize;\ 249 | uniform vec2 direction;\ 250 | \ 251 | float gaussianPdf(in float x, in float sigma) {\ 252 | return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\ 253 | }\ 254 | void main() {\n\ 255 | vec2 invSize = 1.0 / texSize;\ 256 | float fSigma = float(SIGMA);\ 257 | float weightSum = gaussianPdf(0.0, fSigma);\ 258 | vec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\ 259 | for( int i = 1; i < KERNEL_RADIUS; i ++ ) {\ 260 | float x = float(i);\ 261 | float w = gaussianPdf(x, fSigma);\ 262 | vec2 uvOffset = direction * invSize * x;\ 263 | vec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\ 264 | vec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\ 265 | diffuseSum += (sample1 + sample2) * w;\ 266 | weightSum += 2.0 * w;\ 267 | }\ 268 | gl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\ 269 | }" 270 | } ); 271 | }, 272 | 273 | getCompositeMaterial: function(nMips) { 274 | 275 | return new THREE.ShaderMaterial( { 276 | 277 | defines:{ 278 | "NUM_MIPS" : nMips 279 | }, 280 | 281 | uniforms: { 282 | "blurTexture1": { value: null }, 283 | "blurTexture2": { value: null }, 284 | "blurTexture3": { value: null }, 285 | "blurTexture4": { value: null }, 286 | "blurTexture5": { value: null }, 287 | "dirtTexture": { value: null }, 288 | "bloomStrength" : { value: 1.0 }, 289 | "bloomFactors" : { value: null }, 290 | "bloomTintColors" : { value: null }, 291 | "bloomRadius" : { value: 0.0 } 292 | }, 293 | 294 | vertexShader: 295 | "varying vec2 vUv;\n\ 296 | void main() {\n\ 297 | vUv = uv;\n\ 298 | gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\ 299 | }", 300 | 301 | fragmentShader: 302 | "varying vec2 vUv;\ 303 | uniform sampler2D blurTexture1;\ 304 | uniform sampler2D blurTexture2;\ 305 | uniform sampler2D blurTexture3;\ 306 | uniform sampler2D blurTexture4;\ 307 | uniform sampler2D blurTexture5;\ 308 | uniform sampler2D dirtTexture;\ 309 | uniform float bloomStrength;\ 310 | uniform float bloomRadius;\ 311 | uniform float bloomFactors[NUM_MIPS];\ 312 | uniform vec3 bloomTintColors[NUM_MIPS];\ 313 | \ 314 | float lerpBloomFactor(const in float factor) { \ 315 | float mirrorFactor = 1.2 - factor;\ 316 | return mix(factor, mirrorFactor, bloomRadius);\ 317 | }\ 318 | \ 319 | void main() {\ 320 | gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) + \ 321 | lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) + \ 322 | lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) + \ 323 | lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) + \ 324 | lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\ 325 | }" 326 | } ); 327 | } 328 | 329 | } ); 330 | 331 | THREE.UnrealBloomPass.BlurDirectionX = new THREE.Vector2( 1.0, 0.0 ); 332 | THREE.UnrealBloomPass.BlurDirectionY = new THREE.Vector2( 0.0, 1.0 ); 333 | -------------------------------------------------------------------------------- /js/pseudo-function.js: -------------------------------------------------------------------------------- 1 | !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;"undefined"!=typeof window?n=window:"undefined"!=typeof global?n=global:"undefined"!=typeof self&&(n=self),n.PseudoFunction=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 5] |= 0x80 << (24 - len % 32); 44 | x[((len + 64 >> 9) << 4) + 15] = len; 45 | 46 | var w = Array(80); 47 | var a = 1732584193; 48 | var b = -271733879; 49 | var c = -1732584194; 50 | var d = 271733878; 51 | var e = -1009589776; 52 | 53 | for(var i = 0; i < x.length; i += 16) 54 | { 55 | var olda = a; 56 | var oldb = b; 57 | var oldc = c; 58 | var oldd = d; 59 | var olde = e; 60 | 61 | for(var j = 0; j < 80; j++) 62 | { 63 | if(j < 16) w[j] = x[i + j]; 64 | else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); 65 | var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), 66 | safe_add(safe_add(e, w[j]), sha1_kt(j))); 67 | e = d; 68 | d = c; 69 | c = rol(b, 30); 70 | b = a; 71 | a = t; 72 | } 73 | 74 | a = safe_add(a, olda); 75 | b = safe_add(b, oldb); 76 | c = safe_add(c, oldc); 77 | d = safe_add(d, oldd); 78 | e = safe_add(e, olde); 79 | } 80 | return Array(a, b, c, d, e); 81 | 82 | } 83 | 84 | /* 85 | * Perform the appropriate triplet combination function for the current 86 | * iteration 87 | */ 88 | function sha1_ft(t, b, c, d) 89 | { 90 | if(t < 20) return (b & c) | ((~b) & d); 91 | if(t < 40) return b ^ c ^ d; 92 | if(t < 60) return (b & c) | (b & d) | (c & d); 93 | return b ^ c ^ d; 94 | } 95 | 96 | /* 97 | * Determine the appropriate additive constant for the current iteration 98 | */ 99 | function sha1_kt(t) 100 | { 101 | return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : 102 | (t < 60) ? -1894007588 : -899497514; 103 | } 104 | 105 | /* 106 | * Calculate the HMAC-SHA1 of a key and some data 107 | */ 108 | function core_hmac_sha1(key, data) 109 | { 110 | var bkey = str2binb(key); 111 | if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); 112 | 113 | var ipad = Array(16), opad = Array(16); 114 | for(var i = 0; i < 16; i++) 115 | { 116 | ipad[i] = bkey[i] ^ 0x36363636; 117 | opad[i] = bkey[i] ^ 0x5C5C5C5C; 118 | } 119 | 120 | var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); 121 | return core_sha1(opad.concat(hash), 512 + 160); 122 | } 123 | 124 | /* 125 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally 126 | * to work around bugs in some JS interpreters. 127 | */ 128 | function safe_add(x, y) 129 | { 130 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 131 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 132 | return (msw << 16) | (lsw & 0xFFFF); 133 | } 134 | 135 | /* 136 | * Bitwise rotate a 32-bit number to the left. 137 | */ 138 | function rol(num, cnt) 139 | { 140 | return (num << cnt) | (num >>> (32 - cnt)); 141 | } 142 | 143 | /* 144 | * Convert an 8-bit or 16-bit string to an array of big-endian words 145 | * In 8-bit function, characters >255 have their hi-byte silently ignored. 146 | */ 147 | function str2binb(str) 148 | { 149 | var bin = Array(); 150 | var mask = (1 << chrsz) - 1; 151 | for(var i = 0; i < str.length * chrsz; i += chrsz) 152 | bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32); 153 | return bin; 154 | } 155 | 156 | /* 157 | * Convert an array of big-endian words to a string 158 | */ 159 | function binb2str(bin) 160 | { 161 | var str = ""; 162 | var mask = (1 << chrsz) - 1; 163 | for(var i = 0; i < bin.length * 32; i += chrsz) 164 | str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask); 165 | return str; 166 | } 167 | 168 | /* 169 | * Convert an array of big-endian words to a hex string. 170 | */ 171 | function binb2hex(binarray) 172 | { 173 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 174 | var str = ""; 175 | for(var i = 0; i < binarray.length * 4; i++) 176 | { 177 | str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) + 178 | hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF); 179 | } 180 | return str; 181 | } 182 | 183 | /* 184 | * Convert an array of big-endian words to a base-64 string 185 | */ 186 | function binb2b64(binarray) 187 | { 188 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 189 | var str = ""; 190 | for(var i = 0; i < binarray.length * 4; i += 3) 191 | { 192 | var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) 193 | | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) 194 | | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF); 195 | for(var j = 0; j < 4; j++) 196 | { 197 | if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; 198 | else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); 199 | } 200 | } 201 | return str; 202 | } 203 | -------------------------------------------------------------------------------- /js/shaders/ConvolutionShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * 4 | * Convolution shader 5 | * ported from o3d sample to WebGL / GLSL 6 | * http://o3d.googlecode.com/svn/trunk/samples/convolution.html 7 | */ 8 | 9 | THREE.ConvolutionShader = { 10 | 11 | defines: { 12 | 13 | "KERNEL_SIZE_FLOAT": "25.0", 14 | "KERNEL_SIZE_INT": "25", 15 | 16 | }, 17 | 18 | uniforms: { 19 | 20 | "tDiffuse": { value: null }, 21 | "uImageIncrement": { value: new THREE.Vector2( 0.001953125, 0.0 ) }, 22 | "cKernel": { value: [] } 23 | 24 | }, 25 | 26 | vertexShader: [ 27 | 28 | "uniform vec2 uImageIncrement;", 29 | 30 | "varying vec2 vUv;", 31 | 32 | "void main() {", 33 | 34 | "vUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;", 35 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 36 | 37 | "}" 38 | 39 | ].join( "\n" ), 40 | 41 | fragmentShader: [ 42 | 43 | "uniform float cKernel[ KERNEL_SIZE_INT ];", 44 | 45 | "uniform sampler2D tDiffuse;", 46 | "uniform vec2 uImageIncrement;", 47 | 48 | "varying vec2 vUv;", 49 | 50 | "void main() {", 51 | 52 | "vec2 imageCoord = vUv;", 53 | "vec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );", 54 | 55 | "for( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {", 56 | 57 | "sum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];", 58 | "imageCoord += uImageIncrement;", 59 | 60 | "}", 61 | 62 | "gl_FragColor = sum;", 63 | 64 | "}" 65 | 66 | 67 | ].join( "\n" ), 68 | 69 | buildKernel: function ( sigma ) { 70 | 71 | // We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway. 72 | 73 | function gauss( x, sigma ) { 74 | 75 | return Math.exp( - ( x * x ) / ( 2.0 * sigma * sigma ) ); 76 | 77 | } 78 | 79 | var i, values, sum, halfWidth, kMaxKernelSize = 25, kernelSize = 2 * Math.ceil( sigma * 3.0 ) + 1; 80 | 81 | if ( kernelSize > kMaxKernelSize ) kernelSize = kMaxKernelSize; 82 | halfWidth = ( kernelSize - 1 ) * 0.5; 83 | 84 | values = new Array( kernelSize ); 85 | sum = 0.0; 86 | for ( i = 0; i < kernelSize; ++ i ) { 87 | 88 | values[ i ] = gauss( i - halfWidth, sigma ); 89 | sum += values[ i ]; 90 | 91 | } 92 | 93 | // normalize the kernel 94 | 95 | for ( i = 0; i < kernelSize; ++ i ) values[ i ] /= sum; 96 | 97 | return values; 98 | 99 | } 100 | 101 | }; 102 | -------------------------------------------------------------------------------- /js/shaders/CopyShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * 4 | * Full-screen textured quad shader 5 | */ 6 | 7 | THREE.CopyShader = { 8 | 9 | uniforms: { 10 | 11 | "tDiffuse": { value: null }, 12 | "opacity": { value: 1.0 }, 13 | "nigths": { value: 0.0 } 14 | }, 15 | 16 | vertexShader: [ 17 | 18 | "varying vec2 vUv;", 19 | 20 | "void main() {", 21 | 22 | "vUv = uv;", 23 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 24 | 25 | "}" 26 | 27 | ].join("\n"), 28 | 29 | fragmentShader: [ 30 | 31 | "uniform float opacity;", 32 | "uniform float nigths;", 33 | "uniform sampler2D tDiffuse;", 34 | 35 | "varying vec2 vUv;", 36 | 37 | "void main() {", 38 | 39 | "vec4 texel = texture2D( tDiffuse, vUv );", 40 | //"gl_FragColor = texel;", 41 | "float v = max(max(texel.r, texel.g), texel.b);", 42 | "vec4 gcol = vec4(0.0, v, 0.0, 1.0);", 43 | 44 | //"gl_FragColor.rgb = texel.rgb * opacity;", 45 | "gl_FragColor.r = mix(texel.r, gcol.r, nigths );", //mixはlerpと同じ 46 | "gl_FragColor.g = mix(texel.g, gcol.g, nigths );", 47 | "gl_FragColor.b = mix(texel.b, gcol.b, nigths );", 48 | "gl_FragColor.a = 1.0;", 49 | "}" 50 | 51 | ].join("\n") 52 | 53 | }; 54 | -------------------------------------------------------------------------------- /js/shaders/FXAAShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * @author davidedc / http://www.sketchpatch.net/ 4 | * 5 | * NVIDIA FXAA by Timothy Lottes 6 | * http://timothylottes.blogspot.com/2011/06/fxaa3-source-released.html 7 | * - WebGL port by @supereggbert 8 | * http://www.glge.org/demos/fxaa/ 9 | */ 10 | 11 | THREE.FXAAShader = { 12 | 13 | uniforms: { 14 | 15 | "tDiffuse": { value: null }, 16 | "resolution": { value: new THREE.Vector2( 1 / 1024, 1 / 512 ) } 17 | 18 | }, 19 | 20 | vertexShader: [ 21 | 22 | "void main() {", 23 | 24 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 25 | 26 | "}" 27 | 28 | ].join( "\n" ), 29 | 30 | fragmentShader: [ 31 | 32 | "uniform sampler2D tDiffuse;", 33 | "uniform vec2 resolution;", 34 | 35 | "#define FXAA_REDUCE_MIN (1.0/128.0)", 36 | "#define FXAA_REDUCE_MUL (1.0/8.0)", 37 | "#define FXAA_SPAN_MAX 8.0", 38 | 39 | "void main() {", 40 | 41 | "vec3 rgbNW = texture2D( tDiffuse, ( gl_FragCoord.xy + vec2( -1.0, -1.0 ) ) * resolution ).xyz;", 42 | "vec3 rgbNE = texture2D( tDiffuse, ( gl_FragCoord.xy + vec2( 1.0, -1.0 ) ) * resolution ).xyz;", 43 | "vec3 rgbSW = texture2D( tDiffuse, ( gl_FragCoord.xy + vec2( -1.0, 1.0 ) ) * resolution ).xyz;", 44 | "vec3 rgbSE = texture2D( tDiffuse, ( gl_FragCoord.xy + vec2( 1.0, 1.0 ) ) * resolution ).xyz;", 45 | "vec4 rgbaM = texture2D( tDiffuse, gl_FragCoord.xy * resolution );", 46 | "vec3 rgbM = rgbaM.xyz;", 47 | "vec3 luma = vec3( 0.299, 0.587, 0.114 );", 48 | 49 | "float lumaNW = dot( rgbNW, luma );", 50 | "float lumaNE = dot( rgbNE, luma );", 51 | "float lumaSW = dot( rgbSW, luma );", 52 | "float lumaSE = dot( rgbSE, luma );", 53 | "float lumaM = dot( rgbM, luma );", 54 | "float lumaMin = min( lumaM, min( min( lumaNW, lumaNE ), min( lumaSW, lumaSE ) ) );", 55 | "float lumaMax = max( lumaM, max( max( lumaNW, lumaNE) , max( lumaSW, lumaSE ) ) );", 56 | 57 | "vec2 dir;", 58 | "dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));", 59 | "dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));", 60 | 61 | "float dirReduce = max( ( lumaNW + lumaNE + lumaSW + lumaSE ) * ( 0.25 * FXAA_REDUCE_MUL ), FXAA_REDUCE_MIN );", 62 | 63 | "float rcpDirMin = 1.0 / ( min( abs( dir.x ), abs( dir.y ) ) + dirReduce );", 64 | "dir = min( vec2( FXAA_SPAN_MAX, FXAA_SPAN_MAX),", 65 | "max( vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),", 66 | "dir * rcpDirMin)) * resolution;", 67 | "vec4 rgbA = (1.0/2.0) * (", 68 | "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (1.0/3.0 - 0.5)) +", 69 | "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (2.0/3.0 - 0.5)));", 70 | "vec4 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (", 71 | "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (0.0/3.0 - 0.5)) +", 72 | "texture2D(tDiffuse, gl_FragCoord.xy * resolution + dir * (3.0/3.0 - 0.5)));", 73 | "float lumaB = dot(rgbB, vec4(luma, 0.0));", 74 | 75 | "if ( ( lumaB < lumaMin ) || ( lumaB > lumaMax ) ) {", 76 | 77 | "gl_FragColor = rgbA;", 78 | 79 | "} else {", 80 | "gl_FragColor = rgbB;", 81 | 82 | "}", 83 | 84 | "}" 85 | 86 | ].join( "\n" ) 87 | 88 | }; 89 | -------------------------------------------------------------------------------- /js/shaders/LuminosityHighPassShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author bhouston / http://clara.io/ 3 | * 4 | * Luminosity 5 | * http://en.wikipedia.org/wiki/Luminosity 6 | */ 7 | 8 | THREE.LuminosityHighPassShader = { 9 | 10 | shaderID: "luminosityHighPass", 11 | 12 | uniforms: { 13 | 14 | "tDiffuse": { type: "t", value: null }, 15 | "luminosityThreshold": { type: "f", value: 1.0 }, 16 | "smoothWidth": { type: "f", value: 1.0 }, 17 | "defaultColor": { type: "c", value: new THREE.Color( 0x000000 ) }, 18 | "defaultOpacity": { type: "f", value: 0.0 }, 19 | 20 | }, 21 | 22 | vertexShader: [ 23 | 24 | "varying vec2 vUv;", 25 | 26 | "void main() {", 27 | 28 | "vUv = uv;", 29 | 30 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 31 | 32 | "}" 33 | 34 | ].join("\n"), 35 | 36 | fragmentShader: [ 37 | 38 | "uniform sampler2D tDiffuse;", 39 | "uniform vec3 defaultColor;", 40 | "uniform float defaultOpacity;", 41 | "uniform float luminosityThreshold;", 42 | "uniform float smoothWidth;", 43 | 44 | "varying vec2 vUv;", 45 | 46 | "void main() {", 47 | 48 | "vec4 texel = texture2D( tDiffuse, vUv );", 49 | 50 | "vec3 luma = vec3( 0.299, 0.587, 0.114 );", 51 | 52 | "float v = dot( texel.xyz, luma );", 53 | 54 | "vec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );", 55 | 56 | "float alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );", 57 | 58 | "gl_FragColor = mix( outputColor, texel, alpha );", 59 | 60 | "}" 61 | 62 | ].join("\n") 63 | 64 | }; 65 | -------------------------------------------------------------------------------- /js/stagefile/bref_testStage.js: -------------------------------------------------------------------------------- 1 | 2 | "use strict"; 3 | 4 | var loadStep2_begin = false; 5 | 6 | //ブリーフィング中 7 | oreCommon.BrefingScene = null; 8 | oreCommon.BrefingScene = {}; 9 | 10 | oreCommon.BrefingScene.BrefUpdater = function () { 11 | var scrTmpMx = new THREE.Matrix4(); 12 | var scrTmpV3 = new THREE.Vector3(); 13 | 14 | oreCommon.BrefingScene.checkBeginLoad2(); 15 | 16 | //地形ビューのカメラ位置更新 17 | if (testStageScript.camPosAnimate != null) { 18 | testStageScript.camPosAnimate.update(oreCommon.dulTime * 2); 19 | testStageScript.camTargetAnimate.update(oreCommon.dulTime * 2); 20 | 21 | var tmpObj = testStageScript.camPosAnimate.getNowMatrix(); 22 | if (tmpObj != null) { 23 | scrTmpMx.copy(tmpObj); 24 | scrTmpMx.multiplyScalar(oreCommon.groundMapSize); 25 | threeComps.camera_back.position.setFromMatrixPosition(scrTmpMx); 26 | 27 | tmpObj = testStageScript.camTargetAnimate.getNowMatrix(); 28 | if (tmpObj != null) { 29 | scrTmpMx.copy(tmpObj); 30 | } 31 | scrTmpMx.multiplyScalar(oreCommon.groundMapSize); 32 | scrTmpV3.setFromMatrixPosition(scrTmpMx); 33 | threeComps.camera_back.lookAt(scrTmpV3); 34 | } 35 | } 36 | 37 | if (ScreenUpdater.msgView_big >= msg_bref.length && !oreCommon.ChangeScene) { 38 | //全イベントリスナーを消去 39 | oreCommon.setEvent_Load(); 40 | ScreenUpdater.scene_spanTime = 0; 41 | oreCommon.ChangeScene = true; 42 | } 43 | 44 | if (ScreenUpdater.scene_spanTime > ScreenUpdater.lineCountMax * 2 && ScreenUpdater.msgView_big === 0 && cv_bref_load != null) { 45 | oreCommon.MessageClickEvent(); 46 | //ScreenUpdater.msgView_big = 1; 47 | } 48 | 49 | if (ScreenUpdater.scene_spanTime > 255 && ScreenUpdater.msgView_big >= msg_bref.length) { 50 | ScreenUpdater.nowSceneID++; 51 | oreCommon.ChangeScene = false; 52 | oreCommon.setEvent_Load(); 53 | ScreenUpdater.NowScene.Render_2D = function () { oreCommon.BrefingScene.BrefingOutRender(); }; 54 | ScreenUpdater.NowScene.Render3D = function () { nullRender(); }; 55 | ScreenUpdater.NowScene.Update = function () { oreCommon.BrefingScene.BrefingOutUpdate(); }; 56 | } 57 | } 58 | 59 | 60 | oreCommon.BrefingScene.BrefingRender = function () { 61 | oreCommon.conteText2D.clearRect(0, 0, oreCommon.conteText2D.canvas.width, oreCommon.conteText2D.canvas.height); 62 | oreCommon.conteText2D.fillStyle = "rgb(0, 0, 0)"; 63 | //oreCommon.conteText2D.fillRect(0, 0, oreCommon.canvas2D.clientWidth, oreCommon.canvas2D.clientHeight); 64 | 65 | if (ScreenUpdater.msgView_big === 0) { 66 | ScreenUpdater.drawJfLine(false); 67 | } 68 | 69 | if (ScreenUpdater.msgView_big < msg_bref.length) { 70 | if (ScreenUpdater.msgView_big > 0) { 71 | ScreenUpdater.drawJfLine(true); 72 | } 73 | ScreenUpdater.viewBrefingMessage(); 74 | } 75 | else { 76 | ScreenUpdater.drawJfLine(true); 77 | ScreenUpdater.drawFadeOut(); 78 | } 79 | 80 | } 81 | 82 | oreCommon.BrefingScene.checkBeginLoad2 = function () { 83 | if (oreCommon.loadEndCount >= oreCommon.loadContentCount - 1 && !loadStep2_begin && testStageScript != null) { 84 | loadStep2_begin = true; 85 | testStageScript.LoadContent2(); 86 | } 87 | } 88 | /////////////////////////////////////////////////////////// 89 | 90 | //ブリーフィングが終わり、ロード中の画面 91 | oreCommon.BrefingScene.BrefingOutUpdate = function () { 92 | 93 | oreCommon.BrefingScene.checkBeginLoad2(); 94 | 95 | if (oreCommon.loadEndCount >= oreCommon.loadContentCount && cv_Stage_load && loadStep2_begin) { 96 | //どうあがいても確実に読む必要のあるモノがこちら 97 | oreCommon.AlpBillTex = threeComps.texLoader.load('content/efobj/AlpBillTex.png'); 98 | var nowMat = new THREE.MeshBasicMaterial(); 99 | nowMat.depthTest = true; 100 | nowMat.side = THREE.DoubleSide; 101 | nowMat.blending = THREE.NormalBlending; 102 | oreCommon.igeo_alp = particleComp.makeGeo_bill(oreCommon.AlpBillTex, nowMat); 103 | 104 | oreCommon.AddBillTex = threeComps.texLoader.load('content/efobj/AddBillTex.png'); 105 | oreCommon.igeo = particleComp.makeGeo_bill(oreCommon.AddBillTex); 106 | 107 | testStageScript.stageInit_individually(); 108 | 109 | testStageScript.stageInit_reStart(); 110 | //メイン部ループ宣言 111 | oreCommon.ChangeScene = false; 112 | setEvent_MainRoop(); 113 | ScreenUpdater.NowScene.Render3D = function () { ScreenUpdater.stageMainRander(); }; 114 | ScreenUpdater.NowScene.Render_2D = function () { oreBt2DSceneCom.stageMainRander_2D(); }; 115 | ScreenUpdater.NowScene.Update = function () { ScreenUpdater.stageMainUpdater(); }; 116 | 117 | //ブリーフィング音声は消しちゃう(少しでも軽くなれば良い) 118 | VcOjs_bref = null; 119 | } 120 | } 121 | 122 | //ブリーフィングが終わり、ロード中の画面 123 | oreCommon.BrefingScene.BrefingOutRender = function () { 124 | 125 | oreCommon.conteText2D.clearRect(0, 0, oreCommon.conteText2D.canvas.width, oreCommon.conteText2D.canvas.height); 126 | oreCommon.conteText2D.fillStyle = "rgb(0, 0, 0)"; 127 | oreCommon.conteText2D.fillRect(0, 0, oreCommon.conteText2D.canvas.width, oreCommon.conteText2D.canvas.height); 128 | 129 | oreCommon.conteText2D.font = "11pt Arial"; 130 | oreCommon.conteText2D.fillStyle = 'white'; 131 | oreCommon.conteText2D.textAlign = 'left'; 132 | oreCommon.conteText2D.fillText('now loading... ' + oreCommon.loadEndCount.toString() + " / " + oreCommon.loadContentCount.toString(), 100, 100); 133 | 134 | if (!loadStep2_begin) { 135 | oreCommon.conteText2D.fillText('...and more... prease wait...', 100, 130); 136 | } 137 | 138 | } 139 | 140 | ////////////////////////////////// 141 | 142 | //下記ステージに使うモノの前に、優先的に読み込ませたいモノのロード 143 | oreCommon.BrefingScene.LoadContent_zero = function () { 144 | 145 | var tes = ""; 146 | tes = ";"; 147 | 148 | //悲劇的なことに、Scaleに負の値を入れると、ray.intersectObjectが使えなくなる模様。 149 | threeComps.loader.load(['content/ground/state4_height_cam.x', false], function (object) { 150 | var loadEnd = function (_object) { 151 | oreCommon.heightObject = _object.FrameInfo[0]; 152 | oreCommon.heightObject.name = "brefMap"; 153 | threeComps.scene_back.add(oreCommon.heightObject); 154 | 155 | oreCommon.heightObject.material.materials[0].visible = true; 156 | oreCommon.heightObject.material.materials[0].wireframe = true; 157 | oreCommon.heightObject.material.materials[0].side = THREE.DoubleSide; 158 | oreCommon.heightObject.material.materials[0].fog = false; 159 | 160 | var keys = Object.keys(_object.AnimationSetInfo); 161 | testStageScript.camPosAnimate = new XActionInfo(); 162 | //testStageScript.camPosAnimate = 163 | testStageScript.camPosAnimate.createAnimation("", 0, 1000, true, false, _object.AnimationSetInfo[keys[0]]["Animation5"]); 164 | testStageScript.camPosAnimate.begin(1, 1, true); 165 | 166 | testStageScript.camTargetAnimate = new XActionInfo(); 167 | //testStageScript.camTargetAnimate = 168 | testStageScript.camTargetAnimate.createAnimation("", 0, 1000, true, false, _object.AnimationSetInfo[keys[0]]["Animation1"]); 169 | testStageScript.camTargetAnimate.begin(1, 1, true); 170 | 171 | //これらのWayPointの「Y座標」を、接地させる必要がある&倍率はAnimationにはかかってないので、乗算する 172 | var L_temp_Y = 0.0;// oreCommon.GetPosHeight(self.Pos); 173 | 174 | testStageScript.WayPoint_V[0].setFromMatrixPosition(_object.AnimationSetInfo[keys[0]]["Animation2"].KeyFrames[0].Matrix); 175 | testStageScript.WayPoint_V[0].copy(oreCommon.SetGroundFixPoint(testStageScript.WayPoint_V[0], oreCommon.groundMapSize, true)); 176 | 177 | testStageScript.WayPoint_V[1].setFromMatrixPosition(_object.AnimationSetInfo[keys[0]]["Animation2"].KeyFrames[1].Matrix); 178 | testStageScript.WayPoint_V[1].copy(oreCommon.SetGroundFixPoint(testStageScript.WayPoint_V[1], oreCommon.groundMapSize, true)); 179 | 180 | testStageScript.EnemyPoints[0].setFromMatrixPosition(_object.AnimationSetInfo[keys[0]]["Animation3"].KeyFrames[0].Matrix); 181 | testStageScript.EnemyPoints[0].copy(oreCommon.SetGroundFixPoint(testStageScript.EnemyPoints[0], oreCommon.groundMapSize, true)); 182 | 183 | testStageScript.EnemyPoints[1].setFromMatrixPosition(_object.AnimationSetInfo[keys[0]]["Animation3"].KeyFrames[1].Matrix); 184 | testStageScript.EnemyPoints[1].copy(oreCommon.SetGroundFixPoint(testStageScript.EnemyPoints[1], oreCommon.groundMapSize, true)); 185 | 186 | for (var i = 0; i < _object.AnimationSetInfo[keys[0]]["Animation4"].KeyFrames.length; i++) { 187 | var wp = new strWayPointParam(); 188 | wp.wayPointV.setFromMatrixPosition(_object.AnimationSetInfo[keys[0]]["Animation4"].KeyFrames[i].Matrix); 189 | wp.wayPointV.copy(oreCommon.SetGroundFixPoint(wp.wayPointV, oreCommon.groundMapSize, true)); 190 | wp.waypointType = cEnCpuWayPointID.Navi_d; 191 | wp.StayTime = 1; //ゼロはそのポイントで無限停滞 192 | testStageScript.alpha3WayPoints.push(wp); 193 | } 194 | 195 | oreCommon.heightObject.scale.multiplyScalar(oreCommon.groundMapSize); 196 | oreCommon.heightObject.updateMatrix(); 197 | 198 | _object = null; 199 | }; 200 | setTimeout(loadEnd(object), 10); 201 | 202 | }, threeComps.THREE_onProgress, threeComps.THREE_onError); 203 | 204 | ///////////// 205 | } 206 | 207 | oreCommon.BrefingScene.LoadContent_zero(); -------------------------------------------------------------------------------- /js/stagefile/scriptList_testStage.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var testStageScript = {}; 3 | 4 | var scriptList_TestStage = {}; 5 | 6 | //ステージロードの開始前に行われる、各種外部Jsファイル読み込み宣言。 7 | //いわば、Include みたいなもの。 8 | //このファイルのおかげでページ遷移せずとも良いような想定をしているが、ThreeのScene絡みがどう動くかは未知数・・・動く保証はない! 9 | 10 | scriptList_TestStage.loadedIncludeCount = 0; 11 | scriptList_TestStage.loadingTargetCount = 0; 12 | 13 | //ステージ中に使う変数も、ここでまとめて宣言するのがスマート 14 | testStageScript.camPosAnimate = null; 15 | testStageScript.camTargetAnimate = null; 16 | testStageScript.EnemyPoints = [new THREE.Vector3(), new THREE.Vector3()]; 17 | testStageScript.WayPoint_V = [new THREE.Vector3(), new THREE.Vector3()]; 18 | testStageScript.alpha3WayPoints = new Array(); 19 | 20 | 21 | scriptList_TestStage.loadParam = -1; 22 | scriptList_TestStage.loadingState = 1; 23 | 24 | 25 | testStageScript.WayPointObj = null; 26 | testStageScript.CarrierObj = null; 27 | testStageScript.alpha3DestroyFlg = false; 28 | 29 | 30 | //////////////////////////////////////////////////////// 31 | 32 | //コールバック地獄、はっじまっるよー 33 | scriptList_TestStage.isEndInclude_1 = function() { 34 | scriptList_TestStage.loadedIncludeCount++; 35 | if (scriptList_TestStage.loadedIncludeCount >= scriptList_TestStage.loadingTargetCount && scriptList_TestStage.loadingState == 1) { 36 | scriptList_TestStage.loadingState = 2; 37 | 38 | //ここに来ただけ(DLしただけ)だと、宣言済みが安定しない?ので、保険のためTimeOutをしかける 39 | setTimeout(function() { 40 | scriptList_TestStage.loadedIncludeCount = 0; 41 | scriptList_TestStage.loadingTargetCount = 0; 42 | 43 | oreCommon.downloadScript('js/objectSetter/obj_SSR06.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 44 | oreCommon.downloadScript('js/objectSetter/obj_AAA1.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 45 | oreCommon.downloadScript('js/objectSetter/obj_AAA2.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 46 | oreCommon.downloadScript('js/objectSetter/obj_Track_1.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 47 | oreCommon.downloadScript('js/objectSetter/obj_Hover.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 48 | oreCommon.downloadScript('js/objectSetter/obj_BarniaObj.js', scriptList_TestStage.isEndInclude_2); scriptList_TestStage.loadingTargetCount++; 49 | }, 10); 50 | } 51 | } 52 | 53 | scriptList_TestStage.isEndInclude_2 = function() { 54 | scriptList_TestStage.loadedIncludeCount++; 55 | if (scriptList_TestStage.loadedIncludeCount >= scriptList_TestStage.loadingTargetCount && scriptList_TestStage.loadingState == 2 && oreCommon.BrefingScene != null) { 56 | scriptList_TestStage.loadingState = 3; 57 | setTimeout(function() { 58 | //3期インクルード。ステージで使うクラス(実体系)を読み込む 59 | scriptList_TestStage.loadedIncludeCount = 0; 60 | scriptList_TestStage.loadingTargetCount = 0; 61 | oreCommon.downloadScript('content/Message/stage_testStage.js', scriptList_TestStage.isEndInclude_3); scriptList_TestStage.loadingTargetCount++; 62 | oreCommon.downloadScript('js/stagefile/testStageScript.js', scriptList_TestStage.isEndInclude_3); scriptList_TestStage.loadingTargetCount++; 63 | }, 10); 64 | 65 | } 66 | } 67 | 68 | scriptList_TestStage.isEndInclude_3 = function() { 69 | scriptList_TestStage.loadedIncludeCount++; 70 | if (scriptList_TestStage.loadedIncludeCount >= scriptList_TestStage.loadingTargetCount && scriptList_TestStage.loadingState == 3 && testStageScript != null) { 71 | scriptList_TestStage.loadingState = 99; 72 | setTimeout(function() { 73 | //ここのLoadContentは、本戦用のロード。 74 | testStageScript.LoadContent(); 75 | oreCommon.downloadScript('content/cv/teststage/stageCV_test.js', null); 76 | //ダイアログを消す(ここの部分はtitle部分のフラグにゆだねている) 77 | oreCommon.ChangeScene = true; 78 | }, 100); 79 | } 80 | } 81 | 82 | ////////////////////////////////////////////// 83 | 84 | oreCommon.ChangeScene = false; 85 | //ブリーフィングのBGM 86 | oreCommon.changeBGM('content/bgm_mp3/Trap.mp3'); 87 | 88 | //最初期インクルード。ベースクラスとなるモノを読み込む 89 | oreCommon.downloadScript('content/Message/bref_testStage.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 90 | oreCommon.downloadScript('content/cv/teststage/bref_test.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 91 | oreCommon.downloadScript('js/stagefile/bref_testStage.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 92 | oreCommon.downloadScript('js/clsPlayer.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 93 | oreCommon.downloadScript('js/clsWeapon.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 94 | oreCommon.downloadScript('js/clsCpuTink.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 95 | oreCommon.downloadScript('js/clsEtcUnit.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 96 | oreCommon.downloadScript('js/oreBt2dSceneCommon.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 97 | oreCommon.downloadScript('js/objectSetter/ObjSetter_Base.js', scriptList_TestStage.isEndInclude_1); scriptList_TestStage.loadingTargetCount++; 98 | 99 | //////////// 100 | 101 | //シーンの進行状況管理 102 | testStageScript.enumSceneSpan = { 103 | none: -1, 104 | brefLoading: 0, 105 | drawBrefing: 1, 106 | BrefingOut: 2, 107 | 108 | mainContentLoadWait: 10, 109 | 110 | mainContentLoadInit: 11, 111 | 112 | Bt00: 101, 113 | Bt01: 102, 114 | Bt02: 110, 115 | Bt03: 111, 116 | Bt04: 112, 117 | Bt05: 113, 118 | Bt06A: 114, 119 | Bt06B: 115, 120 | Bt07: 150, 121 | Bt07A: 151, 122 | Bt07B: 152, 123 | Bt08: 160, 124 | 125 | Bt99: 199, 126 | 127 | m_EnemyWave2: 120, 128 | m_EnemyWave2_bt: 121, 129 | 130 | m_EnemyWave3: 130, 131 | m_EnemyWave3_bt: 131, 132 | 133 | m_EnemyWave4: 140, 134 | m_EnemyWave4_bt: 141, 135 | 136 | 137 | m_EndBt: 200, 138 | 139 | m_EndScreen: 250, 140 | } 141 | -------------------------------------------------------------------------------- /js/threecomps.js: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | "use strict"; 4 | 5 | //よく使いそうなThreeJS系をまとめたやつ。使用自由。 6 | var threeComps = {}; 7 | 8 | threeComps.manager = null; 9 | threeComps.camera = null; 10 | threeComps.camera_back = null; 11 | 12 | var stats = null; 13 | 14 | threeComps.renderer = null; 15 | threeComps.scene = null; 16 | threeComps.scene_back = null; 17 | 18 | //var clock = new THREE.Clock(); 19 | threeComps.texLoader = null; 20 | threeComps.loader = null; 21 | 22 | threeComps.THREE_onProgress = null; 23 | threeComps.THREE_onError = null; 24 | 25 | //ブルームエフェクトのパラメーター 26 | threeComps.params = { 27 | projection: 'normal', 28 | background: false, 29 | exposure: 1.0, 30 | bloomStrength: 0.4, 31 | bloomThreshold: 1.0, 32 | bloomRadius: 0.64 33 | }; 34 | //ブルーム関連 35 | threeComps.renderScene_back = null; 36 | threeComps.renderScene = null; 37 | threeComps.effectFXAA = null; 38 | threeComps.bloomPass = null; 39 | threeComps.composer = null; 40 | threeComps.copyShader = null; 41 | 42 | ///////////////////////////////////////////// 43 | 44 | //turee.js関連を初期化する。何回走ってもいいようになっている 45 | threeComps.init = function () { 46 | 47 | threeComps.manager = new THREE.LoadingManager(); 48 | threeComps.manager.onProgress = function (item, loaded, total) { 49 | console.log(item, loaded, total); 50 | }; 51 | 52 | threeComps.THREE_onProgress = function (xhr) { 53 | if (xhr.lengthComputable) { 54 | var percentComplete = xhr.loaded / xhr.total * 100; 55 | var fileStr = ""; 56 | if (xhr.target != null && xhr.target.responseURL != null) { 57 | fileStr = xhr.target.responseURL; 58 | } 59 | console.log(fileStr + " -> " + Math.round(percentComplete, 2) + '% downloaded'); 60 | } 61 | }; 62 | threeComps.THREE_onError = function (xhr) { 63 | var fileStr = ""; 64 | if (xhr.target != null && xhr.target.responseURL != null) { 65 | fileStr = xhr.target.responseURL; 66 | } 67 | console.log(fileStr + " Load Error!"); 68 | }; 69 | 70 | threeComps.texLoader = new THREE.TextureLoader(threeComps.manager); 71 | threeComps.loader = new XfileLoader(threeComps.manager, threeComps.texLoader); 72 | 73 | ////////////////// 74 | 75 | threeComps.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 2500); 76 | threeComps.camera.addQ = new THREE.Quaternion(); 77 | 78 | threeComps.scene = new THREE.Scene(); 79 | //threeComps.scene.add(new THREE.AmbientLight(0x999999)); 80 | 81 | threeComps.scene_back = new THREE.Scene(); 82 | threeComps.scene_back.add(new THREE.AmbientLight(0x999999)); 83 | 84 | threeComps.camera_back = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 300000); 85 | threeComps.camera_back.addQ = new THREE.Quaternion(); 86 | 87 | 88 | 89 | threeComps.renderer = new THREE.WebGLRenderer(); 90 | threeComps.renderer.setPixelRatio(window.devicePixelRatio); 91 | //threeComps.renderer.setSize(window.innerWidth, window.innerHeight); 92 | threeComps.renderer.setSize(oreCommon.canvas3D.clientWidth, oreCommon.canvas3D.clientHeight); 93 | threeComps.renderer.setClearColor(0x000000); 94 | threeComps.renderer.autoClear = false; 95 | oreCommon.canvas3D.appendChild(threeComps.renderer.domElement); 96 | 97 | if (stats == null) { 98 | stats = new Stats(); 99 | oreCommon.canvas3D.appendChild(stats.dom); 100 | } 101 | 102 | //ブルームエフェクト 103 | threeComps.renderScene_back = new THREE.RenderPass(threeComps.scene_back, threeComps.camera_back); 104 | threeComps.renderScene = new THREE.RenderPass(threeComps.scene, threeComps.camera); 105 | threeComps.renderScene.clear = false; 106 | // threeComps.renderScene.clear = true; 107 | threeComps.effectFXAA = new THREE.ShaderPass(THREE.FXAAShader); 108 | threeComps.effectFXAA.uniforms['resolution'].value.set(1 / window.innerWidth, 1 / window.innerHeight); 109 | threeComps.copyShader = new THREE.ShaderPass(THREE.CopyShader); 110 | threeComps.copyShader.renderToScreen = true; 111 | threeComps.bloomPass = new THREE.UnrealBloomPass(new THREE.Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85);//1.0, 9, 0.5, 512); 112 | threeComps.composer = new THREE.EffectComposer(threeComps.renderer); 113 | threeComps.composer.setSize(window.innerWidth, window.innerHeight); 114 | 115 | threeComps.composer.addPass(threeComps.renderScene_back); 116 | threeComps.composer.addPass(threeComps.renderScene); 117 | 118 | threeComps.composer.addPass(threeComps.effectFXAA); 119 | threeComps.composer.addPass(threeComps.bloomPass); 120 | threeComps.composer.addPass(threeComps.copyShader); 121 | //threeComps.renderer.toneMapping = THREE.ReinhardToneMapping; 122 | threeComps.renderer.gammaInput = true; 123 | threeComps.renderer.gammaOutput = true; 124 | threeComps.renderer.toneMappingExposure = Math.pow(threeComps.params.exposure, 4.0); 125 | 126 | } 127 | 128 | 129 | threeComps.destructor = function () { 130 | threeComps.manager = null; 131 | threeComps.camera = null; 132 | threeComps.camera_back = null; 133 | 134 | threeComps.renderer = null; 135 | threeComps.scene = null; 136 | threeComps.scene_back = null; 137 | 138 | threeComps.texLoader = null; 139 | threeComps.loader = null; 140 | 141 | threeComps.THREE_onProgress = null; 142 | threeComps.THREE_onError = null; 143 | 144 | threeComps.composer = null; 145 | } -------------------------------------------------------------------------------- /js/titleScreenScript.js: -------------------------------------------------------------------------------- 1 | 2 | "use strict"; 3 | 4 | var titleImage = null; 5 | var titleImage_B = null; 6 | 7 | var beginBrefScreen = false; 8 | 9 | var beginDetectStart = 0; 10 | 11 | function beginStageInit_Master() { 12 | //タイトル画面表示のためのシーン 13 | threeComps.scene = null; 14 | beginDetectStart = 0; 15 | oreCommon.beginFlg = false; 16 | 17 | if (oreCommon.canvas3D == null) { } 18 | 19 | oreCommon.canvas3D.style.visibility = "hidden"; 20 | 21 | ScreenUpdater.NowScene = new ScreenUpdater.UpdaterBase(); 22 | 23 | titleImage = new Image(); 24 | titleImage.src = "content/Junk_title.png"; 25 | 26 | titleImage_B = new Image(); 27 | titleImage_B.src = "content/title_Back.jpg"; 28 | 29 | ScreenUpdater.NowScene.Update = function () { titleScreenUpdater(); }; 30 | ScreenUpdater.NowScene.Render_2D = function () { titleScreenRender(); }; 31 | ScreenUpdater.NowScene.Render3D = function () { nullRender(); }; 32 | oreCommon.setEvent_Load(); 33 | 34 | ScreenUpdater.msgView_big = 0; 35 | ScreenUpdater.msgView_small = 0; 36 | } 37 | 38 | 39 | 40 | function titleScreenUpdater() { 41 | 42 | if (oreCommon.beginFlg && beginDetectStart == 0) { 43 | //ダウンロード開始 44 | ThreeSceneInit(); 45 | oreCommon.BrefingScene = null; 46 | oreCommon.BrefingScene = {}; 47 | 48 | oreCommon.downloadScript('js/stagefile/scriptList_testStage.js', null); 49 | beginDetectStart = Date.now() - 1; 50 | ScreenUpdater.scene_spanTime = 1; 51 | } 52 | 53 | if (oreCommon.beginFlg && beginDetectStart > 1) { 54 | if (Math.max(1.0 - ScreenUpdater.scene_spanTime * 0.0005, 0) <= 0 && oreCommon.ChangeScene && cv_bref_load && oreCommon.BrefingScene != null && msg_bref != null) { 55 | //ブリーフィング開始判断 56 | oreCommon.resizeWindow(); 57 | oreCommon.ChangeScene = false; 58 | ScreenUpdater.msgView_big = 0; 59 | ScreenUpdater.scene_spanTime = 0; 60 | ScreenUpdater.NowScene.Update = function () { oreCommon.BrefingScene.BrefUpdater(); }; 61 | ScreenUpdater.NowScene.Render_2D = function () { oreCommon.BrefingScene.BrefingRender(); }; 62 | ScreenUpdater.NowScene.Render3D = function () { nullRender(); }; 63 | oreCommon.setEvent_Bref(); 64 | } 65 | } 66 | } 67 | 68 | function titleScreenRender() { 69 | oreCommon.conteText2D.clearRect(0, 0, oreCommon.conteText2D.canvas.width, oreCommon.conteText2D.canvas.height); 70 | oreCommon.conteText2D.fillStyle = "rgb(0, 0, 0)"; 71 | oreCommon.conteText2D.fillRect(0, 0, oreCommon.conteText2D.canvas.width, oreCommon.conteText2D.canvas.height); 72 | 73 | //縦横比を守り、中央に表示 74 | var nowPos = [0, 0, 0, 0]; 75 | //縦は、画面の縦で決定 76 | nowPos[3] = oreCommon.conteText2D.canvas.height; 77 | //横の大きさを、縦から計算 78 | nowPos[2] = titleImage_B.width * (nowPos[3] / titleImage_B.height); 79 | //中央に表示させるため、その半分の値を算出 80 | nowPos[0] = (oreCommon.conteText2D.canvas.width * 0.5) - (nowPos[2] * 0.5); 81 | 82 | if (oreCommon.beginFlg) { 83 | oreCommon.conteText2D.globalAlpha = Math.max(1.0 - ScreenUpdater.scene_spanTime * 0.0005, 0); 84 | } 85 | oreCommon.conteText2D.drawImage(titleImage_B, nowPos[0], nowPos[1], nowPos[2], nowPos[3]); 86 | 87 | 88 | nowPos[3] = titleImage.height; 89 | //横の大きさを、縦から計算 90 | nowPos[2] = titleImage.width; 91 | //中央に表示させるため、その半分の値を算出 92 | nowPos[0] = (oreCommon.conteText2D.canvas.width * 0.5) - (titleImage.width * 0.5); 93 | nowPos[1] = (oreCommon.conteText2D.canvas.height * 0.5) - (titleImage.height * 0.5) - 100; 94 | 95 | if (!oreCommon.beginFlg) { 96 | oreCommon.conteText2D.globalAlpha = Math.min(ScreenUpdater.scene_spanTime * 0.0005, 1.0); 97 | } 98 | 99 | oreCommon.conteText2D.drawImage(titleImage, nowPos[0], nowPos[1], nowPos[2], nowPos[3]); 100 | 101 | oreCommon.conteText2D.globalAlpha = 1.0; 102 | 103 | oreCommon.conteText2D.font = "11pt Arial"; 104 | oreCommon.conteText2D.fillStyle = 'white'; 105 | oreCommon.conteText2D.textAlign = 'left'; 106 | //oreCommon.conteText2D.fillText('title', 100, 100); 107 | 108 | } 109 | ////////////////////////// 110 | --------------------------------------------------------------------------------