スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UE4で箱を回転させる

フリーになってから初の更新です。

今回はこんな感じにきれいに箱を転がしました。




とはいっても数学をあまりきちんと理解できてない人間なので、こちらのブログのスクリプトを参考にさせてもらい作りました。

[Unity] Cubeを転がすスクリプト

Input関数


input_all.png

Input関数はこんな感じです。基本的には二次元的な入力しかないので縦横方向への入力をもらって、回転させたい角度を作り、回転中フラグや入力値、初期位置、初期回転を設定しています。

また、入力を受け取った際に回転中かどうかを確認しているisRotationはこんな感じ。

is_Rotate.png

入力がきちんとあって、なおかつ回転中でなければ転がり始めます。

RotationCubeイベント



Input関数で初期設定後に走らせるイベントです。

RotateCubeEvent.png

タイムラインで線形補間用のアルファ値を作って回転と移動をUpdateRotation関数の中で行っています。
今回は0.5秒間に0から1へと変わるように設定しています。

UpdateRotation関数


今回やりたいことのメインとなる部分の処理になります。

UpdateRotation.png

細かい説明はできないので省きます。いい感じにX、Y、Z軸方向への移動と回転を行ってます。

移動距離を算出する関数はこれらです。

distanceX.png
distanceY.png
distanceZ.png

GetDistanceXとYはVerticalかHorizontalの変数以外は同じ処理を行っているので外部からわたしてやるともっとスッキリすると思います。

sinとかcosとかはこちらになります。

GetSine.png
GetCosine.png

最後に終了処理

EndRotation.png

もうちょっときちんと数学を勉強しようと思いました。
スポンサーサイト

Androidでのプロジェクト設定

いつもAndroid向けのプロジェクトセッティングを忘れるので、ブログに残すことにします。
今回のやり方は、公式のドキュメントにもあるUE4をインストールした際についてくるCodeWorksを使ってSDKを用意するのではなく、VisualStudioをインストールした際についてくるSDKマネージャーを利用するやり方になります。

プロジェクト作成


設定は公式とかスクショにもあるとおりです。
ここでしてなかったり、既存のプロジェクトをスマホ対応させたい場合はこのあとの手順で設定変更をしましょう。
プロジェクト作成

プロジェクトが開いたら、ProjectSettingsを開きます。

プロジェクト作成時に上記の設定をしていない場合は、まずその設定をしましょう。
TargetHardWare.png

Platforms Android


次にPlatformsのAndroidを開きます。作成時はこんな感じです。
Platforms_Android_1.png

Configure Nowを押すとこんな感じに緑色になるので、設定をそれぞれ変更します。

AndroidPackageNameは
Company: 自分の名前とか所属してる会社名やらサークル名
Project: このプロジェクトの名前を設定しましょう

今回赤で丸をしていませんが2つ下にあるApplication Display Nameは空白だと、プロジェクトの名前がAndroidのホーム画面にでます。

Minimum SDK Version: サポートする最も低いAndroidのバージョン
Target SDK: ターゲットとするAndroidのバージョン
をそれぞれ指定します。当たり前ですが、SDKがないとビルドできないので、SDKマネージャーできちんと対応するAPIレベルのSDKを用意しましょう。

無駄に赤丸で囲んでいるOrientationはスマホの向きです。主に使うと思われるのは下記の2つだと思います。
Portrait: 縦向き
Landscape: 横向き

一応赤丸をつけている部分ですが、ビルドの際にサポートするハードの種類?だとおもいます。
スマホによってはarm64を入れているとビルドが通らなかったり通ったりで自分でもよく理解していません。誰かご教授お願いします。
Platforms_Android_2.png

これより下に行くとGooglePlayの対応やらのセッティングがありますが、なくてもビルドはできるので飛ばします。

Platforms Android SDK



SDKやNDK、jdkなどはここでパスを設定します。単純にブループリントで作ってビルドを通すだけならSDKとJDKだけでも問題ないです。C++つかうならNDK必要です。apache-antはJavaのビルドツール?らしいですが、どういう形でビルドする際に必要なのかはよくわかんなかったです。

NDK API Levelはandroid-対象とする最も低いAPIレベルを書いてやればOKです。
SDK API Levelは・・・よくわかんないです。とりあえず、初期値であるmatchndkにすると、NDK API Levelと同じレベルのSDKを自動で指定するようになります。最後に多少あがいたことを書いておくので、もし知ってる方は教えてくださると助かります。
Platform_AndroidSDK.png

というわけでこんな感じにプロジェクトを設定するとAndroid向けにビルドが通ります。

SDK API Levelの疑問


ちなみにSDK API Levelを色々いじるとこんな感じのエラーが出ます。
内容的にはtargetとしたidは存在しないので、android list targetsで対象のidを確認して指定し直してくれみたいな感じだと思います。
outputErrorLog.png

それでみると、こんな感じ。

3以上が存在しません。ちなみに、13まではビルドが普通に通り、14以降はだめでした。理由はよくわかんないので、知ってる人は教えてください。
android_list_target.png
プロフィール

shiratori00

Author:shiratori00
フリーでソフトウェア開発者してます

最新記事
最新コメント
月別アーカイブ
カテゴリ
Twitter on FC2
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。