﻿1
00:00:04,130 --> 00:00:06,050
‫Merhaba ve tekrar hoş geldiniz.

2
00:00:06,080 --> 00:00:10,010
‫Şimdi bu videoda, tankımızı nasıl hareket ettirebileceğimizi konuşmaya başlayacağız.

3
00:00:10,160 --> 00:00:16,010
‫Yani tankı hareket ettirmek için bir çeşit ofset ve gerçek dışı bir motor eklememiz gerekecek.

4
00:00:16,010 --> 00:00:21,650
‫Bir ofset ekleme söz konusu olduğunda, ofseti yerel uzayda mı yoksa dünya uzayında mı yapacağımıza

5
00:00:21,650 --> 00:00:23,690
‫karar vermemiz gerekir.

6
00:00:23,690 --> 00:00:26,840
‫Şimdi bu iki şey arasındaki farkı tartışalım.

7
00:00:27,200 --> 00:00:34,220
‫Şimdi, burada editörde -- tankını seçtim ve bunu seçer seçmez, bir gizmo olduğunu

8
00:00:34,220 --> 00:00:36,560
‫fark edeceksiniz.

9
00:00:36,590 --> 00:00:38,720
‫Bu şeyin adı bu. Gizmo.

10
00:00:38,720 --> 00:00:41,810
‫Üç oku var ve her biri farklı renkte.

11
00:00:41,810 --> 00:00:47,360
‫Şimdi, eğer fark etmediyseniz, ekranın sol alt kısmında daha küçük bir aygıt daha var.

12
00:00:47,360 --> 00:00:53,000
‫Bu da seçtiğimiz aktörün üzerindeki gizmo'ya benziyor.

13
00:00:53,000 --> 00:00:56,750
‫Yani herhangi bir aktörü seçersem, her zaman bu gizmoyu alırız.

14
00:00:56,750 --> 00:01:02,660
‫Ve elbette, çevirme modundan döndürme moduna ve ölçekleme moduna geçtiğimizde gizmo değişir.

15
00:01:02,660 --> 00:01:09,020
‫Görüntü alanının sağ üst köşesindeki en soldaki simgeden veya W tuşuyla erişebileceğimiz çevirme

16
00:01:09,020 --> 00:01:16,550
‫özelliğinde olduğumuz sürece, gizmo üzerindeki oklardan birini sürükleyerek nesneleri taşıma veya çevirme olanağına

17
00:01:16,550 --> 00:01:18,260
‫sahibiz.

18
00:01:18,260 --> 00:01:26,180
‫Ve renkler eksenlere karşılık gelir kırmızı x ekseni yeşil y ekseni ve mavi z eksenidir.

19
00:01:26,210 --> 00:01:32,000
‫Şimdi, görünümümüzü döndürür ve farklı bir yöne bakarsak, gizmo'nun hala aynı orijinal

20
00:01:32,000 --> 00:01:34,070
‫yönü gösterdiğini göreceğiz.

21
00:01:34,070 --> 00:01:40,520
‫Ve biz dönerken, görüntü alanının sol alt tarafındaki gizmo dönüyor çünkü dünyanın

22
00:01:40,520 --> 00:01:42,740
‫yönü değişmiyor.

23
00:01:42,740 --> 00:01:44,060
‫Şimdiye kadar çok iyi.

24
00:01:44,060 --> 00:01:51,530
‫Şimdi baktığımız şey dünya uzayı yönleridir, ancak dünyadaki her aktör için yerel bir yön

25
00:01:51,530 --> 00:01:52,310
‫vardır.

26
00:01:52,310 --> 00:01:58,670
‫Dünyaya benzeyen ve açılır pencerede döngüler yazan bu simgeye tıkladığımızda, transform gizmo'nun

27
00:01:58,670 --> 00:02:03,560
‫sistemleri dünya ve yerel uzay arasında koordine ettiğini görebiliriz.

28
00:02:03,560 --> 00:02:09,050
‫Burada bir dünya gördüğümüzde, bu dünya uzayına baktığımız anlamına gelir, ancak

29
00:02:09,080 --> 00:02:16,700
‫üzerine tıklarsak, şimdi bir küpe dönüşür ve şimdi seçtiğimiz belirli aktör için yerel uzaya bakarız.

30
00:02:16,700 --> 00:02:21,110
‫Görüntü alanının sol alt tarafındaki gizmo bize hala dünya alanını gösteriyor.

31
00:02:21,110 --> 00:02:27,560
‫Ancak bu aktörü alıp döndürme moduna geçersem ve döndürürsem, öteleme moduna geri döndüğümde,

32
00:02:27,560 --> 00:02:32,390
‫gizmo'nun artık farklı bir yönü gösterdiğini göreceksiniz.

33
00:02:32,390 --> 00:02:36,680
‫Aktörün kendi yerel x ekseni vardır.

34
00:02:36,680 --> 00:02:40,730
‫Aktör için x eksenini ileri vektörü olarak düşünebiliriz.

35
00:02:40,730 --> 00:02:46,520
‫Şimdi ekranın sol alt kısmında gizmo'nun hala aynı yönü gösterdiğine dikkat edin.

36
00:02:46,520 --> 00:02:53,750
‫Ancak buradaki aktör, yani piyon tankı, kendi yerel X yönüne sahip ve farklı bir yönü işaret

37
00:02:53,750 --> 00:02:54,530
‫ediyor.

38
00:02:54,530 --> 00:03:01,250
‫Şimdi, buradaki küpün üzerine tıklar ve onu tekrar dünyaya çevirirsem, tankın gizmosu

39
00:03:01,250 --> 00:03:09,050
‫dünya ekseni yönüyle eşleşir ve hizalanır, böylece herhangi bir aktör için dünya ve yerel uzay arasında

40
00:03:09,050 --> 00:03:14,330
‫geçiş yaparak yerel yönünü dünya yönüne karşı görebiliriz.

41
00:03:14,690 --> 00:03:20,540
‫Böylece, dünyamızda seçtiğimiz herhangi bir aktörün kendi yerel yönüne sahip olduğunu gördük.

42
00:03:20,540 --> 00:03:27,320
‫Ve bu, buradaki resimde gösterildiği gibi dünya yönünden farklı olabilir veya olmayabilir.

43
00:03:27,440 --> 00:03:33,200
‫Yani Unreal Engine'de nesneleri hareket ettirmek söz konusu olduğunda bu çok önemlidir.

44
00:03:33,200 --> 00:03:38,990
‫Nesneleri hareket ettirmek için fonksiyonlar vardır ve dünya uzayı ile yerel uzayda hareket etmek

45
00:03:38,990 --> 00:03:41,150
‫için farklı fonksiyonlar vardır.

46
00:03:41,150 --> 00:03:47,480
‫Diyelim ki tankımız bu tarafa bakıyor ve x ekseni, burada tankın üzerine çizdiğim okla gösterildiği

47
00:03:47,480 --> 00:03:50,150
‫gibi hafifçe sola bakıyor.

48
00:03:50,150 --> 00:03:56,720
‫Şimdi, sol alttaki bu gizmo'ya dayanarak, dünyanın x ekseni yönünün sağa dönük olduğunu görebiliriz.

49
00:03:56,720 --> 00:04:00,200
‫Yani tank dünya uzayı yönüne göre hizalanmamıştır.

50
00:04:00,410 --> 00:04:05,660
‫Şimdi, bu tankı dünya uzayında pozitif X yönünde hareket ettirdiğimizi varsayalım.

51
00:04:05,660 --> 00:04:12,020
‫O zaman tank sola dönük olsa bile, yine de o dünya x yönünde hareket edecek ve geriye doğru hareket

52
00:04:12,020 --> 00:04:14,300
‫ediyormuş gibi görünecektir.

53
00:04:14,300 --> 00:04:15,950
‫Yani istediğimiz bu değil.

54
00:04:15,980 --> 00:04:22,910
‫Öte yandan, diyelim ki tankı kendi yerel alanında hareket ettirmek için tasarlanmış bir fonksiyon kullanıyoruz.

55
00:04:22,940 --> 00:04:30,620
‫Bu, tankı kendi yerel X yönünde hareket ettirirsek, beklediğiniz yönde ilerleyeceği anlamına

56
00:04:30,620 --> 00:04:31,760
‫gelir.

57
00:04:31,760 --> 00:04:34,310
‫Bizim istediğimiz davranış da budur.

58
00:04:34,340 --> 00:04:35,690
‫Şimdi Unreal Engine'de.

59
00:04:35,690 --> 00:04:40,190
‫Bunu bizim için yapabilecek fonksiyonun adı Add Actor Local Offset'tir.

60
00:04:40,190 --> 00:04:43,970
‫Bu fonksiyon aktörü yerel bir yönde hareket ettirir.

61
00:04:44,090 --> 00:04:47,900
‫Şimdi tek bir hareket olan bir ofset uygular.

62
00:04:47,930 --> 00:04:54,140
‫Esasen, ona hangi yöne ve ne kadar uzağa hareket edeceğini söyleriz ve o nesneyi bir kez hareket ettirir, bu da tankı

63
00:04:54,140 --> 00:04:58,790
‫hareket ettirmek istediğimiz her karede bu işlevi çağıracağımız anlamına gelir.

64
00:04:58,790 --> 00:05:03,530
‫Bu yüzden her karede bir fonksiyon çağırdığımız için onu küçük artışlarla hareket ettireceğiz.

65
00:05:03,680 --> 00:05:11,480
‫Tankımızın kendi yerel X ekseninin ileri yönü olduğu anlamına geliyor.

66
00:05:11,480 --> 00:05:16,010
‫Yani bu, yerel bir ofset eklediğimizde kullanacağımız eksendir.

67
00:05:16,400 --> 00:05:20,990
‫İşte ADD aktör yerel ofseti için unreal engine belgeleri.

68
00:05:20,990 --> 00:05:24,590
‫Bunun aktör sınıfına ait bir fonksiyon olduğunu görüyorsunuz.

69
00:05:24,590 --> 00:05:29,990
‫Bu yüzden şimdi aktör yerel ofseti ekle olarak adlandırılıyor çünkü aktör sınıfında var.

70
00:05:29,990 --> 00:05:33,140
‫Piyonlar bu fonksiyonu miras alır, böylece onu kullanabiliriz.

71
00:05:33,170 --> 00:05:34,820
‫İşte söz dizimi.

72
00:05:34,820 --> 00:05:37,220
‫Dört giriş parametresi vardır.

73
00:05:37,220 --> 00:05:41,090
‫Bunlardan ilki delta konumu adı verilen bir F vektörüdür.

74
00:05:41,090 --> 00:05:47,630
‫Dolayısıyla, bu aktör yerel ofset ekleme işlevine aktarabileceğimiz bir F vektörü oluşturmamız gerekecek.

75
00:05:47,630 --> 00:05:50,840
‫Bu yüzden aktör yerel ofsetini eklediğimizi biliyoruz.

76
00:05:50,840 --> 00:05:56,930
‫Ve nasıl çalıştığını görmek için bunu denemek istiyorum, böylece bunu tik fonksiyonunda yapabiliriz.

77
00:05:56,930 --> 00:06:03,590
‫Şimdi burada tank sınıfında tic fonksiyonunun üzerine yazmıyoruz, ancak temel pong sınıfında

78
00:06:03,590 --> 00:06:04,250
‫var.

79
00:06:04,250 --> 00:06:10,490
‫Eğer temel gölet CP'ye gidersek burada tik fonksiyonumuz var ve burada hiçbir şey yapmıyoruz ve bu bazı

80
00:06:10,490 --> 00:06:12,710
‫deneyler yapmak için mükemmel.

81
00:06:12,710 --> 00:06:18,530
‫Şimdi yapacağım şey, aynen bu şekilde, add, actor, local offset yazmak.

82
00:06:18,530 --> 00:06:22,760
‫Ve sağ tıklayıp tanıma git'i seçeceğim.

83
00:06:22,760 --> 00:06:28,520
‫Şimdi burada aktör CP dosyasında, ADD Aktör Yerel Ofseti için bir tanımımız var.

84
00:06:28,520 --> 00:06:30,170
‫Şimdi ilginç bir şeye dikkat edin.

85
00:06:30,170 --> 00:06:37,910
‫Kök bileşenin null olup olmadığını kontrol eder ve null değilse, yerel ofset eklemek için bu işlevi çağırır.

86
00:06:37,910 --> 00:06:41,720
‫Yani aslında yaptığımız şey kök bileşene bir ofset eklemek.

87
00:06:41,720 --> 00:06:46,970
‫Ve diğer tüm bileşenler kök bileşene bağlı olduğundan, onunla birlikte hareket edeceklerdir.

88
00:06:46,970 --> 00:06:51,740
‫Bu nedenle, yerel bir ofset eklediğimizde, kök bileşeni hareket ettirdiğimizi ve diğer her şeyin onunla birlikte

89
00:06:51,740 --> 00:06:53,480
‫hareket ettiğini unutmamak önemlidir.

90
00:06:53,480 --> 00:07:00,290
‫Şimdi, yerel ofset ekle seçeneğinin üzerine gelirsek, dört giriş parametresinin de burada listelendiğini görürüz.

91
00:07:00,290 --> 00:07:06,140
‫Ve bir F vektörü olan ilki dışında, diğerlerinin varsayılan değerleri vardır.

92
00:07:06,140 --> 00:07:09,800
‫Bool B süpürmesine dikkat edin, eşittir yanlış diyor.

93
00:07:09,800 --> 00:07:14,840
‫Üçüncü ve dördüncü giriş parametreleri de bu varsayılan değerlere sahiptir.

94
00:07:14,840 --> 00:07:21,740
‫Bu, bu fonksiyonu çağırırsak ve son üç girdi parametresi için girdi girmezsek, varsayılan olarak bu değerlere

95
00:07:21,740 --> 00:07:24,290
‫ayarlanacakları anlamına gelir.

96
00:07:24,320 --> 00:07:31,220
‫Şimdi aktör CP'yi kapatacağım ve burada temel pond tick işlevinde, nasıl çalıştığını görmek için her karede aktör

97
00:07:31,220 --> 00:07:34,280
‫yerel ofseti ekle'yi çağırmak istiyorum.

98
00:07:34,400 --> 00:07:37,790
‫Şimdi ilk giriş parametresinin bir F vektörü olduğunu biliyoruz.

99
00:07:37,790 --> 00:07:39,470
‫Buna delta konumu deniyor.

100
00:07:39,470 --> 00:07:44,030
‫Bu, bu fonksiyonu her çağırdığımızda eklemek istediğimiz hareket miktarıdır.

101
00:07:44,030 --> 00:07:48,380
‫Bu yüzden delta konumu adında bir F vektörü oluşturacağım.

102
00:07:48,380 --> 00:07:51,800
‫Yani F vektör delta konumu.

103
00:07:51,980 --> 00:07:54,350
‫Şimdi bu vektörü sıfırlamak istiyorum.

104
00:07:54,350 --> 00:07:58,340
‫Başka bir deyişle, tüm sıfırlarla başlatıldığından emin olun.

105
00:07:58,430 --> 00:08:05,870
‫Şimdi sıfır vektör istiyorum, sıfır f geçebilirim, x, y ve z'nin hepsi sıfır f alacaktır.

106
00:08:05,870 --> 00:08:08,450
‫Yani bu benim amaçlarıma gayet iyi hizmet edecek.

107
00:08:08,480 --> 00:08:14,960
‫Şimdi Delta Konumu X'i alacağım ve bunu iki nokta F olarak değiştireceğim.

108
00:08:14,960 --> 00:08:20,540
‫Bu şekilde Y ve Z sıfıra, x ise ikiye ayarlanmış bir vektörümüz olur.

109
00:08:20,570 --> 00:08:27,770
‫Bu yüzden devam edeceğim ve Delta konumunu bir tür deneme olarak aktör yerel ofseti eklemeye geçireceğim.

110
00:08:27,800 --> 00:08:34,310
‫Şimdi add actor local offset'i çağırarak ve diğer üçü isteğe bağlı olduğu için sadece ilk giriş parametresini

111
00:08:34,310 --> 00:08:36,470
‫geçirerek kurtulabilirim.

112
00:08:36,500 --> 00:08:39,080
‫Bunu derleyeceğim ve ne olacağını göreceğim.

113
00:08:40,520 --> 00:08:43,880
‫Şimdi devam edip oynat tuşuna basarsak, birkaç şeye dikkat edin.

114
00:08:43,880 --> 00:08:46,100
‫Öncelikle, bakın, kule de hareket ediyor.

115
00:08:46,130 --> 00:08:52,730
‫Bunun nedeni, bunu temel piyon için tick işlevine koymamız ve bu bağların her ikisinin de temel piyondan miras almasıdır.

116
00:08:52,730 --> 00:08:56,060
‫Yani aslında tüm bu göletler hareket ediyordu.

117
00:08:56,060 --> 00:09:01,280
‫Ve ilginç olan şey, hepsinin kendi x ekseni yönlerinde hareket ediyor olması.

118
00:09:01,280 --> 00:09:04,640
‫Bu bakış açısından her şeyin aynı anda hareket ettiğini görebiliriz.

119
00:09:04,670 --> 00:09:10,940
‫Oynat seçeneğinin yanındaki açılır menüye tıklar ve simüle et seçeneğini seçersek, bu oyunu herhangi bir gölete sahip olmadan

120
00:09:10,940 --> 00:09:12,260
‫oynamamızı sağlar.

121
00:09:12,260 --> 00:09:14,810
‫Simüle Et'e tıklarsam, şuna bakın.

122
00:09:14,810 --> 00:09:18,580
‫Her havuz kendi x ekseni yönünde hareket etmektedir.

123
00:09:18,590 --> 00:09:22,070
‫Bu aslında oldukça garip ve oldukça havalı.

124
00:09:22,070 --> 00:09:25,760
‫Bu da bize reklam aktörünün yerel ofsetinin nasıl çalıştığını gösteriyor.

125
00:09:25,760 --> 00:09:28,220
‫Nesneleri kendi yerel yönlerinde hareket ettirir.

126
00:09:28,280 --> 00:09:34,220
‫Şimdi açılır menüye tıklayıp seçili görüntü alanını seçerek simülasyon modundan çıkabiliriz

127
00:09:34,220 --> 00:09:38,000
‫ve bu da normal oyun modunda oynamamızı sağlayacaktır.

128
00:09:38,030 --> 00:09:45,220
‫Pekala, bunu durduracağım ve tabana geri dönebiliriz -- ve bu deneysel kodu kaldırabiliriz.

129
00:09:45,230 --> 00:09:51,320
‫Devam edeceğim ve bunu tick fonksiyonundan sileceğim, böylece artık aktör yerel ofseti eklemenin nasıl çalıştığını

130
00:09:51,320 --> 00:09:52,700
‫biliyoruz.

131
00:09:52,880 --> 00:09:56,780
‫Şimdi Tank CP'ye geri dönelim ve burada TAŞIMA işlevine sahibiz.

132
00:09:56,780 --> 00:10:02,960
‫Bu fonksiyonun her bir karede çağrıldığını ve değerin bire eşit olduğunu biliyoruz.

133
00:10:03,080 --> 00:10:09,260
‫W tuşuna basıyorsak ve negatif bir ise, tuşa basıyorsak ve sıfır ise, her ikisine de basıyorsak veya

134
00:10:09,260 --> 00:10:10,970
‫hiçbirine basmıyorsak.

135
00:10:11,420 --> 00:10:16,340
‫Göreviniz için, aktör yerel ofseti ekleyerek tankı hareket ettireceksiniz.

136
00:10:16,340 --> 00:10:21,350
‫Yani MOV fonksiyonunda delta konumu adında bir F vektörü oluşturacaksınız.

137
00:10:21,350 --> 00:10:24,440
‫Şimdi X, Y ve z'yi sıfırladığınızdan emin olun.

138
00:10:24,560 --> 00:10:30,680
‫Bunu, çeşitli f vektör kurucularından birini kullanmak gibi herhangi bir yolla yapabilirsiniz.

139
00:10:30,680 --> 00:10:37,760
‫Şimdi tüm bileşenleri sıfırladıktan sonra, x değerini MOV işlevindeki float giriş parametresinin

140
00:10:37,760 --> 00:10:39,620
‫değerine ayarlayın.

141
00:10:39,620 --> 00:10:45,410
‫Bunu yaptıktan sonra, devam edin ve delta konumunu geçerek aktör ekle yerel ofsetini çağırın.

142
00:10:45,860 --> 00:10:48,140
‫Videoyu duraklatın ve bunu şimdi yapın.

143
00:10:51,220 --> 00:10:51,670
‫Tamam.

144
00:10:51,670 --> 00:10:54,610
‫Ben de tank CP dosyasına geri döndüm.

145
00:10:54,610 --> 00:11:00,370
‫Şimdi, artık bu EWI günlüğüne ihtiyacım yok, bu yüzden onu çıkaracağım ve Delta konumu adında

146
00:11:00,370 --> 00:11:02,440
‫bir F vektörü oluşturacağım.

147
00:11:02,440 --> 00:11:05,650
‫Şimdi F vektör kurucularından birini kullanabilirim.

148
00:11:05,650 --> 00:11:09,430
‫Tüm sıfırları içeren yeni bir vektörün nasıl oluşturulacağını zaten göstermiştim.

149
00:11:09,430 --> 00:11:15,700
‫Size başka bir yol göstereceğim, bu da bunu f vektörüyle, sıfır vektörüyle başlatmaktır.

150
00:11:16,270 --> 00:11:21,520
‫Ve bu tam olarak göründüğü gibidir, her bileşeni sıfır olan bir vektör.

151
00:11:21,550 --> 00:11:23,980
‫Bu sadece size alternatif bir yol göstermek içindir.

152
00:11:23,980 --> 00:11:25,510
‫Yani bir sıfır vektörümüz var.

153
00:11:25,510 --> 00:11:31,270
‫Şimdi X delta konumunu alacağım ve bunu değere eşit olarak ayarlayacağım.

154
00:11:31,570 --> 00:11:39,670
‫Ve son olarak delta konumunu geçerek aktör ekle yerel ofsetini çağırabilirim.

155
00:11:40,630 --> 00:11:47,260
‫Şimdi bunu derleyelim ve burada editörde, tankımı alacağım ve dünya X yönüne bakacak şekilde

156
00:11:47,260 --> 00:11:55,270
‫yönlendireceğim ve sonra oynat düğmesine basabilirim ve şimdi görüntü alanına tıklayabilirim.

157
00:11:55,270 --> 00:12:00,880
‫W tuşuna basarsam ileri gidiyorum ve tuşa basarsam geri gidiyorum.

158
00:12:00,880 --> 00:12:05,230
‫Eğer ikisine birden basarsam, birbirlerini iptal ediyorlar ve hiç hareket etmiyorum.

159
00:12:05,230 --> 00:12:08,140
‫Ve tabii ki, hiçbir şeye basmazsam, ben de hareket etmem.

160
00:12:08,140 --> 00:12:13,480
‫Artık tankımız için hareket var, ancak biraz yavaş, bu yüzden bazı ayarlamalar yapmamız gerekecek.

161
00:12:13,480 --> 00:12:18,400
‫Ayrıca tankımızla bu hareket mekaniğini ince ayarlamak hakkında konuşacağız.

162
00:12:18,640 --> 00:12:24,370
‫Özet olarak, ADD Actor, yerel ofset ve dünya uzayı ile yerel uzay arasındaki farkı

163
00:12:24,370 --> 00:12:25,300
‫öğrendik.

164
00:12:25,300 --> 00:12:29,800
‫Bir sonraki videoda, tankımızla bu hareket mekaniğini mükemmelleştirmeye devam edeceğiz.

165
00:12:30,010 --> 00:12:31,000
‫Yakında görüşürüz.

