diff options
| Commit | f6855e993c9ab648aff11184a53fd7bb6172e7e0 (patch) | |
|---|---|---|
| Author | 2022-12-12 17:22:18 +0200 | |
| Committer | 2022-12-12 17:22:18 +0200 | |
| Files | 7271c6ea3a1f6f0353bd4a7f6a9e54d037fc116d | |
| uni-projects-f6855e993c9ab648aff11184a53fd7bb6172e7e0.tar uni-projects-f6855e993c9ab648aff11184a53fd7bb6172e7e0.tar.gz uni-projects-f6855e993c9ab648aff11184a53fd7bb6172e7e0.zip | ||
| Parent | a6afe7980ecec6718c5cc3809f302a79330288f0 (diff) | |
[OKG/HWK2] Added Star Platinum and Killer Queen and animated their initial appearance
1 files changed, 153 insertions, 26 deletions
| -rw-r--r-- | Year 2/Computer Graphics Fundamentals/Homework 2/mannequin.html | 179 |
diff --git a/Year 2/Computer Graphics Fundamentals/Homework 2/mannequin.html b/Year 2/Computer Graphics Fundamentals/Homework 2/mannequin.html index ce39b74..3489419 100644 --- a/Year 2/Computer Graphics Fundamentals/Homework 2/mannequin.html +++ b/Year 2/Computer Graphics Fundamentals/Homework 2/mannequin.html @@ -104,13 +104,27 @@ jotaro.posture = {"version":6,"data":[0,[-90,-87.4,-91.3],[3.5,-0.3,0.1],[0,0,2.4],[1.7,0,0],[0],[-6,-6,-0.6],[1.3,0,0],[0],[6,6,-0.6],[7,-0.6,-17.1],[50],[-14.9,0,0],[119.9,100],[-7.5,0.6,-10.5],[23.6],[6.5,0.7,-7.4],[120,100]]};
scene.add(jotaro);
+ var starPlatinum = newStarPlatinum();
+ starPlatinum.position.x = 140;
+ starPlatinum.position.y -= 100;
+ starPlatinum.position.z = 60;
+ starPlatinum.rotation.y = Math.PI / 2;
+ starPlatinum.posture = {"version":6,"data":[0,[0,-90,0],[0.9,19.2,-2.8],[0,0,0],[6,0,0],[0],[-6,-6,-0.6],[-6,0,0],[0],[6,6,-0.6],[7,-0.6,-5],[15],[-15,0,0],[10,10],[-7,0.6,140.1],[70.6],[22.6,0,0],[119.9,99.9]]};
+ scene.add(starPlatinum);
+
var kira = newKira();
kira.position.x = 180;
kira.position.z = 60;
kira.rotation.y = Math.PI / 2;
kira.posture = {"version":6,"data":[0,[0,-90,0],[0,0,-2],[0,0,3.5],[1.8,0,0],[0],[-6,-6,-0.6],[-3.7,0,0],[0],[6,6,-0.6],[7,-0.6,-5],[15],[-15,0,0],[10,10],[-50.5,50.6,29.8],[134.1],[-9.3,-31.8,0.5],[79.3,73.8]]};
scene.add(kira);
-
+
+ var killerQueen = newKillerQueen();
+ killerQueen.position.x = 160;
+ killerQueen.position.y -= 100;
+ killerQueen.position.z = 60;
+ killerQueen.rotation.y = Math.PI / 2;
+ scene.add(killerQueen);
var koichi = newKoichi();
koichi.rotation.x = Math.PI / 2;
@@ -176,7 +190,7 @@ ** Анимация (система)
**/
- const START = 4000;
+ const START = 000;
// На дъното на файла има animationData променлива. То е обект, чиито атрибути са секунди от началото на анимацията (t).
// Всеки атрибут е масив, който определя всичките "действия" който трябва да се "регистрират"
@@ -580,6 +594,34 @@ return jotaro;
}
+ function newStarPlatinum() {
+ const headC = thc(0xa3c1ef);
+ const pelvisC = thc(0xe7f0ff);
+ const limbsC = thc(0xc678c6);
+ const jointsC = thc(0xf6e757);
+
+ Mannequin.colors = [
+ headC, // head
+ headC, // shoes
+ pelvisC, // pelvis
+ jointsC, // joints
+ limbsC, // limbs
+ headC, // torso
+ ];
+
+ var starPlatinum = new Male(1.05);
+ starPlatinum.position.y = 35;
+
+ var hair = new THREE.Mesh(new THREE.CylinderGeometry(3.3, 3.6, 4),
+ new THREE.MeshPhongMaterial({ color: 0x161014 }));
+ hair.position.y = 6;
+ hair.position.x = -0.2;
+ starPlatinum.head.attach(hair);
+
+
+ return starPlatinum;
+ }
+
function newKira() {
const suitC = thc(0xb983d7);
const skinC = thc(0xf1e3bf);
@@ -629,6 +671,35 @@ return kira;
}
+ function newKillerQueen() {
+ const skinC = thc(0xeee5e8);
+ const pelvisC = thc(0x0a0607);
+ const acctC = thc(0xe39e29);
+
+ Mannequin.colors = [
+ skinC, // head
+ pelvisC, // shoes
+ pelvisC, // pelvis
+ skinC, // joints
+ skinC, // limbs
+ skinC, // torso
+ ];
+
+ var killerQueen = new Male(0.9);
+ killerQueen.position.y = 30;
+
+ var pelvisOrnament = new THREE.Mesh(new THREE.CylinderGeometry(2.8, 2.8, 1, 16),
+ new THREE.MeshPhongMaterial({ color: acctC }));
+ pelvisOrnament.position.x = 1;
+ pelvisOrnament.rotation.z = Math.PI / 2;
+ killerQueen.pelvis.attach(pelvisOrnament);
+
+ killerQueen.r_arm.recolor(skinC, acctC);
+ killerQueen.l_arm.recolor(skinC, acctC);
+
+ return killerQueen;
+ }
+
function newKoichi() {
const suitC = thc(0x2f5951);
const skinC = thc(0xe0cbbc);
@@ -697,18 +768,47 @@ **/
var animationData = {
- 200: [
+ 200: [
[
200, [15, 20, 0], null, false
],
],
- 550: [
+ // Killer Queen и Star Platinum се появяват
+ 500: [
+ [
+ 0, killerQueen,
+ null,
+ null,
+ [0, 100, 0]
+ ],
+ [
+ 0, starPlatinum,
+ null,
+ null,
+ [0, 100, 0]
+ ]
+ ],
+ 550: [
[
0, [180, 55, 90], [180, 55, 60], true
],
],
+ // Killer Queen се обръща
+ 600: [
+ [
+ 100, killerQueen,
+ null,
+ {"version":6,"data":[3.8,[0,-90,0],[-1,0,-2],[1.4,0.1,-0.3],[6,0,0],[0],[-6,-6,-0.6],[-6,0,0],[0],[6,6,-0.6],[81.5,15.3,83.6],[101.8],[-86.3,-89.3,-86],[120,100],[-90,-20.2,85.5],[77.5],[3.2,90,0],[120,100]]},
+ null, [0, -1, 0]
+ ],
+ [
+ 100, starPlatinum,
+ null,
+ {"version":6,"data":[3.8,[0,-90,0],[0.9,19.2,-2.8],[0,0,0],[6,0,0],[0],[-6,-6,-0.6],[-6,0,0],[0],[6,6,-0.6],[7,-0.6,-5],[15],[-15,0,0],[10,10],[4.6,8.3,33.2],[117.5],[22.6,0,0],[119.9,99.9]]},
+ ]
+ ],
// Kira се защитава от Star Platinum
- 650: [
+ 650: [
[
50, kira,
null,
@@ -717,7 +817,7 @@ ],
],
// Kira се обръща към Jotaro и Jotaro се смъква
- 850: [
+ 850: [
[
40, jotaro,
null,
@@ -729,8 +829,13 @@ {"version":6,"data":[7.6,[0,-90,0],[-0.1,-2.5,-12.5],[-0.6,6.2,6],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5,-2.7,11.7],[14.7],[0,-2.1,-7.9],[10,10],[-5.3,3.5,-7],[37.8],[9.5,7.4,-2],[108.3,86.1]]},
null, [0, -1, 0]
],
+ [
+ 0, starPlatinum,
+ null, null,
+ [0, -100, 0]
+ ],
],
- 900: [
+ 900: [
[
0, [160, 30, 55], [120, 30, 60], true
],
@@ -739,25 +844,47 @@ ],
],
// Jotaro се изправя
- 1400: [
+ 1400: [
[
50, jotaro,
null,
{"version":6,"data":[7.6,[-90,-87.4,-91.3],[3.5,-0.3,0.1],[0,0,2.4],[1.7,0,0],[0],[-6,-6,-0.6],[1.3,0,0],[0],[6,6,-0.6],[7,-0.6,-17.1],[50],[-14.9,0,0],[119.9,100],[-7.5,0.6,-19.9],[46.5],[6.5,0.7,-7.4],[120,100]]},
],
+ [
+ 0, killerQueen,
+ null,
+ {"version":6,"data":[7.6,[0,-90,0],[-0.1,-2.5,-12.5],[-0.6,6.2,6],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5,-2.7,11.7],[14.7],[0,-2.1,-7.9],[10,10],[-5.3,3.5,-7],[37.8],[9.5,7.4,-2],[108.3,86.1]]},
+ [30, 100, -10]
+ ]
],
- 1450: [
+ 1450: [
[
0, [60, 50, 130], [170, 50, 55], true
]
],
- 2050: [
+ 1600: [
+ [
+ 100, killerQueen,
+ null,
+ null,
+ [35, 100, 0]
+ ],
+ ],
+ 1700: [
+ [
+ 0, killerQueen,
+ null,
+ null,
+ [0, 0, 0]
+ ],
+ ],
+ 2050: [
[
0, [155, 60, 65], [140, 60, 60], true
],
],
// Kira поглежда към часовника си
- 2500: [
+ 2500: [
[
100, kira,
null,
@@ -769,7 +896,7 @@ ],
],
// Jotaro сочи към часовника на Kira
- 2900: [
+ 2900: [
[
400, jotaro,
null,
@@ -777,7 +904,7 @@ ],
],
// Jotaro си връща ръката обратно и Kira се подготвя да ходи
- 4100: [
+ 4100: [
[
100, kira,
null,
@@ -791,7 +918,7 @@ ],
],
// Kira ходи зад Jotaro
- 4400: [
+ 4400: [
[
100, kira,
null,
@@ -804,49 +931,49 @@ [-80, 0, -25],
],
],
- 4500: [
+ 4500: [
[
100, kira,
null,
{"version":6,"data":[11.4,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,-1.9],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,-12.3],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-2.1],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
],
],
- 4600: [
+ 4600: [
[
100, kira,
null,
{"version":6,"data":[11.4,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,-1.9],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,6.7],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-20.2],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
],
],
- 4700: [
+ 4700: [
[
100, kira,
null,
{"version":6,"data":[3.8,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,-1.9],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,-10.6],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-7],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
],
],
- 4800: [
+ 4800: [
[
100, kira,
null,
{"version":6,"data":[3.8,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,-1.9],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,2.4],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-14.5],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
]
],
- 4900: [ // Kira е зад Jotaro
+ 4900: [ // Kira е зад Jotaro
[
100, kira,
null,
{"version":6,"data":[3.8,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,6.3],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,-10.6],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-7],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
],
],
- 5000: [
+ 5000: [
[
100, kira,
null,
{"version":6,"data":[3.8,[0,-90,0],[-0.1,-2.5,-2.5],[-0.4,13.5,6.3],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,10.7],[31.2],[6,6,-0.6],[5.8,-8.8,2.4],[16.9],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-14.5],[34.8],[9.5,7.4,-2],[14.9,9.3]]},
]
],
- 5100: [
+ 5100: [
[
100, kira,
null,
@@ -854,7 +981,7 @@ ],
],
// Jotaro пада на колене
- 5780: [
+ 5780: [
[
70, jotaro,
null,
@@ -869,7 +996,7 @@ ],
],
// Kira леко си накланя главата
- 6450: [
+ 6450: [
[
50, kira,
null,
@@ -877,14 +1004,14 @@ ],
],
// Kira си вдига главата
- 6890: [
+ 6890: [
[
20, kira,
null,
{"version":6,"data":[3.8,[0,-90,0],[-0.1,-2.5,-2.5],[4.5,-5.1,-9.8],[1.4,5.7,4.5],[15.6],[-6,-6,-0.6],[-2.4,-7,1.4],[9.5],[6,6,-0.6],[5.8,-8.8,-3],[15],[8.1,-1,3.8],[1.3,28.5],[-1.2,3.1,-4.4],[14],[9.5,7.4,-2],[14.9,9.3]]},
],
],
- 6910: [
+ 6910: [
[
20, kira,
null,
@@ -892,7 +1019,7 @@ null, [0, 0, 0]
],
],
- 7400: [ // Killer Queen се появява и замахва към Jotaro
+ 7400: [ // Killer Queen се появява и замахва към Jotaro
],
};
|
