﻿1
00:00:04,370 --> 00:00:05,330
‫Merhaba ve hoş geldiniz.

2
00:00:05,330 --> 00:00:10,250
‫Bu derste, bir onay kutusunu işaretleyerek taşıyıcımızın biraz hareket etmesini sağlayacağız.

3
00:00:10,250 --> 00:00:14,780
‫Sabit bir hızda hareket etmesini ve ilerlemesini sağlayacağız.

4
00:00:14,780 --> 00:00:19,460
‫Ve bunu bu kez içeriden bazı kütüphane işlevlerini kullanarak yapacağız.

5
00:00:19,460 --> 00:00:20,150
‫Gerçek dışı.

6
00:00:20,150 --> 00:00:24,920
‫Böylece başlık dosyaları ve içerikler hakkındaki tüm bilgimizi test etmiş olacağız.

7
00:00:24,920 --> 00:00:26,780
‫İçeri dalalım ve nasıl çalıştığını görelim.

8
00:00:27,380 --> 00:00:34,670
‫Bu taşıyıcının çalışmasını istediğim yol, başladığı yerden belirli sayıda saniyelik bir süre boyunca bir hedef

9
00:00:34,670 --> 00:00:38,540
‫ofsete sorunsuz bir şekilde hareket etmesini istiyorum.

10
00:00:38,540 --> 00:00:43,640
‫Bunu yapılandırmak için kullanacağımız yol, başlık dosyasına bazı yeni özellikler eklemektir.

11
00:00:43,640 --> 00:00:49,010
‫Bu yüzden dosyanın başına özel bir bölüm ekleyerek başlayalım ve ardından

12
00:00:49,010 --> 00:00:59,060
‫herhangi bir yerde düzenlenebilecek yeni bir özellik ekleyeceğiz, bu özellik ofseti, taşıma ofsetini tanımlayacak.

13
00:00:59,060 --> 00:01:03,650
‫Peki bu taşıyıcı etkinleştirildiğinde ne kadar uzağa hareket etmelidir.

14
00:01:03,710 --> 00:01:09,560
‫Bunu yapmanın yolu bir F vektörü kullanmak olacak ve buna hareket ofseti diyeceğiz, bu yüzden

15
00:01:09,560 --> 00:01:11,960
‫varsayılan bir değer vermeyeceğim.

16
00:01:11,990 --> 00:01:13,610
‫Bunu editörde yaparız.

17
00:01:13,880 --> 00:01:19,370
‫Ardından, yine herhangi bir yerde düzenle olacak yeni bir özellik daha oluşturacağım,

18
00:01:19,370 --> 00:01:24,050
‫bu da hedefe gitmek için gereken süre olacak.

19
00:01:24,050 --> 00:01:31,790
‫Bu yüzden bunun bir float, yani hareket süresi olmasını sağlayacağız ve bunu varsayılan değer olarak 4 saniye olarak

20
00:01:31,790 --> 00:01:33,410
‫ayarlayacağım.

21
00:01:33,440 --> 00:01:39,740
‫Şimdi, buraya koymak istediğim bir şey daha var, bu şimdilik bir Boolean, bu boolean'ı

22
00:01:39,740 --> 00:01:47,060
‫etkinleştirdiğimizde aşağı hareket etmesi için taşıyıcıyı etkinleştirmemize izin verecek.

23
00:01:47,060 --> 00:01:49,790
‫Şimdi tekrar başka bir U özelliği oluşturalım.

24
00:01:49,790 --> 00:01:57,560
‫Oynatırken bile düzenleyebilmemiz için herhangi bir yeri düzenleyin ve hareket etmeli diyen bir boolean olacak ve

25
00:01:57,740 --> 00:02:01,100
‫varsayılan olarak false olarak ayarlanacaktır.

26
00:02:01,100 --> 00:02:07,700
‫Bu yüzden düzenleyicide bunu işaretlediğimizde, oynatırken, gidip hedef hareket ofsetine hareket

27
00:02:07,700 --> 00:02:08,750
‫edecektir.

28
00:02:08,750 --> 00:02:13,340
‫Daha önce hareketli bir bileşenimiz olduğunda tüm adımları manuel olarak gerçekleştiriyorduk.

29
00:02:13,340 --> 00:02:17,600
‫Ancak size aslında ihtiyacımız olan hesaplamaların çoğunu yapmak için yerleşik bazı işlevler olduğunu göstermek

30
00:02:17,600 --> 00:02:18,050
‫istiyorum.

31
00:02:18,050 --> 00:02:24,830
‫Unreal'da yerleşiktir ve V yorumlama sabiti adında bir işlev de vardır.

32
00:02:24,830 --> 00:02:28,460
‫Bu konuda ilginç olan şey, açıklamalara bir göz atalım.

33
00:02:28,460 --> 00:02:36,740
‫Yani sabit bir adım kullanarak bir vektörü mevcut bir vektörden hedef bir vektöre enterpole edin.

34
00:02:36,740 --> 00:02:43,940
‫Yani bu, zaman içinde mevcut durumdan hedefe belirli bir hızda hareket edeceğimiz ve bunu sürekli olarak yapacağı anlamına geliyor

35
00:02:43,940 --> 00:02:47,330
‫ki bu da tam olarak istediğimiz şey gibi görünüyor.

36
00:02:47,330 --> 00:02:52,430
‫Mevcut konumumuzdan hedef ofset konumuna sabit bir hızda hareket etmek istiyoruz.

37
00:02:52,640 --> 00:02:58,700
‫Şimdi, bu fonksiyonun sözdizimine bakarsanız, F vektörünün bir dönüş türüne sahip olduğunu

38
00:02:58,700 --> 00:02:59,990
‫görebilirsiniz.

39
00:02:59,990 --> 00:03:03,590
‫Yani bu, enterpolasyon yaptığı yeni konumdur.

40
00:03:03,770 --> 00:03:06,620
‫O zaman iki girişi vardır.

41
00:03:06,620 --> 00:03:14,360
‫Mevcut bir F vektörümüz var ve şimdilik bu etkinin etrafındaki diğer semboller hakkında endişelenmeyin,

42
00:03:14,360 --> 00:03:21,170
‫sadece önemli olan bunun bir akım vektörü olması ve ardından sonunda ulaşmasını istediğimiz

43
00:03:21,170 --> 00:03:21,950
‫hedef.

44
00:03:22,190 --> 00:03:25,220
‫O zaman delta zamanı vardır.

45
00:03:25,220 --> 00:03:32,180
‫Böylece hareketi kare hızından bağımsız ve enterpolasyon hızında yapmak için bunu kullanır.

46
00:03:32,180 --> 00:03:37,220
‫Peki mevcut konumumuzdan hedefe doğru ne kadar hızlı hareket etmeliyiz?

47
00:03:37,220 --> 00:03:45,530
‫Şimdi burada belgelerde aslında include yazan bir bölüm olduğunu fark edeceksiniz ve bu size bu fonksiyonu

48
00:03:45,530 --> 00:03:52,280
‫kullanabilmek için C++ dosyanızda ihtiyaç duyacağınız include satırını söyler.

49
00:03:52,280 --> 00:04:00,860
‫Önceki videoda gördüğümüz gibi, include satırı bu dosyadaki tanımları kopyalamamızı

50
00:04:00,860 --> 00:04:02,390
‫sağlar.

51
00:04:02,390 --> 00:04:05,990
‫Tanımlardan biri de bu fonksiyonun tanımıdır.

52
00:04:05,990 --> 00:04:13,250
‫Dolayısıyla, bu V yorumlama sabitini kullanmamıza izin verir, şimdi bu fonksiyonun önündeki V temel olarak vektörler üzerinde enterpolasyon

53
00:04:13,250 --> 00:04:15,170
‫yaptığı anlamına gelir.

54
00:04:15,170 --> 00:04:20,870
‫Bu kütüphane dosyasında da bulunan diğer enterpolasyon fonksiyonlarının aksine V yorumlama olarak adlandırılmasının

55
00:04:20,870 --> 00:04:22,430
‫nedeni budur.

56
00:04:22,430 --> 00:04:24,140
‫Şimdi bunu nasıl kullanacağımıza bir göz atalım.

57
00:04:24,140 --> 00:04:29,900
‫Her şeyden önce, include satırını dokümantasyondan kopyalayacağız ve bunu tick bileşeninin

58
00:04:29,900 --> 00:04:34,580
‫gövdesinde uygulamak istediğimiz CP hamlemize geçeceğiz.

59
00:04:34,580 --> 00:04:38,660
‫Ancak kene bileşeninin gövdesine dahil etmiyoruz.

60
00:04:38,660 --> 00:04:41,900
‫Dahil etme işlemini dosyanın en üstünde yapmamız gerekiyor.

61
00:04:42,050 --> 00:04:47,660
‫Ben de benimkini buraya koyacağım ve H taşıyıcısının dahil edilmesinden sonra benimkini koyacağım.

62
00:04:47,660 --> 00:04:53,240
‫Bu yüzden matematik, ileri eğik çizgi, gerçek olmayan matematik yardımcı programını ekleyeceğiz.

63
00:04:53,660 --> 00:04:59,930
‫H Şimdi yapabileceğimiz şey, bu fonksiyonu tick bileşenimiz içinde kullanabilmektir.

64
00:04:59,930 --> 00:05:03,550
‫Halihazırda içine yerleştirdiğimiz koddan kurtulalım.

65
00:05:03,560 --> 00:05:03,800
‫Hesapla.

66
00:05:04,020 --> 00:05:09,300
‫Çünkü bunu diğer aktörler üzerinde fonksiyonları nasıl çağıracağımızı anlamak için kullanıyorduk.

67
00:05:10,140 --> 00:05:17,190
‫Ve yapmamız gereken şey, yukarı kaydırırsanız, bunu çağırmanın yolunun F Mass Colon, Colon V Intercept, sabit iki olduğunu

68
00:05:17,190 --> 00:05:18,770
‫görebilirsiniz.

69
00:05:18,780 --> 00:05:27,630
‫Bu yüzden, tüm bu matematik yardımcı programlarını bir araya getiren F matematik sınıfının içine bakan bu iki nokta

70
00:05:27,630 --> 00:05:30,180
‫üst üste operatörünü yapıyoruz.

71
00:05:30,180 --> 00:05:33,300
‫Yani F matematiği yapacağız.

72
00:05:33,330 --> 00:05:34,500
‫Kolon.

73
00:05:35,340 --> 00:05:41,460
‫Burada, az önce bu dosyaya eklediğimiz başlık dosyasında yer alan farklı matematik fonksiyonları için

74
00:05:41,460 --> 00:05:44,760
‫gelen bir grup otomatik tamamlamayı görebilirsiniz.

75
00:05:44,760 --> 00:05:48,900
‫Böylece bir göz atabilir, ilginç şeylerden herhangi birinin burada olduğunu görebilirsiniz,

76
00:05:48,900 --> 00:05:56,580
‫bir sürü enterpolasyon, dairesel enterpolasyon vb. görebilirim. ancak V yorumlama sabitini istedik ve bunu tamamlamak

77
00:05:56,580 --> 00:06:04,080
‫için tab tuşuna basabilir ve ardından bazı parantezler açabiliriz ve akım, hedef delta zamanı ve kesişme

78
00:06:04,080 --> 00:06:09,180
‫hızında geçmemiz gereken argümanları görebiliriz.

79
00:06:09,180 --> 00:06:13,920
‫Şimdi bunlardan bazılarını tutmak için bazı değişkenler oluşturmaya başlayalım.

80
00:06:14,250 --> 00:06:23,370
‫Her şeyden önce, mevcut konumumuz olacak bir F vektörüne ihtiyacımız var ve bunu henüz ayarlamayacağız.

81
00:06:23,370 --> 00:06:32,340
‫Sonra hedef konum için bir F vektörümüz olacak ve ardından hız için bir float alacağız.

82
00:06:33,090 --> 00:06:38,640
‫Ve bu hareketi nasıl gerçekleştirebileceğimizi bulmak için bunların her birini ayrı ayrı hesaplamamız gerekecek.

83
00:06:38,640 --> 00:06:42,450
‫Dolayısıyla mevcut konum nispeten daha kolay olacak.

84
00:06:42,450 --> 00:06:46,440
‫Sahip olan aktörün mevcut konumunu almamız gerekiyor.

85
00:06:46,440 --> 00:06:47,190
‫Peki bunu nasıl yapacağız?

86
00:06:47,190 --> 00:06:50,370
‫Bu noktalı virgülü eşittir işaretiyle değiştirelim.

87
00:06:50,400 --> 00:06:54,750
‫Sonra bir get owner parantez çifti yapacağız.

88
00:06:54,930 --> 00:06:56,370
‫Sonra bir ok yapacağız.

89
00:06:56,370 --> 00:07:05,580
‫Bu yüzden, sahip olunan aktör üzerinde bir fonksiyon çağıracağız ve aktörün konumunu alacağız ve ardından bir çift parantez ve

90
00:07:05,700 --> 00:07:08,520
‫noktalı virgülle sonlandıracağız.

91
00:07:08,520 --> 00:07:12,570
‫Bu da bize sahip olan aktörün mevcut konumunu verir.

92
00:07:12,750 --> 00:07:15,000
‫Peki ya hedef konumumuz ne olacak?

93
00:07:15,000 --> 00:07:21,000
‫Hareket ofseti adında bir özelliğimiz olduğunu biliyoruz, dolayısıyla bu özellik burada devreye girecek.

94
00:07:21,000 --> 00:07:26,640
‫Ancak orijinal konumu bu taşıma ofsetine eklememiz gerekir.

95
00:07:26,820 --> 00:07:32,820
‫Bunun için Biggin oyunundaki orijinal konumu yakalamamız gerekiyor.

96
00:07:32,820 --> 00:07:34,860
‫Bu yüzden onu saklamak için bir değişkene ihtiyacımız var.

97
00:07:34,860 --> 00:07:38,820
‫Şimdi taşıyıcımız H'ye gidelim ve hiçbir yerde düzenleme yapmayalım.

98
00:07:38,820 --> 00:07:40,460
‫Bir kere U'nun altına koyacağım.

99
00:07:40,470 --> 00:07:46,590
‫Özellikler, Orijinal Konum adında bir F vektörü olacak.

100
00:07:47,220 --> 00:07:49,020
‫Burada herhangi bir şeye ayarlamayacağız.

101
00:07:49,020 --> 00:07:54,480
‫Sonra taşıyıcı CP'mize gidip oyuna başlayacağız, bu yorum

102
00:07:54,480 --> 00:08:06,180
‫satırını kaldıracağız ve kendi kodumuzu koyacağız, bu da orijinal konumun get owner parantez ok get actor konumuna eşit olacağı

103
00:08:06,180 --> 00:08:08,790
‫şeklinde olacaktır.

104
00:08:08,790 --> 00:08:13,260
‫Artık orijinal konumumuzu yakaladığımıza ve oynatmaya başladığımıza göre, bunu TTIC'de kullanabiliriz.

105
00:08:13,260 --> 00:08:21,870
‫Bu yüzden Tick'e giriyoruz ve hedef konumumuzu orijinal konum artı taşıma ofsetine eşit olarak ayarlıyoruz.

106
00:08:21,870 --> 00:08:25,560
‫Bu bizim hedef konumumuz ve son olarak da hızımız.

107
00:08:25,560 --> 00:08:32,610
‫Bu, esasen hareket etmemiz gereken mesafenin hareket etmemiz gereken zamana bölünmesidir.

108
00:08:32,610 --> 00:08:38,820
‫Dolayısıyla, bir hedef konumumuz ve bir orijinal konumumuz varsa, bu ikisi arasındaki mesafeyi bulmamız

109
00:08:38,820 --> 00:08:45,270
‫gerekir; bunu da bir F vektörü, iki nokta üst üste, iki nokta üst üste mesafesi ile yapabiliriz.

110
00:08:45,270 --> 00:08:54,750
‫Ardından parantezlere orijinal konumu ve hedef konumu aktarırız.

111
00:08:54,930 --> 00:08:58,260
‫Bu da bize bu iki vektör arasındaki mesafeyi verir.

112
00:08:58,260 --> 00:09:05,400
‫Sonra da bunu taşınma süresi olarak adlandırdığımız süreye böleceğiz.

113
00:09:05,730 --> 00:09:08,970
‫Bu da bize hareket etmemiz gereken hızı verir.

114
00:09:09,210 --> 00:09:13,920
‫Ve şimdi bunları V'nin de sabit kalmasını sağlamak için argüman olarak kullanabiliriz.

115
00:09:13,920 --> 00:09:20,730
‫Bu yüzden öncelikle ona mevcut konumu ve ardından hedef konumu vermemiz gerekiyor.

116
00:09:21,150 --> 00:09:27,210
‫Sonra ona Delta zamanını söyleyeceğiz, ki bu zaten tick bileşeninde bir parametredir.

117
00:09:27,220 --> 00:09:31,890
‫Bu yüzden sadece bunu geçirmemiz gerekiyor ve sonra durdurma hızına sahip oluyoruz.

118
00:09:31,890 --> 00:09:38,970
‫Bu nedenle, bu satırın sonuna noktalı virgül koyar gibi hızı aktaracağız ve bu aslında

119
00:09:38,970 --> 00:09:40,410
‫yeni konumdur.

120
00:09:40,410 --> 00:09:50,130
‫O halde bunu yeni konum adında yeni bir F vektör değişkenine depolayalım.

121
00:09:50,430 --> 00:09:54,300
‫Şimdi bu yeni konumla bir şeyler yapmamız gerekiyor çünkü bunu sadece hesaplamak

122
00:09:54,330 --> 00:09:57,960
‫iyi değil, aktörü gerçekten yeni konuma taşımamız gerekiyor.

123
00:09:58,290 --> 00:09:59,370
‫Yani yapacağımız şey bu.

124
00:09:59,400 --> 00:10:02,280
‫Sahibini bul diyeceğiz.

125
00:10:02,280 --> 00:10:03,740
‫Biz de kendimizinkini alırız.

126
00:10:04,730 --> 00:10:06,640
‫Parantez Ok.

127
00:10:06,650 --> 00:10:15,680
‫Sonra bir aktör konumu belirleyeceğiz ve yeni konumu bu şekilde gireceğiz ve satırın sonuna noktalı

128
00:10:15,680 --> 00:10:17,780
‫virgül koyacağız.

129
00:10:17,960 --> 00:10:20,990
‫Şimdi devam edip bunu derleyelim ve çalışıp çalışmadığını görelim.

130
00:10:20,990 --> 00:10:25,280
‫Zindana gidip taşımak istediğimiz duvarı seçersek, şimdi

131
00:10:25,280 --> 00:10:32,990
‫taşıyıcı bileşenin bir hareket ofseti olduğunu görebilirsiniz, bunu Z yönünde yapmak isteyeceğim

132
00:10:32,990 --> 00:10:35,480
‫ve sanırım -600 yapacağım.

133
00:10:35,960 --> 00:10:38,930
‫Ve sonra hareket süresi, 4 saniye yeterli olacaktır.

134
00:10:38,930 --> 00:10:44,060
‫Bunu kaydedelim ve ardından oynat düğmesine basarak hareket edip etmediğine bakalım.

135
00:10:44,060 --> 00:10:50,030
‫Ve çıktı günlüğünde aktörün hareketliliğinin statik olarak ayarlandığını söyleyen bir hata var, bu yüzden

136
00:10:50,030 --> 00:10:51,350
‫hareket edemiyor.

137
00:10:51,350 --> 00:10:59,780
‫Dolayısıyla, aktörü tekrar seçer ve hareketlilik ayarlarına bakarsak, aslında statik ağ bileşeninin hareketlilik ayarlarını

138
00:10:59,780 --> 00:11:01,370
‫görebilirsiniz.

139
00:11:01,370 --> 00:11:03,920
‫Bu yüzden statik ağ bileşenini seçin, ardından hareketliliğe bakın.

140
00:11:03,920 --> 00:11:06,740
‫Statik olarak ayarlandığını görebilirsiniz, bu da temelde hareket etmesine izin verilmediği anlamına gelir.

141
00:11:06,890 --> 00:11:11,900
‫Bunu hareketli olarak değiştirelim çünkü hareket etmesini istiyoruz ve sonra devam edip oynat düğmesine basalım.

142
00:11:11,930 --> 00:11:18,200
‫Şimdi karanlıkta duvarın yıkıldığını görebiliyorsunuz ki bu mükemmel bir şey.

143
00:11:18,200 --> 00:11:23,180
‫Sanırım sahnemizin başka bir yerinde, bu sütunun üzerinde de hareket etmeye çalışan bir hareket ettirici

144
00:11:23,180 --> 00:11:23,540
‫var.

145
00:11:23,540 --> 00:11:24,680
‫O yüzden bunu yapmayalım.

146
00:11:24,680 --> 00:11:32,510
‫Sadece test etmek için eklediğimiz mover bileşenini silelim ve çıktı günlüğünde bize hata vermemelidir.

147
00:11:32,510 --> 00:11:38,450
‫Şimdi devam edip oynat düğmesine basarsak, duvarın hedef konuma inmesi gerekir.

148
00:11:38,450 --> 00:11:42,890
‫Öyleyse, oluşturduğumuz boolean ile onu hareket ettirmeniz için size meydan okuyalım.

149
00:11:42,890 --> 00:11:48,770
‫Bu yüzden kodu uygun bir if deyimine ve uygun koda saracaksınız, böylece platformu

150
00:11:48,770 --> 00:11:52,730
‫yalnızca Boolean doğru olduğunda hareket ettirecek.

151
00:11:53,000 --> 00:11:58,520
‫Daha sonra kodu yeniden derleyecek ve F8'i kullanarak oynatacak ve çıkaracak ve ardından boolean'ı değiştirecek ve

152
00:11:58,520 --> 00:12:02,420
‫bu boolean'ı kontrol ettiğinizde hareket edip etmediğini gözlemleyeceksiniz.

153
00:12:02,420 --> 00:12:04,400
‫Videoyu durdurun ve bir deneyin.

154
00:12:07,410 --> 00:12:07,740
‫Tamam.

155
00:12:07,770 --> 00:12:08,510
‫Tekrar hoş geldiniz.

156
00:12:08,520 --> 00:12:14,820
‫Şimdi gidip bu tik bileşenini bir if deyimine saralım, süper değil ama yapacağımız diğer her

157
00:12:14,820 --> 00:12:15,390
‫şeyi.

158
00:12:15,390 --> 00:12:24,450
‫Eğer taşınması gerekiyorsa, birkaç parantez açın ve tüm bu kodu bir seviye girintilemeyi unutmadan taşıyın çünkü parantezlerin içindeyiz

159
00:12:24,450 --> 00:12:29,610
‫ve bunun yalnızca if deyimi içinde yürütüleceğini göstermek istiyoruz.

160
00:12:29,610 --> 00:12:37,230
‫Derlemek için tüm f 11 kontrollerini okumamızı kolaylaştırın ve sonra gidip oynat düğmesine basabilmeli

161
00:12:37,230 --> 00:12:42,300
‫ve faremizi yakaladıysak çıkarmak için F sekiz'e basabilmeliyiz.

162
00:12:42,660 --> 00:12:49,680
‫Ve sonra aykırı değerimize bir göz atacağız, duvarı bulmaya çalışacağız ya da sadece sahneye tıklayabiliriz

163
00:12:49,680 --> 00:12:56,340
‫ve sonra bir bileşeni taşı'yı seçeceğiz ve hareket etmeli'yi kontrol edeceğiz ve gidecekler,

164
00:12:56,340 --> 00:13:00,540
‫bu olduğunda duvar hareket etmeye başlar.

165
00:13:00,570 --> 00:13:01,350
‫Harika bir şey.

166
00:13:01,350 --> 00:13:03,570
‫Bir sonraki derste görüşmek üzere.

