私用UnrealEngine忘備録

UnrealEngine4の勉強をしている私が忘備録として残しているブログ。

なんてこともなく1日が過ぎる

過ぎません。

まだ昼です。

 

ただ、何もしていないという訳ではないのに

無駄に1日が過ぎていくような感じがします。

 

なんかこう・・・

実りがある生活っていうんですか?

「うっひょー!今日たーのしいー!」みたいな。

そんなアホみたいな生活がしてみたいです。

 

最近はUnrealだとかネットワークの勉強に追われています。

これも楽しいし、充実しているのですが・・・

 

たまには遊びたいなぁ・・・なんて思ってます。

 

いや、遊びには行けるんですけど。

遊びに行くとプログラムとか疎かになるしぃ。

とかいう変な葛藤をしています。

 

いっそ両方やってしまおうとも思ったのですが、

「みんなでプログラミングして遊ぼうぜぇ」とか言ったら

一部の変な人たち以外は「うわぁ」みたいな顔するのが

見えますので止めときました。

 

・・・今日言ってみようかなぁ。

後で言った時の同期の反応を追記に書いておきます。

 

追記

何の反応もなくスルーされました。むなしい。

 

/* 書いてて思ったこと */

目標500文字はどこにいってしまったのか

UnrealEngine4でMMDを踊らせてみる

暑くなってきましたね。

日差しが眩しくて目が痛いです。

 

もうすぐ夏なんだなとヒシヒシ感じます。

 

(日焼けで肌がヒリヒリします。)

 

はい。

 

さて今回はUnrealEngine4でMMDを動かしてみました。

こんなこと学生の間しかできないよね。

 

え?そんなことない?

 

・・・そうですか。

 

まぁ動かしたと言ってもダンスのモーションデータを

使って踊らせているだけなんですけどね。

 

mmdのデータ( .pmx )とモーションデータ( .vmd )を

UnrealEngineで読み込ませるための手順を書いておきます。

 

あくまで自分用のメモとして。

 

※この方のブログを参考にさせていただきました。

UE4でMMDのモーションを使ってみる - ぼっちプログラマのメモ

 

※先に言っておきますが参考にならない可能性があります。

 

まず、UnrealEngineを起動する前に準備しておくものがあります。

MMD4Mecanim

 UnrealEngineでは、

 通常のMMDの形式は読み込めないので、

 この中に入っている pmx2fbx.exe というものを使用して

 UnrealEngineが読み込める形式に変更します。

 こちらでダウンロードできます。 Stereoarts Homepage

 

・なにかしらのMMDデータとモーションデータ

 私はにがもん式魔理沙ハレ晴れユカイのデータを使用します。

 配布先

  にがもん式魔理沙 

    【MMD】魔理沙モデル公開しました ‐ ニコニコ動画:GINZA

  ハレ晴れユカイ

    【MMD】ハレ晴レユカイモーション配布 ‐ ニコニコ動画:GINZA

 

ダウンロードできたでしょうか?

いろいろ不都合などがあった方は

先ほど紹介したブログの方法でやってください。

(そちらはUnityちゃんでやってます。)

 

こちらはこちらでやっていきましょう。

f:id:mokomokohudo:20150508185116p:plain

 

よし、それではまずMMDのデータを確認しましょう。

いろんな形式のファイルが入っていると思います。

f:id:mokomokohudo:20150508185706p:plain

この中にある a.sphreadme.txt は今回使用しませんが、

readmeは読んでおいてください。

 

次にMMD4Mecanimを見てください。

めっちゃ色々入ってると思います。

MMD4Mecanim

 その他

  MMD4Mecanim BulletPhyics

   PMX2FBX

とフォルダに潜っていき、

pmx2fx というUnix 実行ファイルと

pmx2fx.exe があるところに来てください。

 

f:id:mokomokohudo:20150508190951p:plain

 

そしてpmx2fbx.exeのショートカットを作成してください。

( macbookならエイリアスの作成 )

 

追記

もし、macなどでドラッグ&ドロップできなかった場合は

ショートカットに引数を渡して実行してみてください。

 

出来ましたら、次に

 

デスクトップに新しいフォルダを作ってください。

そしてその中に魔理沙Ver12.pmxharuhiposition.vmdを

入れておいてください。

haruhiposition.vmdはハレ晴れユカイフォルダの中にあります。

 

f:id:mokomokohudo:20150508191610p:plain

 

この2つを両方とも選択した状態でpmx2fbx.exeのショートカットに

入れて下さい。

すると何かがバーって出ます。

それが終わったら( 自動で閉じたら )デスクトップかどこかに

たくさんファイルが出来ていると思います。

その中に魔理沙Ver12.fbxがあると思います。

他のは消しても大丈夫です。

 

作業終わりです。

この中にモーションデータ込みのデータが作成されました。

 

あとはこれをUnrealEngineに読み込ませて、

マテリアルをいじって

こうだ!

f:id:mokomokohudo:20150508192829p:plain

 

次は音の出し方の勉強しよ。うん。

 

/* 書いてて思った事 */

微妙・・・表情も変えるようにしなくては。

器用貧乏 or 特化

最近、早寝早起きを心がけています。

健康的な生活がしたいのです。

でもね、弊害が出てきました。

 

これですよ。

早寝したがるんですよ。私の体が。

この時間に寝ると間違いなくAM1時とかに目が覚めるので

ちょっと考えものです。

 

さて、ちょっと私悩んでいます。

このエンターテイメント業界に出て、

器用貧乏になることと、

1つのことに特化することは

どちらが良いのでしょう?

 

多分、どっちでもいいです。

ゲームデザイナーを目指している以上

イラストやプログラムも勉強しておいた方がいいのでは?

 

とか思って1年間生活してたら、

見事なまでの器用貧乏になりました。

 

私はもう器用貧乏になるか器用万能になるしか

ないようです。

 

今更、特化しようとは思ってないんですよ。

これからも器用でありたい。

 

/* 書いてて思った事 */

眠いの。ほんとに。

 

 

 

 

苦手なの・・・

私、C++が苦手です。

というよりポインタが苦手です。

 

同期の学生がC++でゲーム作っている中、

HTML5Javascriptでゲーム作るくらいに

C++を避けて来たのですが、

つい先日、ぶつかってしまいました。

 

OpenGLこのやろう。

 

学校の授業でOpenGLが来てしまいました。

関数ポインタこのやろう。

 

まぁそれはさておき、

キー入力の検出をプログラムで書いて、

解決策の分からんことが起こりました。

 

上矢印キーとeキー両方取得しちゃうよ?

 

上矢印キーしか取得させてないはずですが、

eキーを押しても反応しちゃう。

以下ソース

 

#include <OpenGL/OpenGL.h>

#include <GLUT/GLUT.h>

#include <stdio.h>

 

void display() {

 glClearColorIiEXT( 255, 255, 0, 255 ) ; 

}

 

void specialkeydown( int key, int x, int y ) {

 if( key == GLUT_KEY_UP ) {

  printf( "上矢印キー" ) ;

 }

}

 

int main( int argc,char *argv[] ) {

 glutInit( &argc, argv ) ; 

 glutInitWindowPosition( 320, 100 ) ; 

 glutInitWindowSize( 640, 480 ) ; 

 glutInitDisplayMode( GLUT_SINGLE | GLUT_RGBA ) ; 

 glutCreateWindow( "sample" ) ; 

 glutDisplayFunc( display ) ;

 glutSpecialFunc( specialkeydown ) ; 

 glutMainLoop() ;

}

 

次の授業の時に講師に聞いてみるか。

 

/* 書いてて思った事 */

情けない。

 

/* 数ヶ月経って・・・ */

私、こんなコード書いてたんだ・・・

基礎じゃん。GLUT使ってこれかよ!

Sundayじゃねーのー

まさにこれでした。

日曜日じゃないけど。

 

午後から学校あると思っていたから、

早め(午前9時)に行って勉強しようという気持ちで

学校に行きました。

 

授業なかったです。

 

学校のスタッフから君は今日授業ないよ?

と言われて、しょぼんってしました。

 

でもせっかく来たしということで、

ずっと学校のPCでUnrealEngineをいじってました。

 

ちなみに今日から授業開始だと思っていたのですが

 

明日もなかったです。

 

明後日からでした。

 

はははHolidayじゃねーのっ!

 

跡部様の気持ちが少し分かりました。

 

個人的には授業早く始まって欲しいです。

だって家で勉強しても詰まるんだもん。

 

そんな今日このごろ。

 

/* 書いてて思った事 */

日に日に文字数の減っていくブログ

UnrealEngine4で感知式ライトの作成

どうもどうも、ぼこぼこニートです。

 

違います。

もこもこフードです。

 

今回はUnrealEngine4で感知式のライトを作成してみました。

こちら

UE4:Eventノードを使った簡単なBluePrintの作り方 - 僕の私のUnrealな日々)

のサイトを見ながら作ったので大体同じですが、

個人的に分かりにくかった所とかを補完していきます。

 

・・・あくまで自分用のメモとして。

 

では早速やっていきます。

 

そもそも、感知式ライトとは何か。

一定の範囲に入ったら電源の入るアレです。

なんか急に明かりがつくとビクってなるよね。

 

はい。

 

まずは新規プロジェクトから「Third Person」のテンプレートを開きます。

そしてこんな感じの暗室を作ります。

私は適当に作りました。

 

f:id:mokomokohudo:20150507125052p:plain

・・・そんなに暗くなかったです。

後で暗くしましょう。

 

次にこの暗室の中に何かしらのオブジェクトを置きます。

何にもないところに明かりがついたら変でしょ?

今回はライトを置いていますが、

立方体でも、球体でも、何も置かなくても構いません。

f:id:mokomokohudo:20150507125519p:plain

オブジェクトを配置したら、その配置したオブジェクトの

ブループリントを作成します。

 

作成して開くとこんな感じのものが出ると思います。

f:id:mokomokohudo:20150507125853p:plain

私が配置したライトは既にサンプルとして

ブループリントが組まれていますが、今回に限っては消してしまっても

構いません。

 

次に左側にある「コンポーネントの追加」から

「PointLight」を選択し、任意の位置に配置します。

f:id:mokomokohudo:20150507131446p:plain

余談ですが、このオブジェクトには初期でPointLightがあります。

これも消して大丈夫です。

消さない場合は上記の配置する所はしなくていいです。

 

PointLightを配置したら、右側にあるPointLightの詳細から

Visibleのチェックを外しておいて下さい。

このチェックを外して置く事でプレイ開始時に

明かりが消えるようになります。

また、明かりの強さを最大にしておきましょう。

同じくPointLightの詳細から、LightのIntensityの数値を

100000.0とかにしておいてください。

f:id:mokomokohudo:20150507132702p:plain

 

・・・書くのがしんどくなってきました。

 

はい、次。

感知する範囲を決めていきます。

コンポーネントの追加から、Collisionの所にある

「Box Collision」を選択してください。

大きさを整えたら、こんな感じになるかと思います。

f:id:mokomokohudo:20150507133414p:plain

この透明な箱の中に入ると明かりがつくように設定していきます。

このBoxも右側のVisibleのチェックを外しておいてください。

 

また、円形の範囲にしたいなどがあれば

Box Collisionではなく「Sphere Collision」などに変えてみてください。

 

そして、いよいよブループリントを触っていきます。

そんな大した処理ではないですが・・・

 

Event Graphのタブをクリックしてブループリントを開きましょう。

まず、左側のBoxを選択している状態にします。

次にブループリント上で右クリックしましょう。

こんな画面が出ます。

f:id:mokomokohudo:20150507135508p:plain

 

「Collision」を開くと3つくらい出ると思います。

その中の

OnComponentBegineOverlap」と

OnComponentEndOverlap」を出します。

f:id:mokomokohudo:20150507135936p:plain

 

それでは次に左側にあるPointLightをブループリント上に

ドラッグ&ドロップします。

f:id:mokomokohudo:20150507140203p:plain

こんな感じにしてください。

 

PointLightから線を引っ張って新規ノードを配置します。

f:id:mokomokohudo:20150507140403p:plain

配置するノードは「Toggle Visible」です。

注意 : PointLightから線を引っ張ってノードを作成してください。

     右クリックで検索を掛けると複数出て来てしまい、混乱します。(私が)

f:id:mokomokohudo:20150507140750p:plain

 

すべて配置し終えたらノードをつなげていきます。

こんな感じにして下さい。

f:id:mokomokohudo:20150507141306p:plain

そして、PointLightをターゲットにつなげたら作業終了です。

 

あとはビルドをして、プレイしてみましょう。

書いてる時に私がビルドしてない事に気がつきました。

 

範囲外

f:id:mokomokohudo:20150507141645p:plain

 

範囲内

f:id:mokomokohudo:20150507141821p:plain

 

うんうん。いい感じです。

 

/* 書いてて思った事 */

ほんとに大したことしてなかった。