UE4でアニメーションを切ってつなげてステートマシンに入れたいならAnimationComposite

UE4でアニメーションを切ってつなげていい感じにしたいと思ってググると、AnimationMontageが良い!という結果が出てきます。

しかし、AnimationMontageはステートマシンに入れられないので、ステートマシンに入れ込む用途ならAnimationCompositeが良さそうです。

ではAnimationMontageとAnimationCompositeの違いはなんぞやと調べてみても、はっきりした答えは出てこず…。

以下はわたしの解釈なので、間違ってるかもしれないメモです。

・AnimationMontageはステートマシンと関係なく発生する可能性のあるイベントのアニメーションを使いたいとき

  →例:キャラクターは歩く・走るステートにかかわらず、ダメージを受けたり、武器を取り出したりすることができるなど

・AnimationCompositeは単純にアニメーションを切って繋いでいいかんじにしてステートマシンに入れ込みたいとき

  →例:始まりから終わりまであるアニメーションを始まり・中間ループ・終わりで切ってステートマシンで遷移を管理したいなど

UE4のアニメーションはぜんぜん触ったことがなくて、こんなかんじのことに苦戦してます。

これまでとこれから

このブログをまだ読んでる方がいるかどうかわからないけれど、近況を言うと、カナダから戻ってきました。ReactやWordpressを使った仕事をしたりしながらお仕事を探して、8月からゲーム関連業界で働くことになりました。

きっと他業種(?)に行けるのはぎりぎりという28歳という年で、webかゲーム業界か迷った結果、プログラミングと文化・文芸に関わる何かがしたいという思いを大切にしようと思って、この選択をしました。お金より、やりたいことを優先したような判断…

その事実だけから見れば、意気揚々と最近流行りの入社しましたブログを書いても良いかもかもしれないですが……わかりません。

ブログを書かなくなったあたりから、実はずっと価値観がブレていて、いろいろとどうしたらよいのかわからなくなってしまって、途方に暮れるような思いがしていました。そんなことを書いても仕方がないので…。

とくに学校を卒業してからは、過去の選択を見直したり、将来のことを悩んでみたり、わたしには望み得ないことを考えてみたり。地に足がついていなくて、不安だらけで、その中でもきちんと毎日を過ごして、しかも重要な選択していかなければいけない状況がずっと続くという状況でした。

わたしが留学に望んでいたことは、すべて叶ったと思うし、やっぱり行ってよかったと思います。その反面、これまで忙しさにかまけて見つめてこなかったことに気づいてしまったという気がします。良いことではありますが、それがこの混乱の元の気がしています…。

うまくまとめようとしたけれど、結局書いては消し書いては消しなので言えることはこれだけです。

いつかきちんと消化したいのですが、すぐにはできそうにないようです。

これからのことはわかりませんが、まずは地に足をつけて暮らしたいと思っています。 10キロくらい太ってしまったし、3年間ほぼ新しい服も買わなかったので、そういう基礎のところから、ちゃんとした暮らしを取り戻したい。目標達成中心の生活から、バランスよく生きることを目指していきたい。それから、今後のことを考えていきたいという気持ちです。

今年のまとめ

今年はなんともいろんなことがあって、1月から思い出しはじめたらあまりの濃厚さにびっくりするような一年でした。

英語がそこそこできるようになった気がする!

語学学校に通っていたときより、はるかにまともな英語が話せるようになりました。たぶん。

少なくとも初めて会った人と会話が噛み合う。ある程度、聞き取れるし返せる。

まあ1年も長く居れば当然なのかもしれませんが、学校ではノーマルスピードで授業があったり、友達とか留学生含めて英語ペラペラで、カナダ人はめっちゃ早口だったりして、3,4ヶ月はついていくのが大変だったのですが、あとは忙しさによってブーストがついた感じです(?)

カレッジに入ってよかった

これは本当によかった。

多くの友達に出会えて、多くの経験をしました。

プログラミングの経験ありとはいっても、物理学や数学を利用したゲームのプログラミングは全く違っていて、勉強していくのは難しいながらもとてもおもしろい経験でした。

Webの授業はもともと知っていることも多かったので、あたらしく習ったAngular.jsだったり、ES6だったり、ES6を利用したよりよいオブジェクト指向アーキテクチャを考えてみたりするのが楽しかったです。

そして卒業制作。6月中旬から11月末に及ぶ長い期間、6人チームでひとつの作品をつくりました。

Unreal Engine4を使った3Dネットワークゲーム

大変でした。

まず、UE4の使い勝手がわからない。そしてゲーム制作の考え方の基礎がまだしっかりと身についていない。物理よくわかんない。数学もよくわかんない。そしてネットワークゲームの仕組みがあやふや。

わたしはゲームのバックエンドってどんなかなって興味があったのでネットワーク・ゲームループまわりの実装を担当しました。

これが罠。

大量のドキュメント(英語)

大量のチュートリアル(英語)

やばい。わかんない。つらい。

いまとなってはシンプルなんですけど、理解するまではちんぷんかんぷんで大変つらかったです。ほぼわたしだけ進捗なし状態なので……。

そんなこともいい思い出です。まあまあいいかんじに仕上がって、学べることも学んで良い経験になりました。

いろいろな視覚効果を作るテクニカルアーティストのやり方を教えてもらって、とても素敵で楽しそうだなって気づいたのは最後の数日間でした。幾つかマテリアルとかをつくって、それを見るのは本当に楽しかった。じわじわ趣味でやりたい。

ペアプロはいいぞ

つらい進捗なし時代に、同じチームにいた人がペアプロをしてくれました。

ペアプロって余裕がある人たちがするものだというイメージを持っていたので、ちょっと消極的だったんですけど、これは本当によかったです。

とくに、UE4について最初は知らないことだらけで、何をどうすれば何がどうなるの的なかんじだったので、知っている人と話して、ここはこうしよう!こうすればできるよね!ってやっていくのはとても助けになりました。新人さんと仕事をしたときにペアプロをしていたらよかったなあって思ったくらいです。いいぞいいぞと聞くけど本当にいいです。

学費を全額ビットコインに突っ込んでたらマンション買えてた

今更そんなこと言っても詮無いことですが、そんなことをふと思います。

5月ごろに海外送金のために買おうとしたり、7月ごろに友人に投資を勧められたり、いろいろチャンスがあったはずなんですけど、さすがに稼いでいない状態で仮想通貨にお金を突っ込むような冒険はしたくなかったので……。

まあそんな妄想をします 笑

休憩なしのデスクワーク x 寒さ = 頭痛!

これはまずかった。

緊張型頭痛ってやつらしいんですけど、良くなるまでに3日かかりました。めちゃくちゃ痛い。目も開けられないくらい痛い。吐き気もする。

いまホームステイをやめてシェアハウスにいるので、食べ物を自分で用意しないといけないわけですが、それももちろんできない。

ロキソニンを飲んでやっとまともな人生を送れる感じ。

湯たんぽと体を温めるお茶とカイロとストレッチでようやくよくなった3日目。今日。

辛かったので冷えこむ年末年始、寒い部屋でデスクワークなんてしないとは思いますが、何かとお気をつけください。

8月からこれまで

あまりに忙しくて忙しくて、更新どころではなかった数ヶ月でした。

初めは、忙しく働いてた頃といっしょじゃーんって思ってたのですが、後半はもう大変忙しく……。

3Dマルチプレーヤーゲームの通信まわりの実装をしていたのですが、なかなか方法がわからず、試行錯誤の日々でした。働いていたときに書いていたようなシーケンス図を書いて、ようやく理解。

英語の資料をちゃんと読めればそこまでひどいことにはならなかったのかもしれないけれど、どうなんでしょう英語出来る人も手こずっていたので……。

そんなおかげで今はUnrealEngineも使えるようになり、通信周りの実装方法もわかり、少しはパワーアップしたのではないかと。

カナダ人のチームメートは、働き始めたらこんなに忙しいことぜったいにない!!って言ってて、仕事へのイメージからして違う点が、ちょっとおもしろかったです。

そんなわけで卒業製作も終わり、卒業まであと1学期。

Java8関数型インターフェースについてのメモ

@FunctionalInterfaceというアノテーションに出くわして、いろいろ調べた結果、下記のブログが参考になったのでメモです。

Utilにstaticファンクションをたくさん定義するのに慣れてしまっているので、なんでわざわざインターフェースを…?という疑問を解決できていないのですが、使い方はわかったのでとりあえずよかったです。

【Java】Java8のあれこれ③ 関数型インターフェース(1) | Ardito Tech Blog

Unity RaycastHit2Dがその物体自身にヒットする問題

ハマったのでメモ。

やりたかったこと:ぷよぷよみたいなパズルゲームで、ぷよを落としたとき隣接するぷよの色を取得する。

方法:ぷよが落ちたとき上下左右にRaycastを飛ばし、Hitしたぷよの色を調べる。ぷよぷよの性質上、コライダは機能させたかったので、ぷよにIsTrigger設定なし

困ったこと:HitInfoを調べると、常に落としたぷよと同じ色のぷよにヒットしている。(していなくても!)

原因:デフォルトの設定ではRaycastをオブジェクトの内側から飛ばしている。そのため、外部のオブジェクトにヒットする以前に自分自身に当ってしまう。ヒットしたGameObjectの名前を調べれば、常にHit情報がRaycastを送り出したぷよと同じ名前を持つことから、どちらも同じオブジェクトだとわかる。

解決法:デフォルトになっている設定を変える。(ほかにもあると思うけれど……)

answers.unity3d.com