【UE4】シーケンサーの通知を使ってイベントを1つ作ってみた

できること

 シーケンサーのタイムラインからBPのイベントを呼び出す。
 タイムラインでオブジェクトのサイズや位置を変更する。
 
 

レール

公式ドキュメントの中にある、Camera Rig Railを使ってます。

 

f:id:NazzTea:20171101220305p:plain

 

タイムライン

 イベントの流れ
  イベントレベルを呼び出す → イベントレベル上にあるお月見団子を動かす → 会話イベント
 
 タイムラインが終了するとシーケンサーが終わり、カメラが元に戻ってしまうので、再生レートを最終的に0にして
 イベント中はシーケンサーの上にいる状態にしています。

f:id:NazzTea:20171101220407p:plain

 

シーケンサーからレベルBPのイベントを呼び出す。

 なんと! 4ステップでできちゃいます。
  ”+追加”からイベントトラックを追加する。
  タイムラインにキーを打つ
  キーを右クリックして、"Properties"の"EventName"を設定する。
  レベルBPから"EventName"の関数を呼び出す。

f:id:NazzTea:20171101220516p:plain

f:id:NazzTea:20171101220549p:plain

シーケンサーを起動するBP

f:id:NazzTea:20171101220654p:plain

お月見団子

最初の位置と最後の見せ方だけを決めるだけでOK
間に不具合があった場合はそこにキーを打って調整すればいいです。
この考え方は、キャラクターのモーション作成で教わったので、応用の効果抜群です。

f:id:NazzTea:20171101220810p:plain

終わり

シーケンサーからBPを操り、オブジェクトを操る。
なにこれ楽しすぎる。

【UE4】会話ウィンドウを作ろう

できること

 会話ウィンドウを作ることができる。

f:id:NazzTea:20171027074334p:plain

 

用意するもの

  • 構造体
  • データテーブル

構造体を次のように作成

  • Command・・・・・・このテキストが呼ばれるイベントのタイトル
  • CharacterName・・・・・・会話ウィンドウで表示されるキャラクターの名前
  • Text・・・・・・会話ウィンドウで表示される会話内容
  • Enter・・・・・・Trueになるまでが同じページ。 入力待ちをする。
  • Call_Event_NO・・・・・・会話終了後に呼び出すイベントの番号
 
・・・あれ?なんでCall_Event_NO だけスネークケース(文字の区切りがアンダーバー)になってるんだろう。
Enterが言葉で説明しようとすると難しい。

f:id:NazzTea:20171027074724p:plain

 

データテーブル

構造体だとチンプンカンプンだと思われます。なので例
scene_01を呼び出すと次のような感じ
 
 -------- -------- -------- -------- -------- --------
女の子
 ママ~うさぎさんが    (EnterがFalseなので次の行も同じ1ページにいれよう)
 月にお団子を持ってっちゃった~ (EnterがTrueなのでプレイヤーの入力待ちをしよう)
 <<プレイヤーの入力>>
 (お、プレイヤーの入力が来たぞ!)
 (scene01はこれで終わりなので、Call_Event_NOが1のイベントを呼び出そう)
 -------- -------- -------- -------- -------- --------

f:id:NazzTea:20171027074926p:plain

 

文字を表示してる部分

(階層)
 会話ウィンドウ(今回必要なイベント会話をページの形に成型して、まとめて”会話スクリーン”に渡す)
   L 会話スクリーン(文字を1ページずつ表示する)
 
 緑色の文字はキャラクター名
 白色の文字が本文

f:id:NazzTea:20171027075001p:plain

 

下記は会話スクリーンのBP
簡単に言うと、こいつに本の1章をちぎって渡して合図を送ると1ページずつめくってくれる。
合図が来たけど、めくるページがないとないよと言ってくれる。
 
ページを1つ進めたとき、左の3つのイベントから呼び出されます。
キャラクター名と本文を画面に表示して、次のページがなかった場合フラグを立てる処理を行ってます。
そしてフラグが立った状態でイベントを呼び出すと"会話ウィンドウ"に終わったとおくる。

f:id:NazzTea:20171027075045p:plain

 
Call_Eventの先はこういう感じで呼び出しイベントを作ってます。
その先は同じ感じでレベルBPへ繋がってます。

f:id:NazzTea:20171027080055p:plain

 

終わり

色々なプロジェクト、色々な場所に流用する予定で作ってたのに、1つのレベルBPにベッタベタにこびりついてしまった・・・
イベントを動的に呼び出したいなぁ
データテーブルも自由に変更できる方法をまだしらないので、ここらへんも自由に変更できるようにしてみたい。
 あとは、色々なフォント使ってみたいな。
 

ゲームのタスク管理はTrelloが便利!

な気がします。
スマホアプリから期限やラベルを付ける方法を見つけられてないので少し不満はあります。
あ、もう1つ不満が、[やることリスト]や[完了]の列をリストというのですが、こいつの削除の仕方がわからない。
リスト名右の[・・・]をクリックしてリスト操作を見ても一覧にない。
カードの場合はアーカイブにいれて削除できるみたい。
 
Helpによればアーカイブリストが削除したリストという扱いで完全に削除はできないみたい。名前を変更したり他で再利用してねということ。
 
しかし、カードの追加のしやすさ、動かしやすさはなかなか良い
 

f:id:NazzTea:20171006082349p:plain

 

Trello導入までの経歴

仕様書とかタスク管理
 Excel→(Redmine &ChatWork)→Evernote→Trello
一つのPCで、家だけで開発してたときは、Excelで満足してた。

グループ開発をやったときに、Excelでのタスク管理が面倒になりレッドマインとチャットワークを使う。
     ↓
複数のプロジェクトになり、仕様書など書きなぐるものとしてevernoteにスペース作る。
     ↓
色々な端末でレッドマインを開くのが面倒になり、evernoteにタスクも入れてしまう。
     ↓
個人開発にもどり、スマホでも簡単にタスク管理をやって、もっと視覚的に分かりやすくしたくなり、Trelloを導入。

【MODO】 お星さまの作り方

お星さま

f:id:NazzTea:20171006082046p:plain

 
思考回路
 子供部屋にぶら下がってるような星を作りたい。
→ 見た感じ正十二面体かな。
→ 正十二面体から面を押し出して頂点くっつけるだけで作れそう。
→ 正十二面体の作り方あった。
→ MODOで面を独立させた状態でまとめて押し出すことができるので、とげの長さも楽に揃えれそう。
→ 動画を一回見て、二回目は止めながらなぞって一時間ぐらいかな
→ よし作ろう
 

正十二面体作成

次の動画を参考にして正十二面体を作ります。
同じようなやり方が分からなかったので、スライスして、外側部分削除して、面を張りなおしてやってました。

f:id:NazzTea:20171006082138p:plain

 

正十二面体

完成したのがこちら
手作業なので小さい面ができてたり、複数の線ができてたりする部分があるので、無駄にできた各頂点を近くの頂点とくっつけてできあがり。

f:id:NazzTea:20171006082151p:plain

 
 
あとは全部の面を一気に押し出して、飛び出た部分を絞ったら冒頭の画像のような形になります。

【UE4】 画面上で動かせるお星さま

できること

いつもの操作感で画面上で動くお星さまが作れる。

f:id:NazzTea:20171006080208p:plain

 

お星さまの動かし方

ざっくり説明すると
星の座標は、マウスの位置とプレイヤーの位置を足した座標から奥の壁に向かって線を引いて、壁とぶつかったところとなってます。
 
画面の中心から上下左右のマウスが画面のどこにいるかの値がとれるので[ConvertMouseLocationToWorldSpace]を使ってます。
マウスの値、上下で-1~1、左右で-1~1
この値に画面のサイズに近いぐらいの補正をかけてます。
画面のサイズによってはあまり動かないのでは? と思いましたが、カメラも動かすしこれぐらいで大丈夫かなという感じです。

f:id:NazzTea:20171006074905p:plain

 

f:id:NazzTea:20171006074923p:plain

 

以上がマウスで動かす場合です。
あとから導入したコントローラーはマウスカーソルの位置を更新してます。
※Y軸もX軸と同様
 

f:id:NazzTea:20171006074946p:plain

 

コントローラーでやると、画面を超えれる問題を見つけてしまったので良い子のみんなは制限をいれようね。

【UE4】 ステージ管理をやってみる。 パート2 (可変ドアver1.0)

できること

キー入力で楽に行先を変更しようというものです。
どこ〇もドアに近くなってます。
 
前回のドアがベースになってます。
こんな風にドアに行先を設定してるんだなぁという感じでおさらいしておくと読める!
前回の記事では、レベル上に配置して行先を設定したドアは、ゲーム内で行先が固定されたドアです。
 
 
 
用意するもの
”StageSelect”と名前を付けて下記のようにドアを配置したレベル

f:id:NazzTea:20170929075546p:plain

f:id:NazzTea:20170929075602p:plain

データテーブル

今作はサブレベルによる難易度変更を行ったので、StageLebelNameは全部同じで、StageBranchが増えてます。

f:id:NazzTea:20170929075619p:plain

 

ドアの中身。

 ステージデータの読み込み
 ステージ変更 ←NEW
 ドアを開ける
 鍵の開閉 ←(今回は使いません)

f:id:NazzTea:20170929075628p:plain

f:id:NazzTea:20170929075645p:plain

--マクロ説明--
 GetDataTableDataの流れ
   "stageSelect"をデータテーブルに送ってデータを1行取ってきてドアの情報を作る。
 SetWidgetDataの流れ
   "stageLevel"と"stageTitle"をドアの文字に表示する。
--変数説明--
stageSelect ・・・ データテーブルの一番左の数字が入る。 データテーブルからデータを指定して取得するのに使用。
 
 
 

 レベル上で行先の切り替えと入力に合わせて動く物

 
昨日ゲームパッドに力技で対応したので、そっち側の解説。
ゲームパッドが右に大きく倒れたか、左に大きく倒れたかでドアにセットするデータを変更しています。
 

f:id:NazzTea:20170929075806p:plain

f:id:NazzTea:20170929075826p:plain

f:id:NazzTea:20170929075840p:plain

 
 終わり。
 

第8回ぷちコンで「秋の夢うさぎ」がノミネートされました!

ノミネートされた日は、嬉しくてなかなか眠れませんでした!

ノミネート作品「秋の夢うさぎ

UNREAL FEST EAST 2017で展示されます!

ぜひプレイしてみてください。

 

制作の感想や技術のお話の前に。

ノミネート作品に選んでくださった方々、学びの場を作ってくださった方々、協賛企業の方々に感謝を申し上げます。

勉強会やゲームジャムなどで教わったことを組み合わせて出来上がった作品です。

うさぎやお月見団子、臼、杵、お星さまはMODOで制作されています。MODOと六水条さんの勉強会あったので作ることができました。

ありがとうございます。

続きを読む