UE4の勉強記録

UE4の勉強の記録です。個人用です。

12章4節Core/Math FQuatを使用したAPIによる回転

<前文>

f:id:kazuhironagai77:20181021214851p:plain

今回は、FQuatの使用方法について勉強します。それだけみたいです。

<本文>

<目的>

FQuatの使用方法について勉強します。

<方法>

Step.0

前回作成したプロジェクトをそのまま使用します。プロジェクト名はChapter12Part1です。

Step.1

f:id:kazuhironagai77:20181021215106p:plain

f:id:kazuhironagai77:20181021215117p:plain

以上です。

え、これだけですか?これだけではどうやったらいいか分からないので、取りあえず、前回のコードを使用して以下のように書き換えました。

f:id:kazuhironagai77:20181021215136p:plain

<結果>

f:id:kazuhironagai77:20181021215159p:plain

すっごい勢いで回っています。

f:id:kazuhironagai77:20181021215217p:plain

十倍を取って見ますが、

f:id:kazuhironagai77:20181021215236p:plain

それでもすごいスピードです。

f:id:kazuhironagai77:20181021215257p:plain

Worldの代わりにLocalに変えてみます。

f:id:kazuhironagai77:20181021215316p:plain

それでもすごい回転です。

前回は定速で回転していましたが、今回は確実に加速しています。何故なんでしょうか?

f:id:kazuhironagai77:20181021215335p:plain

AddActorLocalRotation関数は、FRotatorもパス出来るので、前回のコードをAddActorLocalRotation関数にパスしてみます。

f:id:kazuhironagai77:20181021215356p:plain

すっごい回転しました。加速して回転しました。全く同じ結果になりましたのでOKとします。

<考察>

特にはないです。教科書もHow it works…はついていませんでした。

<まとめ>

ここも今回はなしです。Quaternionについてでもまとめようかと思いましたが、このレシピとは関係ないですし。YouTubeWhat are quaternions, and how do you visualize them? A story of four dimensions.が何で3次元の事を説明するのに4次元が必要なのかと言う観点からQuaternionを説明していて面白かったです。

<おまけ>

流石にここまで勉強するとUnrealC++について何となく観えて来ました。山登りに例えると取りあえずは最初の山頂には成功した感じです。山頂からこのUnrealの山を見渡すと、山頂に繋がるルートはみな結構厳しい道のりなのに、一つだけかなり簡単なルートがあるような気がします。それはAActorクラスの派生クラスの作成から始め、UnrealC++のクラスの作りを簡単に理解して、次にUPROPERTY、UE_LOGなどを一通り教えて、CreateDefaultSubobject ()関数、(もしくはNewObject ()関数)を使って、自分で作成したクラス上でメンバー変数としてのUE4のオブジェクトを初期化する方法を習うルートです。この教科書はどのルートから登っていたかなと見直してみたら、UE4とVSのインストール方法からでした。UE4C++を学ぶ前提に

1.一応はC++を理解してる。

2.ブループリントを使ってUE4の基本的な操作は出来る。

は絶対に必要だと思っている私は、UE4とVSのインストール方法から教えるこの教科書の書き方は根本的に間違っていると思います。で、パラパラとページをめくっていくと、初めてクラスを作成する個所で、UObjectクラスから派生して作成していました。ウーン…。私見ですが、UObjectは確かに全てのUnrealのクラスの基礎のクラスですが、学習者にとってはAActorほど馴染みがあるクラスではないと思うんです。ここは学習者にとって一番馴染みがあるクラスを使用すべきです。一番馴染みがあるクラスだから学習者は、ちょっとした違いにも敏感に反応します。本質を見抜くのも馴染みのモノを例にした場合の方が速く的確に出来ます。と思いました。