【UE4】シーケンサーの通知を使ってイベントを1つ作ってみた
できること
シーケンサーのタイムラインからBPのイベントを呼び出す。
タイムラインでオブジェクトのサイズや位置を変更する。
レール
公式ドキュメントの中にある、Camera Rig Railを使ってます。
タイムライン
イベントの流れ
イベントレベルを呼び出す → イベントレベル上にあるお月見団子を動かす → 会話イベント
タイムラインが終了するとシーケンサーが終わり、カメラが元に戻ってしまうので、再生レートを最終的に0にして
イベント中はシーケンサーの上にいる状態にしています。
シーケンサーからレベルBPのイベントを呼び出す。
なんと! 4ステップでできちゃいます。
”+追加”からイベントトラックを追加する。
タイムラインにキーを打つ
キーを右クリックして、"Properties"の"EventName"を設定する。
レベルBPから"EventName"の関数を呼び出す。
シーケンサーを起動するBP
お月見団子
最初の位置と最後の見せ方だけを決めるだけでOK
間に不具合があった場合はそこにキーを打って調整すればいいです。
この考え方は、キャラクターのモーション作成で教わったので、応用の効果抜群です。
終わり
シーケンサーからBPを操り、オブジェクトを操る。
なにこれ楽しすぎる。
【UE4】会話ウィンドウを作ろう
できること
会話ウィンドウを作ることができる。
用意するもの
- 構造体
- データテーブル
構造体を次のように作成
- Command・・・・・・このテキストが呼ばれるイベントのタイトル
- CharacterName・・・・・・会話ウィンドウで表示されるキャラクターの名前
- Text・・・・・・会話ウィンドウで表示される会話内容
- Enter・・・・・・Trueになるまでが同じページ。 入力待ちをする。
- Call_Event_NO・・・・・・会話終了後に呼び出すイベントの番号
・・・あれ?なんでCall_Event_NO だけスネークケース(文字の区切りがアンダーバー)になってるんだろう。
Enterが言葉で説明しようとすると難しい。
データテーブル
構造体だとチンプンカンプンだと思われます。なので例
scene_01を呼び出すと次のような感じ
-------- -------- -------- -------- -------- --------
女の子
ママ~うさぎさんが (EnterがFalseなので次の行も同じ1ページにいれよう)
月にお団子を持ってっちゃった~ (EnterがTrueなのでプレイヤーの入力待ちをしよう)
<<プレイヤーの入力>>
(お、プレイヤーの入力が来たぞ!)
(scene01はこれで終わりなので、Call_Event_NOが1のイベントを呼び出そう)
-------- -------- -------- -------- -------- --------
文字を表示してる部分
(階層)
会話ウィンドウ(今回必要なイベント会話をページの形に成型して、まとめて”会話スクリーン”に渡す)
L 会話スクリーン(文字を1ページずつ表示する)
緑色の文字はキャラクター名
白色の文字が本文
下記は会話スクリーンのBP
簡単に言うと、こいつに本の1章をちぎって渡して合図を送ると1ページずつめくってくれる。
合図が来たけど、めくるページがないとないよと言ってくれる。
ページを1つ進めたとき、左の3つのイベントから呼び出されます。
キャラクター名と本文を画面に表示して、次のページがなかった場合フラグを立てる処理を行ってます。
そしてフラグが立った状態でイベントを呼び出すと"会話ウィンドウ"に終わったとおくる。
Call_Eventの先はこういう感じで呼び出しイベントを作ってます。
その先は同じ感じでレベルBPへ繋がってます。
終わり
色々なプロジェクト、色々な場所に流用する予定で作ってたのに、1つのレベルBPにベッタベタにこびりついてしまった・・・
イベントを動的に呼び出したいなぁ
データテーブルも自由に変更できる方法をまだしらないので、ここらへんも自由に変更できるようにしてみたい。
あとは、色々なフォント使ってみたいな。
ゲームのタスク管理はTrelloが便利!
な気がします。
スマホアプリから期限やラベルを付ける方法を見つけられてないので少し不満はあります。
あ、もう1つ不満が、[やることリスト]や[完了]の列をリストというのですが、こいつの削除の仕方がわからない。
リスト名右の[・・・]をクリックしてリスト操作を見ても一覧にない。
カードの場合はアーカイブにいれて削除できるみたい。
Helpによればアーカイブリストが削除したリストという扱いで完全に削除はできないみたい。名前を変更したり他で再利用してねということ。
しかし、カードの追加のしやすさ、動かしやすさはなかなか良い
【MODO】 お星さまの作り方
お星さま
思考回路
子供部屋にぶら下がってるような星を作りたい。
→ 見た感じ正十二面体かな。
→ 正十二面体から面を押し出して頂点くっつけるだけで作れそう。
→ 正十二面体の作り方あった。
→ MODOで面を独立させた状態でまとめて押し出すことができるので、とげの長さも楽に揃えれそう。
→ 動画を一回見て、二回目は止めながらなぞって一時間ぐらいかな
→ よし作ろう
正十二面体作成
次の動画を参考にして正十二面体を作ります。
同じようなやり方が分からなかったので、スライスして、外側部分削除して、面を張りなおしてやってました。
正十二面体
完成したのがこちら
手作業なので小さい面ができてたり、複数の線ができてたりする部分があるので、無駄にできた各頂点を近くの頂点とくっつけてできあがり。
あとは全部の面を一気に押し出して、飛び出た部分を絞ったら冒頭の画像のような形になります。
【UE4】 画面上で動かせるお星さま
できること
いつもの操作感で画面上で動くお星さまが作れる。
お星さまの動かし方
ざっくり説明すると
星の座標は、マウスの位置とプレイヤーの位置を足した座標から奥の壁に向かって線を引いて、壁とぶつかったところとなってます。
画面の中心から上下左右のマウスが画面のどこにいるかの値がとれるので[ConvertMouseLocationToWorldSpace]を使ってます。
マウスの値、上下で-1~1、左右で-1~1
この値に画面のサイズに近いぐらいの補正をかけてます。
画面のサイズによってはあまり動かないのでは? と思いましたが、カメラも動かすしこれぐらいで大丈夫かなという感じです。
以上がマウスで動かす場合です。
あとから導入したコントローラーはマウスカーソルの位置を更新してます。
※Y軸もX軸と同様
コントローラーでやると、画面を超えれる問題を見つけてしまったので良い子のみんなは制限をいれようね。
【UE4】 ステージ管理をやってみる。 パート2 (可変ドアver1.0)
できること
キー入力で楽に行先を変更しようというものです。
どこ〇もドアに近くなってます。
前回のドアがベースになってます。
こんな風にドアに行先を設定してるんだなぁという感じでおさらいしておくと読める!
前回の記事では、レベル上に配置して行先を設定したドアは、ゲーム内で行先が固定されたドアです。
前回の記事:[【UE4】 ステージ管理をやってみる。]
用意するもの
”StageSelect”と名前を付けて下記のようにドアを配置したレベル
データテーブル
今作はサブレベルによる難易度変更を行ったので、StageLebelNameは全部同じで、StageBranchが増えてます。
ドアの中身。
ステージデータの読み込み
ステージ変更 ←NEW
ドアを開ける
鍵の開閉 ←(今回は使いません)
--マクロ説明--
GetDataTableDataの流れ
"stageSelect"をデータテーブルに送ってデータを1行取ってきてドアの情報を作る。
SetWidgetDataの流れ
"stageLevel"と"stageTitle"をドアの文字に表示する。
--変数説明--
stageSelect ・・・ データテーブルの一番左の数字が入る。 データテーブルからデータを指定して取得するのに使用。
レベル上で行先の切り替えと入力に合わせて動く物
昨日ゲームパッドに力技で対応したので、そっち側の解説。
ゲームパッドが右に大きく倒れたか、左に大きく倒れたかでドアにセットするデータを変更しています。
終わり。