Advertisement
Guest User

Untitled

a guest
May 6th, 2015
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.84 KB | None | 0 0
  1. <?php
  2. if(isset($_GET['user'])) $user = htmlentities($_GET['user'],ENT_QUOTES); //Minecraft Username
  3. if(!isset($user)) $user = "404"; ?>
  4.  
  5. <!DOCTYPE html>
  6.  
  7. <!--
  8. 3D Skin Viewer v2 by earthiverse: https://github.com/earthiverse/3D-Minecraft-Skin-Viewer
  9. Improved by _SIM_
  10. -->
  11.  
  12. <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  13.  
  14. <title>3d tests</title>
  15. <script src="./js3D/2dskin.js" type="text/javascript"></script>
  16. <script src="./js3D/three.min.js" type="text/javascript"></script>
  17. <style>
  18.  
  19. * {
  20. border: 0;
  21. margin: 0;
  22. padding: 0;
  23. }
  24.  
  25. #model {
  26. display: inline-block;
  27. width: 100%;
  28. }
  29.  
  30. #canvas {
  31. display: none;
  32. }
  33.  
  34. #cloakcanvas {
  35. display: none;
  36. }
  37.  
  38. </style></head>
  39.  
  40. <body>
  41. <canvas id="canvas" width="64" height="64"></canvas>
  42. <canvas id="cloakcanvas" width="64" height="32"></canvas>
  43.  
  44. <div id="model">
  45. <script type="text/javascript">
  46.  
  47. var scene, camera, renderer;
  48. var geometry, material, mesh;
  49.  
  50. var rightLeg2Box, leftLeg2Box;
  51.  
  52. var scrollbarOffset = 4;
  53.  
  54. var radius = 32;
  55. var alpha = 0;
  56.  
  57. var sidebarWidth = 0;
  58.  
  59. camera = new THREE.PerspectiveCamera(75, (window.innerWidth - sidebarWidth - scrollbarOffset) / window.innerHeight, 1, 10000);
  60. camera.position.y = -12;
  61.  
  62. scene = new THREE.Scene();
  63.  
  64. canvas = document.getElementById('canvas');
  65. canvas.width = 64;
  66. canvas.height = 64;
  67. var context = canvas.getContext("2d");
  68.  
  69. cloakcanvas = document.getElementById('cloakcanvas');
  70. cloakcanvas.width = 64;
  71. cloakcanvas.height = 32;
  72. var cloakcontext = cloakcanvas.getContext("2d");
  73.  
  74. var skinTexture = new THREE.Texture(canvas);
  75. skinTexture.magFilter = THREE.NearestFilter;
  76. skinTexture.minFilter = THREE.NearestMipMapNearestFilter;
  77.  
  78. var cloakTexture = new THREE.Texture(cloakcanvas);
  79. cloakTexture.magFilter = THREE.NearestFilter;
  80. cloakTexture.minFilter = THREE.NearestMipMapNearestFilter;
  81.  
  82. // Get the texture for the skin
  83. material = new THREE.MeshBasicMaterial({map: skinTexture, transparent: true, opacity: 1, alphaTest: 0.5, side: THREE.DoubleSide});
  84. material2 = new THREE.MeshBasicMaterial({map: skinTexture, transparent: true, opacity: 1, alphaTest: 0.5, side: THREE.DoubleSide});
  85. material3 = new THREE.MeshBasicMaterial({map: cloakTexture, transparent: true, opacity: 1, alphaTest: 0.5, side: THREE.DoubleSide});
  86.  
  87. var img = new Image();
  88. img.crossOrigin = '';
  89. var hasAnimate = false;
  90. img.onload = function() {
  91. console.log("Loaded Image");
  92.  
  93. // Erase what was on the canvas before
  94. context.clearRect(0, 0, 64, 64);
  95.  
  96. // Draw the image to the canvas
  97. context.drawImage(img, 0, 0);
  98.  
  99. // Convert the image if need be
  100. if(img.height == 32) Convert6432To6464(context);
  101. FixNonVisible(context);
  102. FixOverlay(context);
  103.  
  104. skinTexture.needsUpdate = true;
  105.  
  106. material.needsUpdate = true;
  107. material2.needsUpdate = true;
  108.  
  109. if(!hasAnimate)
  110. {
  111. RenderSkin();
  112. hasAnimate = true;
  113. Animate();
  114. }
  115. }
  116. img.onerror = function() {
  117. console.log("Failed loading " + img.src);
  118. }
  119.  
  120. // CLOAK
  121.  
  122. var imgc = new Image();
  123. imgc.crossOrigin = '';
  124. var hasAnimate = false;
  125. imgc.onload = function() {
  126. console.log("Loaded Image");
  127.  
  128. // Erase what was on the canvas before
  129. cloakcontext.clearRect(0, 0, 64, 32);
  130.  
  131. // Draw the image to the canvas
  132. cloakcontext.drawImage(imgc, 0, 0);
  133.  
  134. cloakTexture.needsUpdate = true;
  135.  
  136. material3.needsUpdate = true;
  137.  
  138. if(!hasAnimate)
  139. {
  140. RenderSkin();
  141. hasAnimate = true;
  142. Animate();
  143. }
  144. }
  145. imgc.onerror = function() {
  146. console.log("Failed loading " + imgc.src);
  147. }
  148.  
  149. // Skin source
  150. img.src = 'http://redcrafting.ru/static_content/skins/<?php echo $user; ?>.png';
  151.  
  152. // Cloak source
  153. if(imageExists('http://redcrafting.ru/static_content/cloaks/<?php echo $user; ?>.png')){
  154. imgc.src = 'http://redcrafting.ru/static_content/cloaks/<?php echo $user; ?>.png';
  155. } else {
  156. imgc.src = 'http://redcrafting.ru/static_content/cloaks/404.png';
  157. }
  158.  
  159.  
  160. function RenderSkin() {
  161. // Cloak
  162. var cloakBottom = [
  163. new THREE.Vector2(0.328125, 0.96875),
  164. new THREE.Vector2(0.171875, 0.96875),
  165. new THREE.Vector2(0.171875, 1),
  166. new THREE.Vector2(0.328125, 1)
  167. ];
  168. var cloakTop = [
  169. new THREE.Vector2(0.171875, 0.96875),
  170. new THREE.Vector2(0.015625, 0.96875),
  171. new THREE.Vector2(0.015625, 1),
  172. new THREE.Vector2(0.171875, 1)
  173. ];
  174. var cloakFront = [
  175. new THREE.Vector2(0.1875, 0.46875),
  176. new THREE.Vector2(0.34375, 0.46875),
  177. new THREE.Vector2(0.34375, 0.96875),
  178. new THREE.Vector2(0.1875, 0.96875)
  179. ];
  180. var cloakBack = [
  181. new THREE.Vector2(0.015625, 0.46875),
  182. new THREE.Vector2(0.171875, 0.46875),
  183. new THREE.Vector2(0.171875, 0.96875),
  184. new THREE.Vector2(0.015625, 0.96875)
  185. ];
  186. var cloakLeft = [
  187. new THREE.Vector2(0.1875, 0.46875),
  188. new THREE.Vector2(0.171875, 0.46875),
  189. new THREE.Vector2(0.171875, 0.96875),
  190. new THREE.Vector2(0.1875, 0.96875)
  191. ];
  192. var cloakRight = [
  193. new THREE.Vector2(0.015625, 0.46875),
  194. new THREE.Vector2(0, 0.46875),
  195. new THREE.Vector2(0, 0.96875),
  196. new THREE.Vector2(0.015625, 0.96875)
  197. ];
  198.  
  199. cloakBox = new THREE.BoxGeometry(10, 16, 1, 0, 0, 0);
  200. cloakBox.faceVertexUvs[0] = [];
  201. cloakBox.faceVertexUvs[0][0] = [cloakRight[3], cloakRight[0], cloakRight[2]];
  202. cloakBox.faceVertexUvs[0][1] = [cloakRight[0], cloakRight[1], cloakRight[2]];
  203. cloakBox.faceVertexUvs[0][2] = [cloakLeft[3], cloakLeft[0], cloakLeft[2]];
  204. cloakBox.faceVertexUvs[0][3] = [cloakLeft[0], cloakLeft[1], cloakLeft[2]];
  205. cloakBox.faceVertexUvs[0][4] = [cloakTop[3], cloakTop[0], cloakTop[2]];
  206. cloakBox.faceVertexUvs[0][5] = [cloakTop[0], cloakTop[1], cloakTop[2]];
  207. cloakBox.faceVertexUvs[0][6] = [cloakBottom[0], cloakBottom[3], cloakBottom[1]];
  208. cloakBox.faceVertexUvs[0][7] = [cloakBottom[3], cloakBottom[2], cloakBottom[1]];
  209. cloakBox.faceVertexUvs[0][8] = [cloakFront[3], cloakFront[0], cloakFront[2]];
  210. cloakBox.faceVertexUvs[0][9] = [cloakFront[0], cloakFront[1], cloakFront[2]];
  211. cloakBox.faceVertexUvs[0][10] = [cloakBack[3], cloakBack[0], cloakBack[2]];
  212. cloakBox.faceVertexUvs[0][11] = [cloakBack[0], cloakBack[1], cloakBack[2]];
  213. cloakMesh = new THREE.Mesh(cloakBox, material3);
  214. cloakMesh.name = "cloak";
  215. cloakMesh.position.y = -13;
  216. cloakMesh.position.z = -3.5;
  217. scene.add(cloakMesh);
  218.  
  219. // Head Parts
  220. var headTop = [
  221. new THREE.Vector2(0.125, 0.875),
  222. new THREE.Vector2(0.25, 0.875),
  223. new THREE.Vector2(0.25, 1),
  224. new THREE.Vector2(0.125, 1)
  225. ];
  226. var headBottom = [
  227. new THREE.Vector2(0.125, 0.8125),
  228. new THREE.Vector2(0.1875, 0.8125),
  229. new THREE.Vector2(0.1875, 0.875),
  230. new THREE.Vector2(0.125, 0.875)
  231. ];
  232. var headLeft = [
  233. new THREE.Vector2(0, 0.75),
  234. new THREE.Vector2(0.125, 0.75),
  235. new THREE.Vector2(0.125, 0.875),
  236. new THREE.Vector2(0, 0.875)
  237. ];
  238. var headFront = [
  239. new THREE.Vector2(0.125, 0.75),
  240. new THREE.Vector2(0.25, 0.75),
  241. new THREE.Vector2(0.25 ,0.875),
  242. new THREE.Vector2(0.125 ,0.875)
  243. ];
  244. var headRight = [
  245. new THREE.Vector2(0.25, 0.75),
  246. new THREE.Vector2(0.375, 0.75),
  247. new THREE.Vector2(0.375, 0.875),
  248. new THREE.Vector2(0.25, 0.875)
  249. ];
  250. var headBack = [
  251. new THREE.Vector2(0.375, 0.75),
  252. new THREE.Vector2(0.5, 0.75),
  253. new THREE.Vector2(0.5, 0.875),
  254. new THREE.Vector2(0.375, 0.875)
  255. ];
  256. headBox = new THREE.BoxGeometry(8, 8, 8, 0, 0, 0);
  257. headBox.faceVertexUvs[0] = [];
  258. headBox.faceVertexUvs[0][0] = [headRight[3], headRight[0], headRight[2]];
  259. headBox.faceVertexUvs[0][1] = [headRight[0], headRight[1], headRight[2]];
  260. headBox.faceVertexUvs[0][2] = [headLeft[3], headLeft[0], headLeft[2]];
  261. headBox.faceVertexUvs[0][3] = [headLeft[0], headLeft[1], headLeft[2]];
  262. headBox.faceVertexUvs[0][4] = [headTop[3], headTop[0], headTop[2]];
  263. headBox.faceVertexUvs[0][5] = [headTop[0], headTop[1], headTop[2]];
  264. headBox.faceVertexUvs[0][6] = [headBottom[0], headBottom[3], headBottom[1]];
  265. headBox.faceVertexUvs[0][7] = [headBottom[3], headBottom[2], headBottom[1]];
  266. headBox.faceVertexUvs[0][8] = [headFront[3], headFront[0], headFront[2]];
  267. headBox.faceVertexUvs[0][9] = [headFront[0], headFront[1], headFront[2]];
  268. headBox.faceVertexUvs[0][10] = [headBack[3], headBack[0], headBack[2]];
  269. headBox.faceVertexUvs[0][11] = [headBack[0], headBack[1], headBack[2]];
  270. headMesh = new THREE.Mesh(headBox, material);
  271. headMesh.name = "head";
  272. scene.add(headMesh);
  273.  
  274. // Body Parts
  275. var bodyTop = [
  276. new THREE.Vector2(0.3125, 0.6875),
  277. new THREE.Vector2(0.4375, 0.6875),
  278. new THREE.Vector2(0.4375, 0.75),
  279. new THREE.Vector2(0.3125, 0.75)
  280. ];
  281. var bodyBottom = [
  282. new THREE.Vector2(0.4375, 0.6875),
  283. new THREE.Vector2(0.5625, 0.6875),
  284. new THREE.Vector2(0.5625, 0.75),
  285. new THREE.Vector2(0.4375, 0.75)
  286. ];
  287. var bodyLeft = [
  288. new THREE.Vector2(0.25, 0.5),
  289. new THREE.Vector2(0.3125, 0.5),
  290. new THREE.Vector2(0.3125, 0.6875),
  291. new THREE.Vector2(0.25, 0.6875)
  292. ];
  293. var bodyFront = [
  294. new THREE.Vector2(0.3125, 0.5),
  295. new THREE.Vector2(0.4375, 0.5),
  296. new THREE.Vector2(0.4375, 0.6875),
  297. new THREE.Vector2(0.3125, 0.6875)
  298. ];
  299. var bodyRight = [
  300. new THREE.Vector2(0.4375, 0.5),
  301. new THREE.Vector2(0.5, 0.5),
  302. new THREE.Vector2(0.5, 0.6875),
  303. new THREE.Vector2(0.4375, 0.6875)
  304. ];
  305. var bodyBack = [
  306. new THREE.Vector2(0.5, 0.5),
  307. new THREE.Vector2(0.625, 0.5),
  308. new THREE.Vector2(0.625, 0.6875),
  309. new THREE.Vector2(0.5, 0.6875)
  310. ];
  311. bodyBox = new THREE.BoxGeometry(8, 12, 4, 0, 0, 0);
  312. bodyBox.faceVertexUvs[0] = [];
  313. bodyBox.faceVertexUvs[0][0] = [bodyRight[3], bodyRight[0], bodyRight[2]];
  314. bodyBox.faceVertexUvs[0][1] = [bodyRight[0], bodyRight[1], bodyRight[2]];
  315. bodyBox.faceVertexUvs[0][2] = [bodyLeft[3], bodyLeft[0], bodyLeft[2]];
  316. bodyBox.faceVertexUvs[0][3] = [bodyLeft[0], bodyLeft[1], bodyLeft[2]];
  317. bodyBox.faceVertexUvs[0][4] = [bodyTop[3], bodyTop[0], bodyTop[2]];
  318. bodyBox.faceVertexUvs[0][5] = [bodyTop[0], bodyTop[1], bodyTop[2]];
  319. bodyBox.faceVertexUvs[0][6] = [bodyBottom[0], bodyBottom[3], bodyBottom[1]];
  320. bodyBox.faceVertexUvs[0][7] = [bodyBottom[3], bodyBottom[2], bodyBottom[1]];
  321. bodyBox.faceVertexUvs[0][8] = [bodyFront[3], bodyFront[0], bodyFront[2]];
  322. bodyBox.faceVertexUvs[0][9] = [bodyFront[0], bodyFront[1], bodyFront[2]];
  323. bodyBox.faceVertexUvs[0][10] = [bodyBack[3], bodyBack[0], bodyBack[2]];
  324. bodyBox.faceVertexUvs[0][11] = [bodyBack[0], bodyBack[1], bodyBack[2]];
  325. bodyMesh = new THREE.Mesh(bodyBox, material);
  326. bodyMesh.name = "body";
  327. bodyMesh.position.y = -10;
  328. scene.add(bodyMesh);
  329.  
  330. // Right Arm Parts
  331. var rightArmTop = [
  332. new THREE.Vector2(0.6875, 0.6875),
  333. new THREE.Vector2(0.75, 0.6875),
  334. new THREE.Vector2(0.75, 0.75),
  335. new THREE.Vector2(0.6875, 0.75),
  336. ];
  337. var rightArmBottom = [
  338. new THREE.Vector2(0.75, 0.6875),
  339. new THREE.Vector2(0.8125, 0.6875),
  340. new THREE.Vector2(0.8125, 0.75),
  341. new THREE.Vector2(0.75, 0.75)
  342. ];
  343. var rightArmLeft = [
  344. new THREE.Vector2(0.625, 0.5),
  345. new THREE.Vector2(0.6875, 0.5),
  346. new THREE.Vector2(0.6875, 0.6875),
  347. new THREE.Vector2(0.625, 0.6875)
  348. ];
  349. var rightArmFront = [
  350. new THREE.Vector2(0.6875, 0.5),
  351. new THREE.Vector2(0.75, 0.5),
  352. new THREE.Vector2(0.75, 0.6875),
  353. new THREE.Vector2(0.6875, 0.6875)
  354. ];
  355. var rightArmRight = [
  356. new THREE.Vector2(0.75, 0.5),
  357. new THREE.Vector2(0.8125, 0.5),
  358. new THREE.Vector2(0.8125, 0.6875),
  359. new THREE.Vector2(0.75, 0.6875)
  360. ];
  361. var rightArmBack = [
  362. new THREE.Vector2(0.8125, 0.5),
  363. new THREE.Vector2(0.875, 0.5),
  364. new THREE.Vector2(0.875, 0.6875),
  365. new THREE.Vector2(0.8125, 0.6875)
  366. ];
  367. rightArmBox = new THREE.BoxGeometry(4, 12, 4, 0, 0, 0);
  368. rightArmBox.faceVertexUvs[0] = [];
  369. rightArmBox.faceVertexUvs[0][0] = [rightArmRight[3], rightArmRight[0], rightArmRight[2]];
  370. rightArmBox.faceVertexUvs[0][1] = [rightArmRight[0], rightArmRight[1], rightArmRight[2]];
  371. rightArmBox.faceVertexUvs[0][2] = [rightArmLeft[3], rightArmLeft[0], rightArmLeft[2]];
  372. rightArmBox.faceVertexUvs[0][3] = [rightArmLeft[0], rightArmLeft[1], rightArmLeft[2]];
  373. rightArmBox.faceVertexUvs[0][4] = [rightArmTop[3], rightArmTop[0], rightArmTop[2]];
  374. rightArmBox.faceVertexUvs[0][5] = [rightArmTop[0], rightArmTop[1], rightArmTop[2]];
  375. rightArmBox.faceVertexUvs[0][6] = [rightArmBottom[0], rightArmBottom[3], rightArmBottom[1]];
  376. rightArmBox.faceVertexUvs[0][7] = [rightArmBottom[3], rightArmBottom[2], rightArmBottom[1]];
  377. rightArmBox.faceVertexUvs[0][8] = [rightArmFront[3], rightArmFront[0], rightArmFront[2]];
  378. rightArmBox.faceVertexUvs[0][9] = [rightArmFront[0], rightArmFront[1], rightArmFront[2]];
  379. rightArmBox.faceVertexUvs[0][10] = [rightArmBack[3], rightArmBack[0], rightArmBack[2]];
  380. rightArmBox.faceVertexUvs[0][11] = [rightArmBack[0], rightArmBack[1], rightArmBack[2]];
  381. rightArmMesh = new THREE.Mesh(rightArmBox, material);
  382. rightArmMesh.name = "rightArm";
  383. rightArmMesh.position.y = -10;
  384. rightArmMesh.position.x = -6.5;
  385. scene.add(rightArmMesh);
  386.  
  387. // Left Arm Parts
  388. var leftArmTop = [
  389. new THREE.Vector2(0.5625, 0.1875),
  390. new THREE.Vector2(0.625, 0.1875),
  391. new THREE.Vector2(0.625, 0.25),
  392. new THREE.Vector2(0.5625, 0.25),
  393. ];
  394. var leftArmBottom = [
  395. new THREE.Vector2(0.625, 0.1875),
  396. new THREE.Vector2(0.6875, 0.1875),
  397. new THREE.Vector2(0.6875, 0.25),
  398. new THREE.Vector2(0.625, 0.25)
  399. ];
  400. var leftArmLeft = [
  401. new THREE.Vector2(0.5, 0),
  402. new THREE.Vector2(0.5625, 0),
  403. new THREE.Vector2(0.5625, 0.1875),
  404. new THREE.Vector2(0.5, 0.1875)
  405. ];
  406. var leftArmFront = [
  407. new THREE.Vector2(0.5625, 0),
  408. new THREE.Vector2(0.625, 0),
  409. new THREE.Vector2(0.625, 0.1875),
  410. new THREE.Vector2(0.5625, 0.1875)
  411. ];
  412. var leftArmRight = [
  413. new THREE.Vector2(0.625, 0),
  414. new THREE.Vector2(0.6875, 0),
  415. new THREE.Vector2(0.6875, 0.1875),
  416. new THREE.Vector2(0.625, 0.1875)
  417. ];
  418. var leftArmBack = [
  419. new THREE.Vector2(0.6875, 0),
  420. new THREE.Vector2(0.75, 0),
  421. new THREE.Vector2(0.75, 0.1875),
  422. new THREE.Vector2(0.6875, 0.1875)
  423. ];
  424. leftArmBox = new THREE.BoxGeometry(4, 12, 4, 0, 0, 0);
  425. leftArmBox.faceVertexUvs[0] = [];
  426. leftArmBox.faceVertexUvs[0][0] = [leftArmRight[3], leftArmRight[0], leftArmRight[2]];
  427. leftArmBox.faceVertexUvs[0][1] = [leftArmRight[0], leftArmRight[1], leftArmRight[2]];
  428. leftArmBox.faceVertexUvs[0][2] = [leftArmLeft[3], leftArmLeft[0], leftArmLeft[2]];
  429. leftArmBox.faceVertexUvs[0][3] = [leftArmLeft[0], leftArmLeft[1], leftArmLeft[2]];
  430. leftArmBox.faceVertexUvs[0][4] = [leftArmTop[3], leftArmTop[0], leftArmTop[2]];
  431. leftArmBox.faceVertexUvs[0][5] = [leftArmTop[0], leftArmTop[1], leftArmTop[2]];
  432. leftArmBox.faceVertexUvs[0][6] = [leftArmBottom[0], leftArmBottom[3], leftArmBottom[1]];
  433. leftArmBox.faceVertexUvs[0][7] = [leftArmBottom[3], leftArmBottom[2], leftArmBottom[1]];
  434. leftArmBox.faceVertexUvs[0][8] = [leftArmFront[3], leftArmFront[0], leftArmFront[2]];
  435. leftArmBox.faceVertexUvs[0][9] = [leftArmFront[0], leftArmFront[1], leftArmFront[2]];
  436. leftArmBox.faceVertexUvs[0][10] = [leftArmBack[3], leftArmBack[0], leftArmBack[2]];
  437. leftArmBox.faceVertexUvs[0][11] = [leftArmBack[0], leftArmBack[1], leftArmBack[2]];
  438. leftArmMesh = new THREE.Mesh(leftArmBox, material);
  439. leftArmMesh.name = "leftArm";
  440. leftArmMesh.position.y = -10;
  441. leftArmMesh.position.x = 6.5;
  442. scene.add(leftArmMesh);
  443.  
  444. // Right Leg Parts
  445. var rightLegTop = [
  446. new THREE.Vector2(0.0625, 0.6875),
  447. new THREE.Vector2(0.125, 0.6875),
  448. new THREE.Vector2(0.125, 0.75),
  449. new THREE.Vector2(0.0625, 0.75),
  450. ];
  451. var rightLegBottom = [
  452. new THREE.Vector2(0.125, 0.6875),
  453. new THREE.Vector2(0.1875, 0.6875),
  454. new THREE.Vector2(0.1875, 0.75),
  455. new THREE.Vector2(0.125, 0.75)
  456. ];
  457. var rightLegLeft = [
  458. new THREE.Vector2(0, 0.5),
  459. new THREE.Vector2(0.0625, 0.5),
  460. new THREE.Vector2(0.0625, 0.6875),
  461. new THREE.Vector2(0, 0.6875)
  462. ];
  463. var rightLegFront = [
  464. new THREE.Vector2(0.0625, 0.5),
  465. new THREE.Vector2(0.125, 0.5),
  466. new THREE.Vector2(0.125, 0.6875),
  467. new THREE.Vector2(0.0625, 0.6875)
  468. ];
  469. var rightLegRight = [
  470. new THREE.Vector2(0.125, 0.5),
  471. new THREE.Vector2(0.1875, 0.5),
  472. new THREE.Vector2(0.1875, 0.6875),
  473. new THREE.Vector2(0.125, 0.6875)
  474. ];
  475. var rightLegBack = [
  476. new THREE.Vector2(0.1875, 0.5),
  477. new THREE.Vector2(0.25, 0.5),
  478. new THREE.Vector2(0.25, 0.6875),
  479. new THREE.Vector2(0.1875, 0.6875)
  480. ];
  481. rightLegBox = new THREE.BoxGeometry(4, 12, 4, 0, 0, 0);
  482. rightLegBox.faceVertexUvs[0] = [];
  483. rightLegBox.faceVertexUvs[0][0] = [rightLegRight[3], rightLegRight[0], rightLegRight[2]];
  484. rightLegBox.faceVertexUvs[0][1] = [rightLegRight[0], rightLegRight[1], rightLegRight[2]];
  485. rightLegBox.faceVertexUvs[0][2] = [rightLegLeft[3], rightLegLeft[0], rightLegLeft[2]];
  486. rightLegBox.faceVertexUvs[0][3] = [rightLegLeft[0], rightLegLeft[1], rightLegLeft[2]];
  487. rightLegBox.faceVertexUvs[0][4] = [rightLegTop[3], rightLegTop[0], rightLegTop[2]];
  488. rightLegBox.faceVertexUvs[0][5] = [rightLegTop[0], rightLegTop[1], rightLegTop[2]];
  489. rightLegBox.faceVertexUvs[0][6] = [rightLegBottom[0], rightLegBottom[3], rightLegBottom[1]];
  490. rightLegBox.faceVertexUvs[0][7] = [rightLegBottom[3], rightLegBottom[2], rightLegBottom[1]];
  491. rightLegBox.faceVertexUvs[0][8] = [rightLegFront[3], rightLegFront[0], rightLegFront[2]];
  492. rightLegBox.faceVertexUvs[0][9] = [rightLegFront[0], rightLegFront[1], rightLegFront[2]];
  493. rightLegBox.faceVertexUvs[0][10] = [rightLegBack[3], rightLegBack[0], rightLegBack[2]];
  494. rightLegBox.faceVertexUvs[0][11] = [rightLegBack[0], rightLegBack[1], rightLegBack[2]];
  495. rightLegMesh = new THREE.Mesh(rightLegBox, material);
  496. rightLegMesh.name = "rightLeg"
  497. rightLegMesh.position.y = -22;
  498. rightLegMesh.position.x = -2;
  499. scene.add(rightLegMesh);
  500.  
  501. // Left Leg Parts
  502. var leftLegTop = [
  503. new THREE.Vector2(0.3125, 0.1875),
  504. new THREE.Vector2(0.375, 0.1875),
  505. new THREE.Vector2(0.375, 0.25),
  506. new THREE.Vector2(0.3125, 0.25),
  507. ];
  508. var leftLegBottom = [
  509. new THREE.Vector2(0.375, 0.1875),
  510. new THREE.Vector2(0.4375, 0.1875),
  511. new THREE.Vector2(0.4375, 0.25),
  512. new THREE.Vector2(0.375, 0.25)
  513. ];
  514. var leftLegLeft = [
  515. new THREE.Vector2(0.25, 0),
  516. new THREE.Vector2(0.3125, 0),
  517. new THREE.Vector2(0.3125, 0.1875),
  518. new THREE.Vector2(0.25, 0.1875)
  519. ];
  520. var leftLegFront = [
  521. new THREE.Vector2(0.3125, 0),
  522. new THREE.Vector2(0.375, 0),
  523. new THREE.Vector2(0.375, 0.1875),
  524. new THREE.Vector2(0.3125, 0.1875)
  525. ];
  526. var leftLegRight = [
  527. new THREE.Vector2(0.375, 0),
  528. new THREE.Vector2(0.4375, 0),
  529. new THREE.Vector2(0.4375, 0.1875),
  530. new THREE.Vector2(0.375, 0.1875)
  531. ];
  532. var leftLegBack = [
  533. new THREE.Vector2(0.4375, 0),
  534. new THREE.Vector2(0.5, 0),
  535. new THREE.Vector2(0.5, 0.1875),
  536. new THREE.Vector2(0.4375, 0.1875)
  537. ];
  538. leftLegBox = new THREE.BoxGeometry(4, 12, 4, 0, 0, 0);
  539. leftLegBox.faceVertexUvs[0] = [];
  540. leftLegBox.faceVertexUvs[0][0] = [leftLegRight[3], leftLegRight[0], leftLegRight[2]];
  541. leftLegBox.faceVertexUvs[0][1] = [leftLegRight[0], leftLegRight[1], leftLegRight[2]];
  542. leftLegBox.faceVertexUvs[0][2] = [leftLegLeft[3], leftLegLeft[0], leftLegLeft[2]];
  543. leftLegBox.faceVertexUvs[0][3] = [leftLegLeft[0], leftLegLeft[1], leftLegLeft[2]];
  544. leftLegBox.faceVertexUvs[0][4] = [leftLegTop[3], leftLegTop[0], leftLegTop[2]];
  545. leftLegBox.faceVertexUvs[0][5] = [leftLegTop[0], leftLegTop[1], leftLegTop[2]];
  546. leftLegBox.faceVertexUvs[0][6] = [leftLegBottom[0], leftLegBottom[3], leftLegBottom[1]];
  547. leftLegBox.faceVertexUvs[0][7] = [leftLegBottom[3], leftLegBottom[2], leftLegBottom[1]];
  548. leftLegBox.faceVertexUvs[0][8] = [leftLegFront[3], leftLegFront[0], leftLegFront[2]];
  549. leftLegBox.faceVertexUvs[0][9] = [leftLegFront[0], leftLegFront[1], leftLegFront[2]];
  550. leftLegBox.faceVertexUvs[0][10] = [leftLegBack[3], leftLegBack[0], leftLegBack[2]];
  551. leftLegBox.faceVertexUvs[0][11] = [leftLegBack[0], leftLegBack[1], leftLegBack[2]];
  552. leftLegMesh = new THREE.Mesh(leftLegBox, material);
  553. leftLegMesh.name = "leftLeg";
  554. leftLegMesh.position.y = -22;
  555. leftLegMesh.position.x = 2;
  556. scene.add(leftLegMesh);
  557.  
  558. // Head Overlay Parts
  559. var head2Top = [
  560. new THREE.Vector2(0.625, 0.875),
  561. new THREE.Vector2(0.75, 0.875),
  562. new THREE.Vector2(0.75, 1),
  563. new THREE.Vector2(0.625, 1)
  564. ];
  565. var head2Bottom = [
  566. new THREE.Vector2(0.75, 0.875),
  567. new THREE.Vector2(0.875, 0.875),
  568. new THREE.Vector2(0.875, 1),
  569. new THREE.Vector2(0.75, 1)
  570. ];
  571. var head2Left = [
  572. new THREE.Vector2(0.5, 0.75),
  573. new THREE.Vector2(0.625, 0.75),
  574. new THREE.Vector2(0.625, 0.875),
  575. new THREE.Vector2(0.5, 0.875)
  576. ];
  577. var head2Front = [
  578. new THREE.Vector2(0.625, 0.75),
  579. new THREE.Vector2(0.75, 0.75),
  580. new THREE.Vector2(0.75, 0.875),
  581. new THREE.Vector2(0.625, 0.875)
  582. ];
  583. var head2Right = [
  584. new THREE.Vector2(0.75, 0.75),
  585. new THREE.Vector2(0.875, 0.75),
  586. new THREE.Vector2(0.875, 0.875),
  587. new THREE.Vector2(0.75, 0.875)
  588. ];
  589. var head2Back = [
  590. new THREE.Vector2(0.875, 0.75),
  591. new THREE.Vector2(1, 0.75),
  592. new THREE.Vector2(1, 0.875),
  593. new THREE.Vector2(0.875, 0.875)
  594. ];
  595. head2Box = new THREE.BoxGeometry(9, 9, 9, 0, 0, 0);
  596. head2Box.faceVertexUvs[0] = [];
  597. head2Box.faceVertexUvs[0][0] = [head2Right[3], head2Right[0], head2Right[2]];
  598. head2Box.faceVertexUvs[0][1] = [head2Right[0], head2Right[1], head2Right[2]];
  599. head2Box.faceVertexUvs[0][2] = [head2Left[3], head2Left[0], head2Left[2]];
  600. head2Box.faceVertexUvs[0][3] = [head2Left[0], head2Left[1], head2Left[2]];
  601. head2Box.faceVertexUvs[0][4] = [head2Top[3], head2Top[0], head2Top[2]];
  602. head2Box.faceVertexUvs[0][5] = [head2Top[0], head2Top[1], head2Top[2]];
  603. head2Box.faceVertexUvs[0][6] = [head2Bottom[0], head2Bottom[3], head2Bottom[1]];
  604. head2Box.faceVertexUvs[0][7] = [head2Bottom[3], head2Bottom[2], head2Bottom[1]];
  605. head2Box.faceVertexUvs[0][8] = [head2Front[3], head2Front[0], head2Front[2]];
  606. head2Box.faceVertexUvs[0][9] = [head2Front[0], head2Front[1], head2Front[2]];
  607. head2Box.faceVertexUvs[0][10] = [head2Back[3], head2Back[0], head2Back[2]];
  608. head2Box.faceVertexUvs[0][11] = [head2Back[0], head2Back[1], head2Back[2]];
  609. head2Mesh = new THREE.Mesh(head2Box, material2);
  610. head2Mesh.name = "head2"
  611. scene.add(head2Mesh);
  612.  
  613. // Body Overlay Parts
  614. var body2Top = [
  615. new THREE.Vector2(0.3125, 0.4375),
  616. new THREE.Vector2(0.4375, 0.4375),
  617. new THREE.Vector2(0.4375, 0.5),
  618. new THREE.Vector2(0.3125, 0.5)
  619. ];
  620. var body2Bottom = [
  621. new THREE.Vector2(0.4375, 0.4375),
  622. new THREE.Vector2(0.5625, 0.4375),
  623. new THREE.Vector2(0.5625, 0.5),
  624. new THREE.Vector2(0.4375, 0.5)
  625. ];
  626. var body2Left = [
  627. new THREE.Vector2(0.25, 0.25),
  628. new THREE.Vector2(0.3125, 0.25),
  629. new THREE.Vector2(0.3125, 0.4375),
  630. new THREE.Vector2(0.25, 0.4375)
  631. ];
  632. var body2Front = [
  633. new THREE.Vector2(0.3125, 0.25),
  634. new THREE.Vector2(0.4375, 0.25),
  635. new THREE.Vector2(0.4375, 0.4375),
  636. new THREE.Vector2(0.3125, 0.4375)
  637. ];
  638. var body2Right = [
  639. new THREE.Vector2(0.4375, 0.25),
  640. new THREE.Vector2(0.5, 0.25),
  641. new THREE.Vector2(0.5, 0.4375),
  642. new THREE.Vector2(0.4375, 0.4375)
  643. ];
  644. var body2Back = [
  645. new THREE.Vector2(0.5, 0.25),
  646. new THREE.Vector2(0.625, 0.25),
  647. new THREE.Vector2(0.625, 0.4375),
  648. new THREE.Vector2(0.5, 0.4375)
  649. ];
  650. body2Box = new THREE.BoxGeometry(9, 13.5, 4.5, 0, 0, 0);
  651. body2Box.faceVertexUvs[0] = [];
  652. body2Box.faceVertexUvs[0][0] = [body2Right[3], body2Right[0], body2Right[2]];
  653. body2Box.faceVertexUvs[0][1] = [body2Right[0], body2Right[1], body2Right[2]];
  654. body2Box.faceVertexUvs[0][2] = [body2Left[3], body2Left[0], body2Left[2]];
  655. body2Box.faceVertexUvs[0][3] = [body2Left[0], body2Left[1], body2Left[2]];
  656. body2Box.faceVertexUvs[0][4] = [body2Top[3], body2Top[0], body2Top[2]];
  657. body2Box.faceVertexUvs[0][5] = [body2Top[0], body2Top[1], body2Top[2]];
  658. body2Box.faceVertexUvs[0][6] = [body2Bottom[0], body2Bottom[3], body2Bottom[1]];
  659. body2Box.faceVertexUvs[0][7] = [body2Bottom[3], body2Bottom[2], body2Bottom[1]];
  660. body2Box.faceVertexUvs[0][8] = [body2Front[3], body2Front[0], body2Front[2]];
  661. body2Box.faceVertexUvs[0][9] = [body2Front[0], body2Front[1], body2Front[2]];
  662. body2Box.faceVertexUvs[0][10] = [body2Back[3], body2Back[0], body2Back[2]];
  663. body2Box.faceVertexUvs[0][11] = [body2Back[0], body2Back[1], body2Back[2]];
  664. body2Mesh = new THREE.Mesh(body2Box, material2);
  665. body2Mesh.name = "body2";
  666. body2Mesh.position.y = -10;
  667. scene.add(body2Mesh);
  668.  
  669. // Right Arm Overlay Parts
  670. var rightArm2Top = [
  671. new THREE.Vector2(0.6875, 0.4375),
  672. new THREE.Vector2(0.75, 0.4375),
  673. new THREE.Vector2(0.75, 0.5),
  674. new THREE.Vector2(0.6875, 0.5),
  675. ];
  676. var rightArm2Bottom = [
  677. new THREE.Vector2(0.75, 0.4375),
  678. new THREE.Vector2(0.8125, 0.4375),
  679. new THREE.Vector2(0.8125, 0.5),
  680. new THREE.Vector2(0.75, 0.5)
  681. ];
  682. var rightArm2Left = [
  683. new THREE.Vector2(0.625, 0.25),
  684. new THREE.Vector2(0.6875, 0.25),
  685. new THREE.Vector2(0.6875, 0.4375),
  686. new THREE.Vector2(0.625, 0.4375)
  687. ];
  688. var rightArm2Front = [
  689. new THREE.Vector2(0.6875, 0.25),
  690. new THREE.Vector2(0.75, 0.25),
  691. new THREE.Vector2(0.75, 0.4375),
  692. new THREE.Vector2(0.6875, 0.4375)
  693. ];
  694. var rightArm2Right = [
  695. new THREE.Vector2(0.75, 0.25),
  696. new THREE.Vector2(0.8125, 0.25),
  697. new THREE.Vector2(0.8125, 0.4375),
  698. new THREE.Vector2(0.75, 0.4375)
  699. ];
  700. var rightArm2Back = [
  701. new THREE.Vector2(0.8125, 0.25),
  702. new THREE.Vector2(0.875, 0.25),
  703. new THREE.Vector2(0.875, 0.4375),
  704. new THREE.Vector2(0.8125, 0.4375)
  705. ];
  706. rightArm2Box = new THREE.BoxGeometry(4.5, 13.5, 4.5, 0, 0, 0);
  707. rightArm2Box.faceVertexUvs[0] = [];
  708. rightArm2Box.faceVertexUvs[0][0] = [rightArm2Right[3], rightArm2Right[0], rightArm2Right[2]];
  709. rightArm2Box.faceVertexUvs[0][1] = [rightArm2Right[0], rightArm2Right[1], rightArm2Right[2]];
  710. rightArm2Box.faceVertexUvs[0][2] = [rightArm2Left[3], rightArm2Left[0], rightArm2Left[2]];
  711. rightArm2Box.faceVertexUvs[0][3] = [rightArm2Left[0], rightArm2Left[1], rightArm2Left[2]];
  712. rightArm2Box.faceVertexUvs[0][4] = [rightArm2Top[3], rightArm2Top[0], rightArm2Top[2]];
  713. rightArm2Box.faceVertexUvs[0][5] = [rightArm2Top[0], rightArm2Top[1], rightArm2Top[2]];
  714. rightArm2Box.faceVertexUvs[0][6] = [rightArm2Bottom[0], rightArm2Bottom[3], rightArm2Bottom[1]];
  715. rightArm2Box.faceVertexUvs[0][7] = [rightArm2Bottom[3], rightArm2Bottom[2], rightArm2Bottom[1]];
  716. rightArm2Box.faceVertexUvs[0][8] = [rightArm2Front[3], rightArm2Front[0], rightArm2Front[2]];
  717. rightArm2Box.faceVertexUvs[0][9] = [rightArm2Front[0], rightArm2Front[1], rightArm2Front[2]];
  718. rightArm2Box.faceVertexUvs[0][10] = [rightArm2Back[3], rightArm2Back[0], rightArm2Back[2]];
  719. rightArm2Box.faceVertexUvs[0][11] = [rightArm2Back[0], rightArm2Back[1], rightArm2Back[2]];
  720. rightArm2Mesh = new THREE.Mesh(rightArm2Box, material2);
  721. rightArm2Mesh.name = "rightArm2";
  722. rightArm2Mesh.position.y = -10;
  723. rightArm2Mesh.position.x = -6.5;
  724. scene.add(rightArm2Mesh);
  725.  
  726. // Left Arm Overlay Parts
  727. var leftArm2Top = [
  728. new THREE.Vector2(0.8125, 0.1875),
  729. new THREE.Vector2(0.875, 0.1875),
  730. new THREE.Vector2(0.875, 0.25),
  731. new THREE.Vector2(0.8125, 0.25),
  732. ];
  733. var leftArm2Bottom = [
  734. new THREE.Vector2(0.875, 0.1875),
  735. new THREE.Vector2(0.9375, 0.1875),
  736. new THREE.Vector2(0.9375, 0.25),
  737. new THREE.Vector2(0.875, 0.25)
  738. ];
  739. var leftArm2Left = [
  740. new THREE.Vector2(0.75, 0),
  741. new THREE.Vector2(0.8125, 0),
  742. new THREE.Vector2(0.8125, 0.1875),
  743. new THREE.Vector2(0.75, 0.1875)
  744. ];
  745. var leftArm2Front = [
  746. new THREE.Vector2(0.8125, 0),
  747. new THREE.Vector2(0.875, 0),
  748. new THREE.Vector2(0.875, 0.1875),
  749. new THREE.Vector2(0.8125, 0.1875)
  750. ];
  751. var leftArm2Right = [
  752. new THREE.Vector2(0.875, 0),
  753. new THREE.Vector2(0.9375, 0),
  754. new THREE.Vector2(0.9375, 0.1875),
  755. new THREE.Vector2(0.875, 0.1875)
  756. ];
  757. var leftArm2Back = [
  758. new THREE.Vector2(0.9375, 0),
  759. new THREE.Vector2(1, 0),
  760. new THREE.Vector2(1, 0.1875),
  761. new THREE.Vector2(0.9375, 0.1875)
  762. ];
  763. leftArm2Box = new THREE.BoxGeometry(4.5, 13.5, 4.5, 0, 0, 0);
  764. leftArm2Box.faceVertexUvs[0] = [];
  765. leftArm2Box.faceVertexUvs[0][0] = [leftArm2Right[3], leftArm2Right[0], leftArm2Right[2]];
  766. leftArm2Box.faceVertexUvs[0][1] = [leftArm2Right[0], leftArm2Right[1], leftArm2Right[2]];
  767. leftArm2Box.faceVertexUvs[0][2] = [leftArm2Left[3], leftArm2Left[0], leftArm2Left[2]];
  768. leftArm2Box.faceVertexUvs[0][3] = [leftArm2Left[0], leftArm2Left[1], leftArm2Left[2]];
  769. leftArm2Box.faceVertexUvs[0][4] = [leftArm2Top[3], leftArm2Top[0], leftArm2Top[2]];
  770. leftArm2Box.faceVertexUvs[0][5] = [leftArm2Top[0], leftArm2Top[1], leftArm2Top[2]];
  771. leftArm2Box.faceVertexUvs[0][6] = [leftArm2Bottom[0], leftArm2Bottom[3], leftArm2Bottom[1]];
  772. leftArm2Box.faceVertexUvs[0][7] = [leftArm2Bottom[3], leftArm2Bottom[2], leftArm2Bottom[1]];
  773. leftArm2Box.faceVertexUvs[0][8] = [leftArm2Front[3], leftArm2Front[0], leftArm2Front[2]];
  774. leftArm2Box.faceVertexUvs[0][9] = [leftArm2Front[0], leftArm2Front[1], leftArm2Front[2]];
  775. leftArm2Box.faceVertexUvs[0][10] = [leftArm2Back[3], leftArm2Back[0], leftArm2Back[2]];
  776. leftArm2Box.faceVertexUvs[0][11] = [leftArm2Back[0], leftArm2Back[1], leftArm2Back[2]];
  777. leftArm2Mesh = new THREE.Mesh(leftArm2Box, material2);
  778. leftArm2Mesh.name = "leftArm2";
  779. leftArm2Mesh.position.y = -10;
  780. leftArm2Mesh.position.x = 6.5;
  781. scene.add(leftArm2Mesh);
  782.  
  783. // Right Leg Overlay Parts
  784. var rightLeg2Top = [
  785. new THREE.Vector2(0.0625, 0.4375),
  786. new THREE.Vector2(0.125, 0.4375),
  787. new THREE.Vector2(0.125, 0.5),
  788. new THREE.Vector2(0.0625, 0.5),
  789. ];
  790. var rightLeg2Bottom = [
  791. new THREE.Vector2(0.125, 0.4375),
  792. new THREE.Vector2(0.1875, 0.4375),
  793. new THREE.Vector2(0.1875, 0.5),
  794. new THREE.Vector2(0.125, 0.5)
  795. ];
  796. var rightLeg2Left = [
  797. new THREE.Vector2(0, 0.25),
  798. new THREE.Vector2(0.0625, 0.25),
  799. new THREE.Vector2(0.0625, 0.4375),
  800. new THREE.Vector2(0, 0.4375)
  801. ];
  802. var rightLeg2Front = [
  803. new THREE.Vector2(0.0625, 0.25),
  804. new THREE.Vector2(0.125, 0.25),
  805. new THREE.Vector2(0.125, 0.4375),
  806. new THREE.Vector2(0.0625, 0.4375)
  807. ];
  808. var rightLeg2Right = [
  809. new THREE.Vector2(0.125, 0.25),
  810. new THREE.Vector2(0.1875, 0.25),
  811. new THREE.Vector2(0.1875, 0.4375),
  812. new THREE.Vector2(0.125, 0.4375)
  813. ];
  814. var rightLeg2Back = [
  815. new THREE.Vector2(0.1875, 0.25),
  816. new THREE.Vector2(0.25, 0.25),
  817. new THREE.Vector2(0.25, 0.4375),
  818. new THREE.Vector2(0.1875, 0.4375)
  819. ];
  820. rightLeg2Box = new THREE.BoxGeometry(4.5, 13.5, 4.5, 0, 0, 0);
  821. rightLeg2Box.faceVertexUvs[0] = [];
  822. rightLeg2Box.faceVertexUvs[0][0] = [rightLeg2Right[3], rightLeg2Right[0], rightLeg2Right[2]];
  823. rightLeg2Box.faceVertexUvs[0][1] = [rightLeg2Right[0], rightLeg2Right[1], rightLeg2Right[2]];
  824. rightLeg2Box.faceVertexUvs[0][2] = [rightLeg2Left[3], rightLeg2Left[0], rightLeg2Left[2]];
  825. rightLeg2Box.faceVertexUvs[0][3] = [rightLeg2Left[0], rightLeg2Left[1], rightLeg2Left[2]];
  826. rightLeg2Box.faceVertexUvs[0][4] = [rightLeg2Top[3], rightLeg2Top[0], rightLeg2Top[2]];
  827. rightLeg2Box.faceVertexUvs[0][5] = [rightLeg2Top[0], rightLeg2Top[1], rightLeg2Top[2]];
  828. rightLeg2Box.faceVertexUvs[0][6] = [rightLeg2Bottom[0], rightLeg2Bottom[3], rightLeg2Bottom[1]];
  829. rightLeg2Box.faceVertexUvs[0][7] = [rightLeg2Bottom[3], rightLeg2Bottom[2], rightLeg2Bottom[1]];
  830. rightLeg2Box.faceVertexUvs[0][8] = [rightLeg2Front[3], rightLeg2Front[0], rightLeg2Front[2]];
  831. rightLeg2Box.faceVertexUvs[0][9] = [rightLeg2Front[0], rightLeg2Front[1], rightLeg2Front[2]];
  832. rightLeg2Box.faceVertexUvs[0][10] = [rightLeg2Back[3], rightLeg2Back[0], rightLeg2Back[2]];
  833. rightLeg2Box.faceVertexUvs[0][11] = [rightLeg2Back[0], rightLeg2Back[1], rightLeg2Back[2]];
  834. rightLeg2Mesh = new THREE.Mesh(rightLeg2Box, material2);
  835. rightLeg2Mesh.name = "rightLeg2"
  836. rightLeg2Mesh.position.y = -22;
  837. rightLeg2Mesh.position.x = -2;
  838. scene.add(rightLeg2Mesh);
  839.  
  840. // Left Leg Overlay Parts
  841. var leftLeg2Top = [
  842. new THREE.Vector2(0.0625, 0.1875),
  843. new THREE.Vector2(0.125, 0.1875),
  844. new THREE.Vector2(0.125, 0.25),
  845. new THREE.Vector2(0.0625, 0.25),
  846. ];
  847. var leftLeg2Bottom = [
  848. new THREE.Vector2(0.125, 0.1875),
  849. new THREE.Vector2(0.1875, 0.1875),
  850. new THREE.Vector2(0.1875, 0.25),
  851. new THREE.Vector2(0.125, 0.25)
  852. ];
  853. var leftLeg2Left = [
  854. new THREE.Vector2(0, 0),
  855. new THREE.Vector2(0.0625, 0),
  856. new THREE.Vector2(0.0625, 0.1875),
  857. new THREE.Vector2(0, 0.1875)
  858. ];
  859. var leftLeg2Front = [
  860. new THREE.Vector2(0.0625, 0),
  861. new THREE.Vector2(0.125, 0),
  862. new THREE.Vector2(0.125, 0.1875),
  863. new THREE.Vector2(0.0625, 0.1875)
  864. ];
  865. var leftLeg2Right = [
  866. new THREE.Vector2(0.125, 0),
  867. new THREE.Vector2(0.1875, 0),
  868. new THREE.Vector2(0.1875, 0.1875),
  869. new THREE.Vector2(0.125, 0.1875)
  870. ];
  871. var leftLeg2Back = [
  872. new THREE.Vector2(0.1875, 0),
  873. new THREE.Vector2(0.25, 0),
  874. new THREE.Vector2(0.25, 0.1875),
  875. new THREE.Vector2(0.1875, 0.1875)
  876. ];
  877. var leftLeg2Box = new THREE.BoxGeometry(4.5, 13.5, 4.5, 0, 0, 0);
  878. leftLeg2Box.faceVertexUvs[0] = [];
  879. leftLeg2Box.faceVertexUvs[0][0] = [leftLeg2Right[3], leftLeg2Right[0], leftLeg2Right[2]];
  880. leftLeg2Box.faceVertexUvs[0][1] = [leftLeg2Right[0], leftLeg2Right[1], leftLeg2Right[2]];
  881. leftLeg2Box.faceVertexUvs[0][2] = [leftLeg2Left[3], leftLeg2Left[0], leftLeg2Left[2]];
  882. leftLeg2Box.faceVertexUvs[0][3] = [leftLeg2Left[0], leftLeg2Left[1], leftLeg2Left[2]];
  883. leftLeg2Box.faceVertexUvs[0][4] = [leftLeg2Top[3], leftLeg2Top[0], leftLeg2Top[2]];
  884. leftLeg2Box.faceVertexUvs[0][5] = [leftLeg2Top[0], leftLeg2Top[1], leftLeg2Top[2]];
  885. leftLeg2Box.faceVertexUvs[0][6] = [leftLeg2Bottom[0], leftLeg2Bottom[3], leftLeg2Bottom[1]];
  886. leftLeg2Box.faceVertexUvs[0][7] = [leftLeg2Bottom[3], leftLeg2Bottom[2], leftLeg2Bottom[1]];
  887. leftLeg2Box.faceVertexUvs[0][8] = [leftLeg2Front[3], leftLeg2Front[0], leftLeg2Front[2]];
  888. leftLeg2Box.faceVertexUvs[0][9] = [leftLeg2Front[0], leftLeg2Front[1], leftLeg2Front[2]];
  889. leftLeg2Box.faceVertexUvs[0][10] = [leftLeg2Back[3], leftLeg2Back[0], leftLeg2Back[2]];
  890. leftLeg2Box.faceVertexUvs[0][11] = [leftLeg2Back[0], leftLeg2Back[1], leftLeg2Back[2]];
  891. leftLeg2Mesh = new THREE.Mesh(leftLeg2Box, material2);
  892. leftLeg2Mesh.name = "leftLeg2";
  893. leftLeg2Mesh.position.y = -22;
  894. leftLeg2Mesh.position.x = 2;
  895. scene.add(leftLeg2Mesh);
  896.  
  897. // Add to page
  898. container = document.getElementById('model');
  899.  
  900. renderer = new THREE.WebGLRenderer({alpha: true});
  901. renderer.setSize(window.innerWidth - scrollbarOffset - sidebarWidth, window.innerHeight - scrollbarOffset);
  902.  
  903. window.addEventListener('resize', onWindowResize, false);
  904.  
  905. model.appendChild(renderer.domElement);
  906. }
  907.  
  908. function onWindowResize() {
  909. camera.aspect = (window.innerWidth - scrollbarOffset - sidebarWidth) / (window.innerHeight - scrollbarOffset);
  910. camera.updateProjectionMatrix();
  911.  
  912. renderer.setSize(window.innerWidth - sidebarWidth - scrollbarOffset, window.innerHeight - scrollbarOffset);
  913. }
  914.  
  915. function Animate() {
  916. requestAnimationFrame(Animate);
  917.  
  918. camera.rotation.y = alpha;
  919.  
  920. //alpha = /*(Math.PI / 2)*/ + (Math.PI / 16);
  921. alpha += Math.PI / 200;
  922. camera.position.z = radius*Math.cos(alpha);
  923. camera.position.x = radius*Math.sin(alpha);
  924.  
  925. //Leg Swing
  926. leftLeg2Mesh.rotation.x = leftLegMesh.rotation.x = Math.cos(alpha*4);
  927. leftLeg2Mesh.position.z = leftLegMesh.position.z = 0 - 6*Math.sin(leftLegMesh.rotation.x);
  928. leftLeg2Mesh.position.y = leftLegMesh.position.y = -16 - 6*Math.abs(Math.cos(leftLegMesh.rotation.x));
  929. rightLeg2Mesh.rotation.x = rightLegMesh.rotation.x = Math.cos(alpha*4 + (Math.PI));
  930. rightLeg2Mesh.position.z = rightLegMesh.position.z = 0 - 6*Math.sin(rightLegMesh.rotation.x);
  931. rightLeg2Mesh.position.y = rightLegMesh.position.y = -16 - 6*Math.abs(Math.cos(rightLegMesh.rotation.x));
  932.  
  933. //Arm Swing
  934. leftArm2Mesh.rotation.x = leftArmMesh.rotation.x = Math.cos(alpha*4 + (Math.PI));
  935. leftArm2Mesh.position.z = leftArmMesh.position.z = 0 - 6*Math.sin(leftArmMesh.rotation.x);
  936. leftArm2Mesh.position.y = leftArmMesh.position.y = -4 - 6*Math.abs(Math.cos(leftArmMesh.rotation.x));
  937. rightArm2Mesh.rotation.x = rightArmMesh.rotation.x = Math.cos(alpha*4);
  938. rightArm2Mesh.position.z = rightArmMesh.position.z = 0 - 6*Math.sin(rightArmMesh.rotation.x);
  939. rightArm2Mesh.position.y = rightArmMesh.position.y = -4 - 6*Math.abs(Math.cos(rightArmMesh.rotation.x));
  940.  
  941. leftArm2Mesh.rotation.z = leftArmMesh.rotation.z = 0.1;
  942. rightArm2Mesh.rotation.z = rightArmMesh.rotation.z = -0.1;
  943.  
  944. cloakMesh.rotation.x = Math.cos(alpha*4 + (Math.PI))/4 + 0.5;
  945. cloakMesh.position.z = -2.5 - 8*Math.sin(cloakMesh.rotation.x);
  946. cloakMesh.position.y = -4.25 - 8*Math.abs(Math.cos(cloakMesh.rotation.x));
  947.  
  948. renderer.render(scene, camera);
  949. }
  950.  
  951. function imageExists(image_url){
  952.  
  953. var http = new XMLHttpRequest();
  954.  
  955. http.open('HEAD', image_url, false);
  956. http.send();
  957.  
  958. return http.status != 404;
  959.  
  960. }
  961.  
  962. </script>
  963.  
  964.  
  965. </body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement