前提・実現したいこと
javascriptの超初心者です。
”テキストを読んでばかりではだめだ、手を動かしてみよう”と考え、3D年賀状を作ってみたいなと思い以下のサイトのコードをひとまずコピペして動かしてみようかと思ったところ、以下のようなエラーが出てきてしまいました。
発生している問題・エラーメッセージ
終了していない文字列型の定数です
該当のソースコード
javascript
1// forked from cx20's "Three.js + Oimo.js でドミノっぽくドット絵を作るテスト(サンタバージョン)" http://jsdo.it/cx20/5gmA 2// forked from cx20's "Three.js + Oimo.js でドミノっぽくドット絵を作るテスト" http://jsdo.it/cx20/8ReN 3// forked from cx20's "Three.js + Oimo.js でドット絵を落下させるテスト" http://jsdo.it/cx20/voHQ 4// forked from Lo-Th's "oimo basic" http://jsdo.it/Lo-Th/frXo 5 6var DOT_SIZE = 16; 7 8// □□□■□□□□□□□□□□□□ 9// □■■■■■■□□■□□□■□□ 10// □□□■□□□□□■□■■■■■ 11// □□□■□□□□□■□□□■□□ 12// □□■■■■■□□■□□□■□□ 13// □■□■□■□■□■□□□■□□ 14// □■□□■□□■□■□□□■□□ 15// □□■■□□■□□■□□■□□□ 16// □□□□□□□□□□□□□□□□ 17// □□□■□□■□□□□□□□□□ 18// □■■■■■□■□□■□□■□□ 19// □□□■□□□□□□■■■■■□ 20// □■■■■■■□□■□■□■□■ 21// ■□□■□□□■□■□■□■□■ 22// ■□□■□□□■□■□□■□□■ 23// □■■□□□■□□□■■□□■□ 24var dataSet = [ 25 "赤","赤","赤","白","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤", 26 "赤","白","白","白","白","白","白","赤","赤","白","赤","赤","赤","白","赤","赤", 27 "赤","赤","赤","白","赤","赤","赤","赤","赤","白","赤","白","白","白","白","白", 28 "赤","赤","赤","白","赤","赤","赤","赤","赤","白","赤","赤","赤","白","赤","赤", 29 "赤","赤","白","白","白","白","白","赤","赤","白","赤","赤","赤","白","赤","赤", 30 "赤","白","赤","白","赤","白","赤","白","赤","白","赤","赤","赤","白","赤","赤", 31 "赤","白","赤","赤","白","赤","赤","白","赤","白","赤","赤","赤","白","赤","赤", 32 "赤","赤","白","白","赤","赤","白","赤","赤","白","赤","赤","白","赤","赤","赤", 33 "赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤","赤", 34 "赤","赤","赤","白","赤","赤","白","赤","赤","赤","赤","赤","赤","赤","赤","赤", 35 "赤","白","白","白","白","白","赤","白","赤","赤","白","赤","赤","白","赤","赤", 36 "赤","赤","赤","白","赤","赤","赤","赤","赤","赤","白","白","白","白","白","赤", 37 "赤","白","白","白","白","白","白","赤","赤","白","赤","白","赤","白","赤","白", 38 "白","赤","赤","白","赤","赤","赤","白","赤","白","赤","白","赤","白","赤","白", 39 "白","赤","赤","白","赤","赤","赤","白","赤","白","赤","赤","白","赤","赤","白", 40 "赤","白","白","赤","赤","赤","白","赤","赤","赤","白","白","赤","赤","白","赤" 41]; 42 43function getRgbColor( c ) 44{ 45 var colorHash = { 46 "黒":0x000000, 47 "白":0xffffff, 48 "肌":0xffcccc, 49 "茶":0x800000, 50 "赤":0xff0000, 51 "黄":0xffff00, 52 "緑":0x00ff00, 53 "水":0x00ffff, 54 "青":0x0000ff, 55 "紫":0x800080 56 }; 57 return colorHash[ c ]; 58} 59 60// Three.js 用変数 61var camera, scene, light, renderer, container, center; 62var meshs = []; 63var geoBox; 64 65// Oimo.js 用変数 66var world; 67var bodys = []; 68 69init(); 70animate(); 71 72function init() { 73 // カメラを作成する 74 camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 1, 1000); 75 camera.position.set(0, 150, 300); 76 center = new THREE.Vector3(); 77 camera.lookAt(center); 78 79 // シーンを作成する 80 scene = new THREE.Scene(); 81 82 // 物理演算の準備 83 world = new OIMO.World(); 84 85 // 床を作成する 86 createGround(); 87 88 // ドミノを作成する 89 createDomino(); 90 91 // ドミノ碑を倒す為の立方体を配置する 92 createCube(); 93 94 // ライトを作成する 95 light = new THREE.DirectionalLight(0xffffff, 1.3); 96 light.position.set(0.3, 1, 0.5); 97 scene.add(light); 98 99 // レンダラーを作成する 100 renderer = new THREE.WebGLRenderer(); 101 renderer.setClearColor(0x0000000); 102 renderer.setSize(window.innerWidth, window.innerHeight); 103 104 // レンダラーのサイズを指定する 105 renderer.setSize(window.innerWidth, window.innerHeight); 106 107 // HTML との紐づけを行う 108 container = document.getElementById("container"); 109 container.appendChild(renderer.domElement); 110} 111 112function createGround() { 113 // 床の物理演算の設定 114 var ground = new OIMO.Body({ 115 size: [400, 40, 400], 116 pos: [0, -50, 0], 117 world: world 118 }); 119 120 // 床表示用の設定 121 var material = new THREE.MeshLambertMaterial({ 122 color: 0x202020 123 }); 124 var geometry = new THREE.BoxGeometry(400, 40, 400); 125 var mesh = new THREE.Mesh(geometry, material); 126 mesh.position.y = -50; 127 scene.add(mesh); 128} 129 130function createDomino() { 131 // ドミノ碑のサイズ 132 var w = DOT_SIZE * 0.2; 133 var h = DOT_SIZE * 1.5; 134 var d = DOT_SIZE; 135 136 // ドミノ碑のベースとなる箱を作成する 137 geoBox = new THREE.BoxGeometry(1, 1, 1); 138 139 var color; 140 var i; 141 // ドミノ碑を16x16個、整列させる 142 for (var x = 0; x < 16; x++) { 143 for (var z = 0; z < 16; z++) { 144 i = x + (z) * 16; 145 y = 0; 146 // 物理演算用のオブジェクトを設定 147 bodys[i] = new OIMO.Body({ 148 type: 'box', 149 size: [w, h, d], 150 pos: [-120 + x * DOT_SIZE, y * DOT_SIZE, -120 + z * DOT_SIZE * 1.2], 151 move: true, 152 world: world 153 }); 154 // ドミノ碑の色を設定(ドット絵になるよう色を変更) 155 color = getRgbColor(dataSet[i]); 156 var material = new THREE.MeshLambertMaterial({ 157 color: color 158 }); 159 // 表示用のオブジェクトを設定 160 meshs[i] = new THREE.Mesh(geoBox, material); 161 meshs[i].scale.set(w, h, d); 162 scene.add(meshs[i]); 163 } 164 } 165} 166 167function createCube() { 168 // 立方体のサイズ 169 var w = DOT_SIZE; 170 var h = DOT_SIZE; 171 var d = DOT_SIZE; 172 // ドミノ碑を倒す為に、赤色の立方体×16個、配置する。 173 var size = bodys.length; 174 for (var i = 0; i < 16; i++) { 175 var x = 0; 176 var y = 2; 177 var z = i; 178 // 物理演算用のオブジェクトを設定 179 bodys[size + i] = new OIMO.Body({ 180 type: 'box', 181 size: [w, h, d], 182 pos: [-125 + x * DOT_SIZE, y * DOT_SIZE, -120 + z * DOT_SIZE * 1.2], 183 move: true, 184 world: world 185 }); 186 // 立方体の色を設定(赤色) 187 var material = new THREE.MeshLambertMaterial({ 188 color: "#f00" 189 }); 190 // 表示用のオブジェクトを設定 191 meshs[size + i] = new THREE.Mesh(geoBox, material); 192 meshs[size + i].scale.set(w, h, d); 193 scene.add(meshs[size + i]); 194 } 195} 196 197function animate() { 198 requestAnimationFrame(animate); 199 render(); 200} 201 202function render() { 203 // 物理演算の世界の時間を進める 204 world.step(); 205 206 var p, r, m, x, y, z; 207 var mtx = new THREE.Matrix4(); 208 var i = bodys.length; 209 var mesh; 210 211 // ドミノ碑の物理演算を行い位置の算出を行う 212 while (i--) { 213 var body = bodys[i].body; 214 mesh = meshs[i]; 215 m = body.getMatrix(); 216 mtx.fromArray(m); 217 mesh.position.setFromMatrixPosition(mtx); 218 mesh.rotation.setFromRotationMatrix(mtx); 219 } 220 221 // 表示を更新する 222 renderer.render(scene, camera); 223} 224
試したこと
エラー1のように表示されていたので該当箇所の黒色の部分、0xFF000000の前後に引用符””(https://gyazo.com/26d4bd50653633099303004e9a1aeaf6)を付けてみたら[エラー2](https://gyazo.com/26d4bd50653633099303004e9a1aeaf6)のようになりました。
いや、、、コロンはあるよなあ、、、と思いこれ以降は何をしたらいいのかわからず
手詰まりです。
補足情報(FW/ツールのバージョンなど)
・このコードをコピペしました
3D年賀状コード
・このサイトから引っ張ってきました。
引用サイト
今日中にいろいろと試してみたいのにここで手詰まりでとても困っています。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー