1
00:00:00,000 --> 00:00:06,240
Bonjour, bon retour, Mes développeurs de jeux préférés dans cette vidéo,

2
00:00:06,235 --> 00:00:10,125
notre arme n'est plus un objet statique. 

3
00:00:10,120 --> 00:00:11,740
Si vous regardez de près,

4
00:00:11,740 --> 00:00:13,810
vous pouvez voir que lorsque nous descendons,

5
00:00:13,810 --> 00:00:15,250
le pistolet se déplace vers le bas. 

6
00:00:15,250 --> 00:00:16,600
Quand on lève les yeux,

7
00:00:16,600 --> 00:00:17,970
le pistolet se bloque. 

8
00:00:17,965 --> 00:00:21,225
Évidemment, il y a encore quelques choses qui doivent être

9
00:00:21,220 --> 00:00:25,740
réparées parce que tenir le pistolet comme ça me semble plutôt mal à l'aise,

10
00:00:25,735 --> 00:00:27,505
mais pas de soucis à ce sujet. 

11
00:00:27,505 --> 00:00:31,735
C'est la première étape pour nommer correctement notre arme. 

12
00:00:31,735 --> 00:00:35,635
Donc, ne perdons plus de temps et commençons. 

13
00:00:35,635 --> 00:00:37,335
Il y a beaucoup de maths là-dedans. 

14
00:00:37,330 --> 00:00:40,070
Alors mettez vos casquettes de réflexion. 

15
00:00:41,770 --> 00:00:46,810
Maintenant que nous avançons et que nous nous heurtons à des choses,

16
00:00:46,805 --> 00:00:50,135
il est temps de commencer à viser notre arme. 

17
00:00:50,135 --> 00:00:55,495
Pour ce faire, nous voulons faire pivoter l'arme autour d'une certaine position. 

18
00:00:55,490 --> 00:01:01,460
Nous ne voulons pas vraiment faire tourner l'arme exacte parce que si nous regardons ici,

19
00:01:01,460 --> 00:01:03,400
si nous allons sur les lieux,
 vous pouvez voir maintenant,

20
00:01:03,395 --> 00:01:04,475
vous pouvez voir maintenant,

21
00:01:04,475 --> 00:01:06,995
si nous essayons de faire pivoter le pistolet tel qu'il est,

22
00:01:06,995 --> 00:01:08,675
il n'a pas l'air aussi beau. 

23
00:01:08,675 --> 00:01:13,415
Nous avons besoin d'un point d'où le pistolet va tourner. 

24
00:01:13,415 --> 00:01:17,915
Ce que nous allons faire, c'est que nous allons faire un clic droit sur le lecteur dôme. 

25
00:01:17,915 --> 00:01:20,675
Nous allons créer un objet de jeu vide. 

26
00:01:20,675 --> 00:01:26,305
Nous allons appeler ça le bras d'armes. 

27
00:01:26,300 --> 00:01:29,720
Et nous allons le déplacer à un certain point. 

28
00:01:29,720 --> 00:01:34,940
Et c'est le point où le pistolet ou à partir duquel le pistolet va tourner. 

29
00:01:34,940 --> 00:01:40,570
Je vais donc le mettre presque autour de la main ou du bras du joueur. 

30
00:01:40,565 --> 00:01:42,575
Et je vais fabriquer le fusil de chasse,

31
00:01:42,575 --> 00:01:45,575
un enfant de ces armes. 

32
00:01:45,575 --> 00:01:49,495
Maintenant, lorsque nous tournons le bras de l'arme,

33
00:01:49,490 --> 00:01:55,400
vous remarquerez que le fusil de chasse reste à sa place presque autour du bras,

34
00:01:55,400 --> 00:02:02,720
et cela semble beaucoup plus naturel lorsque nous faisons tourner le fusil de chasse ou les armes. 

35
00:02:02,720 --> 00:02:05,530
Il est donc temps de prendre un peu de froid. 

36
00:02:05,525 --> 00:02:07,105
Mais avant de faire cela,

37
00:02:07,100 --> 00:02:10,330
comment allons-nous réellement faire tourner ce bras ? 

38
00:02:10,325 --> 00:02:14,065
Cela dépendra de l'endroit où se trouve notre bouche. 

39
00:02:14,060 --> 00:02:16,130
Disons donc que nous sommes ici. 

40
00:02:16,130 --> 00:02:19,190
Nous voulons que le fusil de tir pointe vers la souris. 

41
00:02:19,190 --> 00:02:21,770
Comment allons-nous calculer cela ? 

42
00:02:21,770 --> 00:02:29,210
Eh bien, nous aurons besoin de quelques points et laissez-moi l'expliquer en maths, yay math. 

43
00:02:29,210 --> 00:02:31,130
Commençons donc. 

44
00:02:31,130 --> 00:02:34,900
Tout d'abord, nous avons besoin de la position du joueur à l'écran. 

45
00:02:34,895 --> 00:02:37,345
J'utilise le terme « position du joueur »,

46
00:02:37,340 --> 00:02:42,500
mais c'est en fait le point sur lequel nous tournons le fusil de chasse. 

47
00:02:42,500 --> 00:02:44,600
Mais pour l'instant, restons simples. 

48
00:02:44,600 --> 00:02:46,690
Appelez cela la position du joueur,

49
00:02:46,685 --> 00:02:49,585
et nous avons la position de la souris sur l'écran. 

50
00:02:49,580 --> 00:02:55,360
Ce que nous voulons, c'est que nous voulons obtenir le vecteur sur ces deux points. 

51
00:02:55,355 --> 00:02:59,345
C'est la direction qui aura disparu qui va pointer. 

52
00:02:59,345 --> 00:03:06,055
Mais comment allons-nous réellement calculer l'angle dans lequel nous voulons que le canon pointe ? 

53
00:03:06,050 --> 00:03:11,390
Eh bien, nous connaissons l'exposition et nous connaissons la position Y. 

54
00:03:11,390 --> 00:03:13,580
Eh bien, je voulais dire X et Y.

55
00:03:13,580 --> 00:03:18,830
Ce que nous pouvons faire, c'est que nous pouvons utiliser quelque chose appelé la tangente d'arc. 

56
00:03:18,830 --> 00:03:22,670
Et c'est quelque chose qui nous est disponible en maths. 

57
00:03:22,670 --> 00:03:26,170
F de l'unité est une bibliothèque. 

58
00:03:26,165 --> 00:03:29,555
Nous pouvons donc utiliser cela pour calculer l'arctan. 

59
00:03:29,555 --> 00:03:33,595
Et si vous ne savez pas quel arctan ou si vous ne savez même pas ce que Dan est

60
00:03:33,590 --> 00:03:38,210
tangent, je crois que c'est l'avant,

61
00:03:38,210 --> 00:03:41,960
c'
est-à-dire le Y divisé par V x.

62
00:03:41,960 --> 00:03:43,370
Et lorsque nous faisons cela,

63
00:03:43,370 --> 00:03:45,050
nous obtenons un certain nombre,

64
00:03:45,050 --> 00:03:46,450
qui est la tangente. 

65
00:03:46,445 --> 00:03:48,355
Donc, pour obtenir l'angle,

66
00:03:48,350 --> 00:03:50,930
nous utilisons quelque chose appelé la tangente de l'arc,

67
00:03:50,930 --> 00:03:52,960
qui est un peu inverse. 

68
00:03:52,955 --> 00:03:57,035
Mais tout ce que vous devez savoir, c'est que nous avons la différence de hauteur,

69
00:03:57,035 --> 00:04:00,475
nous obtenons la différence de distance. 

70
00:04:00,470 --> 00:04:05,950
Et en utilisant cela, nous calculons l'angle dans lequel l'argon devrait pointer. 

71
00:04:05,945 --> 00:04:08,825
Il s'agit de mathématiques élémentaires de base. 

72
00:04:08,825 --> 00:04:10,975
Je ne sais pas si vous êtes familier avec ça. 

73
00:04:10,970 --> 00:04:13,960
Si vous voulez approfondir la question, soyez mon invité,

74
00:04:13,955 --> 00:04:17,275
je crois que ce sera une explication suffisante. 

75
00:04:17,270 --> 00:04:22,030
Traduisons donc ces équations mathématiques en codes mathématiques. 

76
00:04:22,025 --> 00:04:26,695
Je vais donc revenir en arrière et notre script ici dans la manette du joueur. 

77
00:04:26,690 --> 00:04:32,540
Et la première chose dont nous avons besoin, c'est les deux références pour la caméra et pour les armes. 

78
00:04:32,540 --> 00:04:36,550
Je vais donc commencer par créer un champ sérialisé,

79
00:04:36,545 --> 00:04:38,755
qui sera une transformation. 

80
00:04:38,750 --> 00:04:44,540
Et ça va représenter que les armes sont géniales. 

81
00:04:44,540 --> 00:04:49,130
La deuxième variable que nous allons créer en tant que caméra privée,

82
00:04:49,130 --> 00:04:51,910
et elle sera la caméra principale. 

83
00:04:51,905 --> 00:04:55,735
Et ce qui est cool à ce sujet, c'est que nous pouvons immédiatement aller

84
00:04:55,730 --> 00:05:00,670
Stuart et dire que la caméra principale est égale à la caméra. 

85
00:05:00,665 --> 00:05:02,495
Dot principal. 

86
00:05:02,495 --> 00:05:04,735
Et en utilisant cette caméra, cette principale,

87
00:05:04,730 --> 00:05:09,610
nous pouvons immédiatement obtenir une référence à la caméra principale dont nous disposons. 

88
00:05:09,605 --> 00:05:11,155
Et ici, super. 

89
00:05:11,150 --> 00:05:15,550
Nous devons maintenant savoir où se trouve notre bouche dans le monde. 

90
00:05:15,545 --> 00:05:17,995
Nous allons donc faire défiler vers le bas et ici,

91
00:05:17,990 --> 00:05:21,970
et je vais simplement supprimer ces commentaires parce que nous n'en avons plus besoin. 

92
00:05:21,965 --> 00:05:23,875
Si vous estimez que vous en avez besoin,

93
00:05:23,870 --> 00:05:29,240
gardez-les pour vous rappeler plus tard comment nous avons changé et évolué dans notre code. 

94
00:05:29,240 --> 00:05:32,780
Maintenant, je vais trouver la position de la souris. 

95
00:05:32,780 --> 00:05:36,100
Je vais utiliser un vecteur trois. 

96
00:05:36,095 --> 00:05:41,545
Et ça va s'appeler la position de la souris. 

97
00:05:41,540 --> 00:05:48,080
Et cela sera égal à la position de la souris point d'entrée. 

98
00:05:48,080 --> 00:05:52,340
Et vous pouvez voir maintenant que la communauté Visual Studio nous
 donne immédiatement

99
00:05:52,340 --> 00:05:56,810
la position actuelle de la souris en coordonnées pixel. 

100
00:05:56,810 --> 00:05:58,670
Super, c'est ce dont nous avons besoin. 

101
00:05:58,670 --> 00:06:00,970
Et évidemment, je connais déjà ce genre de choses. 

102
00:06:00,965 --> 00:06:03,215
Si vous vouliez faire des recherches sur ce point,

103
00:06:03,215 --> 00:06:05,915
vous auriez dû aller dans Google,

104
00:06:05,915 --> 00:06:07,595
comment obtenir le plus de position. 

105
00:06:07,595 --> 00:06:10,915
Vous avez obtenu les documentations pour l'unité. 

106
00:06:10,910 --> 00:06:14,410
Vous auriez trouvé cette position de souris point d'entrée. 

107
00:06:14,405 --> 00:06:15,635
Vous l'auriez utilisé. 

108
00:06:15,635 --> 00:06:17,245
Ce n'est qu'un raccourci. 

109
00:06:17,240 --> 00:06:20,420
Continuons. La prochaine chose dont nous avons besoin, c'est le point d'écran. 

110
00:06:20,420 --> 00:06:27,830
Donc, point d'écran, et il sera égal à la caméra principale,

111
00:06:27,830 --> 00:06:33,560
la caméra mondiale, au monde à l'écran. 

112
00:06:33,560 --> 00:06:36,350
Et vous pouvez voir la définition et voici

113
00:06:36,350 --> 00:06:40,820
la position de transformation de l'espace mondial et de l'espace écran. 

114
00:06:40,820 --> 00:06:43,190
On y va. C'est ce dont nous avons besoin. 

115
00:06:43,190 --> 00:06:48,560
Transformez l'échelle locale, je veux dire la position locale. 

116
00:06:48,560 --> 00:06:52,490
Et cela nous donnera la position locale de la transformation,

117
00:06:52,490 --> 00:06:55,130
qui est le joueur en ce moment. 

118
00:06:55,130 --> 00:06:58,750
Et maintenant, il est temps de calculer l'angle. 

119
00:06:58,745 --> 00:07:01,205
Tout d'abord, sauvegardons tout ça. 

120
00:07:01,205 --> 00:07:06,315
Allons de l'avant et assignons le bras au joueur. 

121
00:07:06,315 --> 00:07:09,145
Je vais donc tirer le bras de l'arme maintenant. 

122
00:07:09,145 --> 00:07:10,495
Nous allons sauver ça. 

123
00:07:10,495 --> 00:07:14,925
Et maintenant, la prochaine étape consiste à calculer réellement l'angle. 

124
00:07:14,920 --> 00:07:17,520
Donc, je vais tout d'abord

125
00:07:17,515 --> 00:07:22,485
vous
 montrer ceci à nouveau pour que vous puissiez revenir en arrière et regarder ça si vous en avez besoin. 

126
00:07:22,480 --> 00:07:25,440
Et puis je vais vous lancer un défi. 

127
00:07:25,435 --> 00:07:29,415
Et votre défi sera de calculer l'angle. 

128
00:07:29,410 --> 00:07:33,030
première chose que vous faites est de soustraire

129
00:07:33,025 --> 00:07:38,635
la position x de la souris de la position du point d'écran du x.

130
00:07:38,635 --> 00:07:42,715
Évidemment, vous devrez faire la même chose pour le y.

131
00:07:42,715 --> 00:07:44,535
Ensuite, vous devrez calculer

132
00:07:44,530 --> 00:07:51,020
le point F mathématique arctangent pour le trouver dans la documentation Unity. 

133
00:07:51,020 --> 00:07:53,650
Allez-y, mettez la vidéo en pause dès maintenant. 

134
00:07:53,645 --> 00:07:54,905
Va faire de ton mieux. 

135
00:07:54,905 --> 00:07:55,655
Essayez-le. 

136
00:07:55,655 --> 00:07:58,955
Vous ne perdrez rien en faisant de votre mieux. 

137
00:07:58,955 --> 00:08:03,385
Mettez la vidéo en pause dès maintenant et relancez le défi. 

138
00:08:03,380 --> 00:08:05,810
Salut, bon retour. 

139
00:08:05,810 --> 00:08:07,250
Comme vous pouvez le voir,

140
00:08:07,250 --> 00:08:09,110
je viens de chercher des maths,

141
00:08:09,110 --> 00:08:11,600
tangente d'
arc dans Unity. 

142
00:08:11,600 --> 00:08:13,660
Maintenant, je suis juste ici. 

143
00:08:13,655 --> 00:08:17,695
Que dois-je faire ? Je dois voir comment cela fonctionne. 

144
00:08:17,690 --> 00:08:19,890
Que fait ? Il renvoie un flotteur. 

145
00:08:19,894 --> 00:08:23,004
Voici notre façon d'utiliser matlab.org Tange. 

146
00:08:23,000 --> 00:08:24,200
Ok, super. 

147
00:08:24,200 --> 00:08:25,960
Revenons ici. 

148
00:08:25,955 --> 00:08:29,605
La première chose à faire est donc de calculer la différence. 

149
00:08:29,600 --> 00:08:33,760
Je vais mettre les deux dans un vecteur deux. 

150
00:08:33,755 --> 00:08:36,415
Je vais donc utiliser un vecteur pour,

151
00:08:36,410 --> 00:08:39,330
j'appellerai cela le décalage. 

152
00:08:39,334 --> 00:08:42,484
C'est donc le décalage entre les deux points. 

153
00:08:42,485 --> 00:08:47,825
Il sera égal à un nouveau vecteur deux. 

154
00:08:47,825 --> 00:08:55,145
Et ici, je vais d'abord obtenir la position de la souris point x et en soustraire,
 le

155
00:08:55,145 --> 00:08:58,495
point d'écran dirige. 

156
00:08:58,490 --> 00:09:03,060
Et je vais faire la même chose sur le pourquoi. 

157
00:09:07,750 --> 00:09:13,870
Maintenant, je vais créer un flotteur car comme nous avons vu cette méthode,

158
00:09:13,865 --> 00:09:17,675
la méthode dot arctan renvoie un float,

159
00:09:17,675 --> 00:09:25,225
va être égale à maths F dot arc tan ou non, Eta. 

160
00:09:25,220 --> 00:09:27,980
C'est ce qu'on appelle un bronzage deux. 

161
00:09:27,980 --> 00:09:36,600
Et je vais utiliser le point de décalage y divisé par le décalage DRX. 

162
00:09:36,730 --> 00:09:39,620
Super, je vais donc sauver ça. 

163
00:09:39,620 --> 00:09:46,780
Mais chaque fois que nous voulons attribuer la rotation réelle aux armes,
 nous ne pouvons pas simplement le

164
00:09:46,775 --> 00:09:50,045
faire à l'aide d'un flotteur. 

165
00:09:50,045 --> 00:09:54,745
Ce que nous devons faire, c'est que nous devons utiliser une méthode supplémentaire,

166
00:09:54,740 --> 00:10:00,880
qui est la méthode qui suit deux degrés. 

167
00:10:00,875 --> 00:10:04,745
Et vous pouvez voir que cela convertit les radians en degrés constants. 

168
00:10:04,745 --> 00:10:07,405
Nous devrons donc le faire. 

169
00:10:07,400 --> 00:10:11,720
Et la dernière chose que nous devons faire, c'est que nous devrons accéder aux armes en

170
00:10:11,720 --> 00:10:17,170
rotation des
 points et nous préparer à affronter un monde un peu effrayant. 

171
00:10:17,165 --> 00:10:19,555
Nous allons utiliser les quaternions. 

172
00:10:19,550 --> 00:10:23,810
Donc, Quaternion Dot Bueller. 

173
00:10:23,809 --> 00:10:30,169
Et nous allons le définir à 00 sur l'axe X. 

174
00:10:30,170 --> 00:10:32,870
Nous ne tournons pas sur l'axe Y, nous ne tournons pas. 

175
00:10:32,870 --> 00:10:36,830
Nous tournons uniquement autour de l'axe Z en utilisant l'angle. 

176
00:10:36,830 --> 00:10:39,320
Avant de vous enfuir,

177
00:10:39,320 --> 00:10:42,580
qu'est-ce que Turnitin dot Hulu ? 

178
00:10:42,575 --> 00:10:45,155
Si vous regardez la précédente ici,

179
00:10:45,155 --> 00:10:50,285
vous pouvez voir qu'elle renvoie une rotation qui fait pivoter des degrés Z autour de l'axe z,

180
00:10:50,285 --> 00:10:51,715
x autour de l'axe des x,

181
00:10:51,710 --> 00:10:53,060
des
 x autour de l'axe des x, etc. 

182
00:10:53,060 --> 00:10:55,400
Donc, Quaternion Dot. 

183
00:10:55,400 --> 00:10:57,020
Si vous êtes intéressé,

184
00:10:57,020 --> 00:10:58,930
vous pouvez approfondir cela. 

185
00:10:58,925 --> 00:11:03,055
Personnellement, je fais tourner des objets dans Unity depuis

186
00:11:03,050 --> 00:11:07,460
plusieurs années et je n'ai jamais tout à fait compris ce qu'ils
 entendent

187
00:11:07,460 --> 00:11:11,630
par quaternion n'est qu'un moyen
 de convertir

188
00:11:11,630 --> 00:11:16,340
le XYZ en une rotation et un espace réels. 

189
00:11:16,340 --> 00:11:19,550
Alors n'hésitez pas à plonger en profondeur,

190
00:11:19,550 --> 00:11:22,450
aller le chercher, à vous assurer de tout comprendre. 

191
00:11:22,445 --> 00:11:25,285
Si ce n'est pas le cas, si vous n'êtes pas dérangé de ne pas
 comprendre complètement

192
00:11:25,280 --> 00:11:28,910
ce qui se passe avec quaternion u dot. 

193
00:11:28,910 --> 00:11:34,640
Croyez-moi, vous pouvez traverser votre parcours de développement de jeux sans vous en soucier. 

194
00:11:34,640 --> 00:11:38,150
s'agit donc simplement d'un moyen de convertir x,

195
00:11:38,150 --> 00:11:41,450
y et z en un angle en rotation. 

196
00:11:41,450 --> 00:11:42,580
Nous allons sauver ça. 

197
00:11:42,575 --> 00:11:44,555
Nous retournerons dans Unity. 

198
00:11:44,555 --> 00:11:47,915
Et nous allons diriger le jeu. 

199
00:11:47,915 --> 00:11:51,875
Et voyons ce qui se passe avec le pistolet en ce moment,

200
00:11:51,875 --> 00:11:53,995
nous montons, le pistolet monte. 

201
00:11:53,990 --> 00:11:56,210
Nous descendons. Le pistolet descend. 

202
00:11:56,210 --> 00:11:58,430
Si nous allons à gauche, oui. 

203
00:11:58,430 --> 00:12:02,480
Notre arme a l'air un peu bizarre quand on regarde dans l'autre sens,

204
00:12:02,480 --> 00:12:06,490
mais quand il s'agit de la bonne direction, on y va. 

205
00:12:06,485 --> 00:12:09,445
Nous bougeons et nous nous adaptons même à mesure que nous marchons. 

206
00:12:09,440 --> 00:12:11,830
Vous pouvez donc voir quand nous montons,

207
00:12:11,825 --> 00:12:13,115
le pistolet descend. 

208
00:12:13,115 --> 00:12:18,425
Je regarde toujours exactement où se trouve la position de la souris. 

209
00:12:18,425 --> 00:12:22,315
Tellement génial maintenant, nous avons un pistolet qui tire réellement,

210
00:12:22,310 --> 00:12:25,910
ce qui est incroyable à mon avis, pas vraiment de tir,

211
00:12:25,910 --> 00:12:30,730
qui tirera dans la bonne direction plus tard au fur et à mesure que nous avancerons. 

212
00:12:30,725 --> 00:12:33,445
Mais il y a évidemment quelque chose qui ne va pas lorsque

213
00:12:33,440 --> 00:12:36,280
nous essayons de déplacer la souris dans l'autre sens,

214
00:12:36,275 --> 00:12:38,025
elle se déplace correctement. 

215
00:12:38,029 --> 00:12:43,069
C'est ce que nous allons corriger dans la prochaine vidéo tout en apprenant

216
00:12:43,069 --> 00:12:48,699
quelque chose de très agréable encodage qui s'appelle les instructions if et les conditions if. 

217
00:12:48,695 --> 00:12:50,845
Je vous y verrai donc. 

218
00:12:50,840 --> 00:12:52,160
Mais avant de partir,

219
00:12:52,160 --> 00:12:55,640
assurez-vous
 toujours de mettre en scène tous vos fichiers. 

220
00:12:55,640 --> 00:12:57,250
Mega s'engage. 

221
00:12:57,245 --> 00:13:03,125
Je vais dire que ça a fait pointer mon arme dans

222
00:13:03,125 --> 00:13:09,575
la bonne direction ou ne pas envier l'angle droit. 

223
00:13:09,575 --> 00:13:10,945
Parce que dans la vidéo suivante,

224
00:13:10,940 --> 00:13:13,250
nous allons le faire pointer dans la bonne direction,

225
00:13:13,250 --> 00:13:16,520
faire pointer tout le joueur et la bonne direction. 

226
00:13:16,520 --> 00:13:19,290
Alors, à ce moment-là. 

