なんか便利だったこと

コンピュータ関連で、便利だったことのメモ

unity 中途半端だけど、Unreal Engineいじってみる! その7 (弾を出せるようにしたい)

2020-04-20 08:48:41 | unreal engine

いろいろと微妙なところはあるが、宙を飛べるようになったのでとりあえず弾を打てるようにしたい。

ボタンをおしたら、新たなアクターを生成できればいいはず。

といことで、

 

OGPイメージ

ブループリント通信プロジェクト

様々なブループリント通信方法を使って作成されたサンプル プロジェクト

 

 

を参考にしてみる。

と思ったが見てみたら、弾を出すところは元データに入ってるっぽいので違うのを見た方がよさそう。

 

OGPイメージ

ブループリントでアクタをスポーン、破棄する

このガイドではブループリントを使って、ボタンが押されたときにオブジェクトをスポーンし、再度ボタンが押されると破棄します。

 

 

 

…どうもドキュメントはいっぱいあるけど検索うまく引っかからんわ、ダウンロードした埋め込みとの対応が微妙やらでむずいな

 

 


unity 中途半端だけど、Unreal Engineいじってみる! その6 (今度こそ、縦移動を追加してみる)

2020-04-16 16:32:44 | unreal engine

前回のものをやって、なんとなく試してみたいことが出来てきたのでやってみる。

まず、Blue Print Editerのイベントグラフを確認すると、

 

インプットAxis MoveRight というのが有り、プロジェクトセッティングのエンジンのインプットを見ると、

 

軸マッピング に、MoveRight というのがある。

ということは、このプロジェクトセッティングで、軸マッピングに新たに上下移動用の軸マッピングを設定すれば良い?

ということで、軸マッピングに MoveUpを追加してみる。

多分これで準備できたので、Blue Print でイベントを追加をする。

まず右クリックで追加するイベントを選択(MoveUpで検索)そして、Add Movement Input につなげてみる(Z軸に入力を入れるようにする)。

 

で、実行してみるが、うまくいかず…
どうも、拘束条件が付いていそう…

もう1回 CharacterMovement コンポーネントの詳細を見直してみる。

下のプレナーモーブメントが怪しい?と思ったが現在の設定が、 Y-Z平面移動となっているようで、確かにそういう移動をするので違いそう…

 

そこで、このSide Scroller の Side Scroller Character の Walk Mode が問題なのでは?と気づき、下記のように上下ボタンを押したら移送モードをFlyにすればいいのではないか?ということをテストしてみる。

 

この状態で動作確認をしてみたところうまくできた!


unity 中途半端だけど、Unreal Engineいじってみる! その5 (縦移動を追加してみるはずだったのに…)

2020-04-15 11:25:04 | unreal engine

github怪しいけど、とりあえずもう少しプログラミングに近そうなところをやっておく。

現在の横スクロールサンプルでは、いわゆるプラットフォーマー(サイドビュージャンプアクション)用のプレーヤーになっているので、縦移動の追加を試してみる。

取り合えず、ジャンプ動作は残しておいて、まずは重力を消す。

1.プレイヤーキャラ?をマウスでクリックすると、詳細表示にプレイヤーアクター?の詳細が表示される。
プレイヤー選択


詳細表示


この状態では、SideScrollerCharacter(self) クラス?の詳細表示になっていて、今気にしたいこと以外も表示されているので、SideScrollerCharacter の要素の CharacterMovementComponent(継承) を選択して移動関連のみの詳細の表示にする。

 

以下、まずデフォルト状態でジャンプした後に、重力を0にしてみてからジャンプを試した動画
詳細で、キャラクタームーブメントの基本セッティングのGravity Scale を 2.0から0.0に変更しています。


これで、このキャラクターには基本的には重力が効かないはず。

 

さて実際の移動の追加を始める。

 

為に、blueprint のチュートリアルをやってみる。(適当にできるかとみてみたが何ともなんとも…)

 

よくわからず…

これを見る必要がありそう。

 

オンラインヘルプのチュートリアルでは最後にあたりをつけてみろなどが出ているが書いてあるのか?

 

OGPイメージ

ブループリント クイックスタートガイド

ブループリントを作成して使用する方法を説明します。

 

 

が、非常にわかりやすそうなのでやってみる。(すでに、上の方のブロックは消してしまっているが…)

オンラインヘルプのチュートリアルで火鉢を作ったのでそいつに、ジャンプのあたりをつけてみる!
↓の火鉢にあたりがないので、それにつける。

 

 

OGPイメージ

ブループリント クイックスタートガイド

ブループリントを作成して使用する方法を説明します。

 

 

の2-7までは、上の状態で終わっているのですっ飛ばしてそのあとからやる。(blueprintにはなってしまっているからなんかはまるかも…)

チュートリアルでは、detailのcomponetの追加を行うように書いてあるけど、ここは、上の感じでblueprintの編集を行うことにする。

 

リンクをクリックすると、blueprint editer が起動。下のような感じになる。

ここで、コリジョンのコンポーネントを追加する。

チュートリアルでは、BOXコリジョンだけど、この火鉢はあたりにするならカプセルのほうが形合ってそうなので、capsuleを追加する。

すると、↓みたいになる。

と、おもったが、カプセルの半径はカプセルの高さより大きくできないなどの制約が面倒なので、やっぱり球のあたりを使用することにする。(いったんこの当りを消して付け直す)

そして、zを50に移動して、拡大縮小を3にする。
すると、↓のような感じでまぁまぁなあたりに見える。

そして、現状に一番近い、

 

OGPイメージ

ブループリント クイックスタートガイド

ブループリントを作成して使用する方法を説明します。

の4-3を参考にして、イベントグラフを確認してみる

こんな感じ。

BOXにイベント追加となっているところを、Sphereに追加になる。

まずは、コリジョンの On Compornent Overlap Begin イベントを追加して、そのイベントの Other Actor 出力に==オブジェクトを追加するところ

 

さらに、キャラクタ―(Pawn)に打ち上げのメソッド呼び出しを追加するところ。

 

これで、球コリジョンに他のアクター(ゲームのPawn(自キャラ))が重なったら、そのキャラクターを打ち上げる。というイベントができたことになるはず。

そこで動作確認したところ、いい当たり判定にしてしまったので打ち上げのあたりに当たらずに、火鉢に当たってしまうため、いったん球コリジョンを大きくしてから動作確認したら無事に成功!

空に飛んでった。


unity 中途半端だけど、Unreal Engineいじってみる! その4

2020-04-13 08:55:04 | unreal engine
さて、サンプルの操作ボタンで、ジャンプボタンがスペースキーとカーソル上とwになっており、横シューにしていくのには向いていないのでとりあえず変更をしてみる。

ちょっとググってみた感じだかヘルプ高でチラ見した感じでは、プロジェクトの設定で変更をするっぽいので探してみる。



を押すと、下のメニューが表示されて、メニューから選択すると、プロジェクトセッティングダイアログが出てくる。



プロジェクトセッティングダイアログは下のような感じ


左のペインの「エンジン」の中にインプットというのがありこれを選択すると、それっぽいのが出てくる。
ついでに、bindings の アクションマッピング・軸マッピングを開くと下のような感じで、キー割り当てを決定できそう。


予想では、ここで作成したマッピングをBP側で使える?
ヘルプボタンがあるので、ヘルプを見てみる。

大体、予想と違いはないんではないかと予想して、とりあえずジャンプのWと↑を消すことにする。

そして、 git の push をしようとしたがうまくいかず。
これ、今のところローカルがあるだけだと判明

HELPを見てみる。

結局よくわからない…

とりあえず、TotoiseGit で、push を選択して、 Arbitary URL に、 github の自分のURLを入れることで、 push ができた。
その後、github の default を変更することで、トップに表示されるSourceが、pushしたものに変わってうまくいった?


と、思ったら、ローカルのデータが保存に失敗してしまった。
しょうがないので、UE4 Editerを終了して、エクスプローラーで該当ファイルを削除。
TortoiseGitで revert することで元に戻った。
おそらく、git pull でmergeをしてしまった?かでバイナリが壊れたきがする。

github の repository 作成などから、やり直した方がいいかもしれない。

とりあえず、
リポジトリ




unity 中途半端だけど、Unreal Engineいじってみる! その3

2020-04-12 11:57:01 | unreal engine
git でソースコントロールができるようなので、github にリポジトリを作成して設定をしてみた。



ここのソースコントロールでgithub に作ったURLをセットできる。
なお、Windows用のgitはインストール済みだったので、UE4側で見つけてくれるみたい?



unity 中途半端だけど、Unreal Engineいじってみる! その2

2020-04-08 14:42:53 | unreal engine
https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=community&rel=16
と、
https://www.unrealengine.com/ja/get-now/agnostic

でいじってみるよ

取り合えずUE4.23.4らしい

EPIC LAUNCHER から、起動すると次のような感じ






で、GAMEを選んでみると、作成するジャンルを選べる。



まぁ、横スクロールにしとく

次は細かいプロジェクト設定がある。


とりあえず下のようなセッティングにしとく。


せっかくなので blue print はいじってみたいので、上のような初期設定で起動してみたら、

こんな感じに

ツールのヘルプが出るの素直に見ていく。
とりあえず、メモ
・レベルエディタで視点移動は、右クリックしながらWASD
・CTRL+ALTでツールのボタンをマウスオーバーすると説明が出る!



軽くチュートリアルを色々見てみたが、まだまだ難しい。
とりあえず次はブループリントかな。

unity 中途半端だけど、Unreal Engineいじってみる!

2020-04-08 14:42:53 | unreal engine
https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=community&rel=16
と、
https://www.unrealengine.com/ja/get-now/agnostic

でいじってみるよ

ブロックのPrefabが最初っから表示されちゃう?

2013-05-06 10:46:22 | Unity
Prefabのブロックの表示の問題については、



Block Prefab を ハイアラーキーで選択した時に出る↑の赤線の部分のチェックボックスのチェックをオフると、表示が消えました。

これは何なのか?

アクティブプロパティ

ということらしい。

なので、ステージの構成を行ってみるか・・・

EmptyのGameObjectに、ゲーム管理のスクリプトを組み合わせればいいと見た。
そんな感じで、いってみよう。

GameObject → Create Empty で スクリプトをおくための空ゲームオブジェクトを作成して、
GameControllerと命名。

そのオブジェクトに下のような、JSを関連付け。
Prefabの Active チェックはOFFにしておいて、以下のスクリプトで、設置した際にActiveにするようにします。


#pragma strict
var holizontal_block_nums :int = 10;
var vertical_block_nums : int = 5;
var block_bottom_position_x : float = -50;
var block_bottom_position_y :float = 100;
var Block:GameObject;

function Start () {
block_bottom_position_x += Block.transform.localScale.x/2;
for(var y:int =0;y<vertical_block_nums;y++){
for(var x:int =0;x<holizontal_block_nums;x++){
var block:GameObject = Instantiate(Block, transform.up * (y * Block.transform.localScale.y + block_bottom_position_y) + transform.right * (x * Block.transform.localScale.x + block_bottom_position_x), Quaternion.identity);
block.SetActive(true);
}
}
}

function Update () {

}</em>


すると、


こんな感じになった!

これで、ブロックの衝突のイベント処理がかければ、ゲームっぽくなりそう。

ブロック崩しの続きにいくか

2013-05-05 22:22:00 | Unity
なんとなく、判った気になったので、 ゲーム作成進めることにしてみる。

とりあえずは、 古風なブロック崩しとして、ステージの違いはほとんどないものにしよう。
そのために、 Prefab で Block を作って、ループでステージを作ることにする。

壁でないブロックとボールの衝突の処理わからんけど、まぁ、それはそれで・・

で、BlockのPrefab 作成を行ってみた。

Prefab 自体は、 Assets→Create→Prefab で作れる。
で、作ると、Assetsに追加される

とりあえず、 Block にリネームしてみた。
で、GameObjectでCubeを作成する。

こいつは、ハイアラーキーの方に追加される。


で、 AssetsのBlockを、さっき作った、ハイアラーキーにある、CubeにD&Dすれば良いんだろうなーっとやってみるも失敗・・・。

逆に、ハイアラーキーのCubeをAssetsのBlockにD&Dで、成功!


で、ゲームをうごかしてみると、 Block Prefab の Cubeが実体化されていて、ボールとのあたりも出ている・・・
Prefab はあくまで、プロトタイプで、ScriptでInstantiate しないと、何も存在しないのかと思ったらそうでもない模様・・・。

やはり、ちょこちょこはまるなぁ。







間違ってるかもしれないけど、構成を決めた!

2013-05-05 17:35:42 | Unity
とりあえず、 Index 0 のシーン(アプリ起動時に読み込まれるシーンらしい)を、コントローラーとしておいて、

各ステージのシーンを LoadLevelAdditive ? で読み込む形にしよう。
おそらく、こうするのがなじんだ形になりそうな気がする。

後は、ゲーム中常に存在するパラメータを シーン0におくのか?それとも、シーン0から新たに読み込まれたシーンにコピーするのか?が悩みどころ。

一旦は、コピーかなー
コピーにしておけば、ステージ単位での作成が可能になるのがよさそう。
問題は、同じスクリプトを共有するのってどういうことになるんだろう?まぁAssetからつなげるんだから問題ないのかも・・・

まぁ、結構気になっていた部分は決まったかな。