【UE4】アンドロイド(Gear VR)の開発環境を作る

----------アンドロイドの開発環境を作る----------
 ・Galaxy S7 edge をデベロッパーモードにする
  設定→端末情報→ソフトウェア情報→ビルド番号
  ビルド番号を7タップ
  USBデバッグをオンにする。
 
 1.メーカーごとのUSBドライバをインストール
 
 2.AndroidSDKインストールする
  CodeWorksforAndroid-1R6u1-windows.exeを実行する。
  置いてある場所(DドライブにインポートしたUE_4.19の場合)
  D:\Epic Games\UE_4.19\Engine\Extras\AndroidWorks\Win64
  
  手順:Android向けゲーム開発に必要なセットアップ:http://api.unrealengine.com/latest/JPN/Platforms/Android/GettingStarted/1/index.html
  
  ビルドしようとしたらAPI23以上を求められるようになってたのでAPI23もインストールに加えておいてください。

f:id:NazzTea:20180425082219p:plain

 
  1. PCとAndroid端末を接続。
  USBケーブルを使用して、PCとAndroid端末を接続する。
  コマンドプロンプトから「adb devices」と入力する。
  認識されているAndroid端末がリストアップされるが、何も表示されない場合はADBドライバをインストールする必要がある
  (ここで表示される端末IDはあとでOSIG Fileを取得するのに使います)
  
     4.antの代わりにgraleを有効にする。
   このままパッケージ化したら下記のような問題が発生した。
(問題)何が起きたかよくわからない。
UATHelper: パッケージ化 (Android (ETC2)): ERROR: cmd.exe failed with args /c "D:・・・・・・\gradle\rungradle.bat" :app:assembleDebug
(解決手順)
 1. これを実行 NVPACK/android-sdk-windows/tools/android.bat
 2. "Deselect All"をクリックしてチェックを全部外す
 3. Extras/Android Support Repositoryにチェックをいれて、Install packeges
 

f:id:NazzTea:20180425082237p:plain

 
----------Android用パッケージを作成-----------------
 
UE4Android用パッケージを作成する。
  1. AndroidプラットフォームのAPKPackagingを有効にする。
  2. Accept SDK Licenseボタンが押せる状態の場合、押して承認する。
  3. Android SDKを下記の感じで設定する。

    f:id:NazzTea:20180425082250p:plain

 4.ここでちょっとパッケージ化してみるといいかもしれません。
 
 
----------Gear VR開発用パッケージ--------
 
<VR開発>
 1.Oculus署名ファイル(osig)ジェネレーターからOSIG Fileを取得する
  デバイスIDのところにコマンドプロンプトから「adb devices」で取得したIDをいれる。

f:id:NazzTea:20180425082337p:plain

 2.OSIG FileをUE4の Engine/Build/Android/Java に「assets」フォルダを作成して入れる。 
 3.あとは「VRプロジェクトの設定を行う」と「Gear VR プロジェクトのパッケージング化とデプロイ方法
」をなぞる
   ※[Android SDK]の部分だけは上記での設定のままで
(参考)
 UE4でGear VR開発してみる 準備編:http://pafuhana1213.hatenablog.com/entry/2015/04/25/223352
 

カレンダーとシールで習慣付け(今年の実践感想付き)

背景

現場が変わって、家で開発をしてから会社に行く生活になったんだけど、朝が寒すぎて布団から出れず、開発時間が大幅に減った。
朝、またカレンダーとシールでの習慣づけを復活させて、近くのコンビニに走って行って温かい飲み物でも買おうかな。
 

カレンダーとシールで習慣付け

準備
 ・カレンダー
   →卓上でも、印刷でもOK
 ・好きなシール
   →例えばこんなの(https://amzn.to/2Fr8vTo
 ・ちょっと値段が張るシール
   →例えばこんなの(https://amzn.to/33rcc3u
ルール
 ・習慣にしたいちょっとした良いことを決めるてそれを毎日やる。
 ・できた日は好きなシールを貼る
 ・サボる日は前日までに決め、高いシールを貼る。
  当日に「今日はサボろうはダメ」!
 ・完璧は目指さない、2割ぐらいできなくても気にせず続ける。
手順
 1.習慣付けしたいことを決める
  (早起き、ラジオ体操、寝る前に5分読書、日記、・・・・・・)
 2.なんでもいいのでシールが張れるカレンダーを用意
 3.好きなシールと値段の高いシールを準備 ←重要
   好きなシール・・・できた時に貼る
   値段の高いシール・・・サボると決めた日に貼る
  (飲み会の翌日とか、新作ゲームの発売日とその翌日など・・・・・・)
 4.シールを張ったときに「シールを張ったぞ」と声にする
 

実践感想

1~2ヶ月ぐらいやるとその先シールを張らなくても大体続きます。
そうなったら、新しいことを追加しましょう。
1月の中頃から"6時に起きて机に座る事"をし始めて、2月半ば頃からは"5時半に起きて開発を2時間やる”にシフトして、4月頃にシールが尽きてからシールは張ってないのですが、11月末まで5時半起きからの開発生活が続きました。
東京に引っ越しして数ヶ月、寒くなって来たので布団から出られなくなってきました。
環境が変わると習慣は無くなってしまう場合があるので、気が付いたらまた再開すればいいと思います。
 
1月のカレンダー
 21~23日はGGJがあったので連続で空いてます。

f:id:NazzTea:20171210225351j:plain

2月のカレンダーf:id:NazzTea:20171210225358j:plain

【UE4】うさぎのお餅リレー

できること

  物をバウンドさせて運べる。

うさぎの役割

 ・お餅をバウンドさせてパスする。
 
うさぎの頭を覆う外側の赤色の円がアニメーションのトリガー
うさぎの耳のところにある黄色の円がバウンドのトリガー

f:id:NazzTea:20171110235701p:plain

 
アニメーションのトリガーは、お餅が重なったら発動する仕組みになっています。
 

f:id:NazzTea:20171110235830p:plain

 
バウンドのトリガーは、ぶつかったお団子にバウンドの値を設定しています。
その後、少し時間を空けて次に来るお餅に対応できるようにします。
(なので・・・出したお餅とオレンジ色のお餅のような物が被ると片方は落ちる)
まぁ、なぜこうしてるかというと、多段ヒットする場合を防ぐためにいれてみました。
うさぎの役割としてお餅をバウンドさせてます。
今思うとお餅にうさぎの頭にあたるとバウンドするという役割を持たせておけばお餅が被ったときに落ちる問題を回避できたなぁ

f:id:NazzTea:20171111000345p:plain

f:id:NazzTea:20171111000409p:plain

お餅の仕組み

お餅の構造
 お餅(親)
       Lーー(子)お月見団子にのせるお餅
       Lーー(子) トレース用のお餅
 

f:id:NazzTea:20171111000503p:plain

f:id:NazzTea:20171111000515p:plain

  終わり

 
これでオブジェクトを跳ねさせて運ぶギミックが簡単に作れるようになった。
VRでなんか面白い感じに使えないかなとちょっと考えてる。
 
 
 
 

【Amazon】【50%OFF以上】IT/専門書フェア

11月16日までということで! 

気になった本、欲しかった本は!

今のうちに買う!!

 

合計 12冊 17,137円

 買いすぎた・・・良ければリンクを叩いて購入してくれると嬉しいです。

欲を言うとFireタブレットHD8か10が欲しいです。

欲しいものリスト

プログラミング

プログラマーなら必ず読むべきとよく言われている「Code Complete」

プログラマー歴3年の私は今日、初めてこの本を手に取ります。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

今、2冊の本をダウンロード中。

私のオススメ本としては、Kindle版がなくて、今回の半額対象ではないんですが「リーダブルコード」がおすすめです。

エンジニア歴1年目の時にこの本に出会って感動しました。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

ゲーム

つい最近出たばかりの、マテリアルデザイン入門が半額で手に入るチャンス!

そして、3Dゲームをおもしろくする技術が結構よかったので、2Dゲームの方も買ってみました。

3Dゲームをおもしろくする技術の本も載せておきます。

UnrealEngine4マテリアルデザイン入門 第2版

UnrealEngine4マテリアルデザイン入門 第2版

 

 

 イラスト

 数年をかけて、なんとなくの感覚と絵師の放送で見たという使い方しかしてなかったので、これを読んでみる。

さらなる使いやすさを追求。

 

 3Dモデリング

ZBrushの本、前々から欲しかったんです。

持ってるツールがZBrushCoreなのですがたぶん大丈夫だと思ってます。

ZBrushCore超入門講座(HOPBOX福井信明)の動画をyoutubeでよく見てました。

ただしばらく触ってないので、また始めようかな。

そして、最近触りはじめてBlender

標準テクニック本のMetasequoia版を読んでそちらで作ってたので、そこそこ信頼してます。 たぶん使えるようになる。

ZBrushフィギュア制作の教科書

ZBrushフィギュア制作の教科書

 VR

いろいろな勉強会でもVRの情報を集めたり、個人開発もしてるので、情報収集。 

 

チーム開発

チーム開発での失敗を経験したので、プロマネ本が気になりました。

そして右下の子のアホ毛の子、なれるSEの立華に見えた。

プロジェクトを運用するためのノウハウ集とかプロジェクトマネージャーではない人にもお勧めです。

と、評価がよかったので買ってみました。

 

 

 英語

英語で話しできないとやべぇとなってるので購入。

しゃべれなくても読めればいいんだよというエンジニアの方には、"エンジリッシュ"がおすすめです。

 

「海外ドラマはたった350の単語でできている」:http://amzn.to/2hCXtvw

「知っておきたい 男と女の英会話」:http://amzn.to/2hAzwVz

 

 

 

【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を導入。