UNITY 2018.3 Timelineで遊ぶ。 任意のタイミングでカットインを実行させる
攻撃して敵が吹っ飛ぶようなのつくる
前回まで
UNITYちゃんをタイムラインで動かした
攻撃してみる
Unityちゃんのアニメーションを合成
まずUnityちゃんにクリップを追加します
とりあえず、移動後にWin00を再生させる
Clipを重ねると補完してくれます
Cubeを飛ばす
上記のモーション再生時にCubeを吹っ飛ばしてみます
CubeはAnimatorがないので、Track作成時にAnimationから作れません
直接Cubeを左側の開いたスペースにドラッグすし、Add Animation Trackを選ぶのが正解です
これで、CubeのAnimationTrackが出来ました
ポジションに注意して、録画ボタンでCubeを飛ばすアニメーションを適当にいれます
前と同じく無限クリップからAnimationClipを作成
箱が飛びました!
カメラをつける
同じようにCameraをAnimationTrackで制御します
うまく制御できてないけど動かす事はできました
任意のタイミングでのタイムライン再生
今は実行時に勝手にタイムライン再生されます
これをボタン押したときに再生させてみます
まず、PlayableDirectorの参照をとっておきます
GameObject.Findなり、Inspectorで参照設定するなり好きな方法で
そして、PlayableDirectorのPlayを呼ぶだけ。簡単
if (Input.GetKey(KeyCode.V)) { playableDirectorAttack.Play(); }
今回はVキーに割り当てたけど、ほんとこれだけで任意に再生できます
ただし、任意の位置で前に歩いて、攻撃モーションで箱が飛ぶのでまだまだ対応が必要必要です
今後調査したい
タイムライン使ってみる AnimationClip Unity2018.3
タイムラインとは
Unity2017のあたりでPreviewで入った機能
カットシーンやリアルタイムムービーシーンの再生等で使う
単純に決められたムービーの再生だけではなく、今のシーンからシームレスにオブジェクトを動かしたり可能
また、エディタ拡張でClassを派生させることで、かなりのカスタマイズが可能である
タイムラインの作り
PlayableDirectorが全体の制御を行う
TimelineAssetに全ての中身が入っている
TimelineAssetにはTimelineTrackがあり、トラック単位での制御が可能である
TimelineTrackには複数のClipを作り、実際の動作を作る
その他、Trackをグループ化するTrackGroup等がある
タイムラインの再生前にPlayableDirectorが、Clipに対してオブジェクトをバインドし、ヒエラルキーにオブジェクトをInstantiateし
時間で再生停止をコントロールする
また、 Clipを拡張するには下記の4つを作る事になる(全部が必要ではないこともある)
- Track
- Clip
- Behaviour
- Mixer
タイムライン生成
タイムラインはコンポーネントなので、何かのゲームオブジェクトを選び
Window->Sequence->Timeline でCreateする
これでTimelineAssetファイルを作成することが出来る
AnimationTrack
まずは簡単なキャラを移動させるタイムラインを作る
Timeline左側で右クリックし、AnimationTrackを作る
今回は画面上にあるUnityChanを動かしたいので、None(Animator) にヒエラルキー上のUnityChanを指定する
トラックの右側で右クリックし Add from AnimationClip をおすと、アニメーション選択画面が出るので
例えば Runのアニメーションを選択する
Clipの長さはドラッグドロップで設定できる
次はクリップの設定だ
クリップを選択してInspectorをいじる
イージングやディレイなどを設定できるが、とりあえずは Positionを動かす
Z方向に歩かせてみる
これで再生してみる
キャー 相対座標ではなく絶対座標であり 今回の例では(0,0,5)の位置にワープした・・
この座標に関しては面倒で、以前はAnimationControllerの有無で絶対座標、相対座標が変わっていたが、2018.3からは変更された
Trackを選択するとInspectorにて TrackOffsetsの項目がある
Apply Transform Offsets にすると、絶対座標(ムービー、カットシーン向け)
Apply Scene Offsetsにすると現在からの相対座標で動く
今回は攻撃のカットシーンをやってみたいので SceneOffsetsにする
移動
Z方向に少し移動させたい
通常ではTrackの赤丸の録画ボタンをおし、キーフレーム打ちたい位置にタイムラインシーケンスを設定し、UnityChanのPositionで右クリックで Add Keyframeを行い
シーケンスを動かし、動かしたい位置にUnityChanを動かし 再びKeyframeを打てばよいのだが
なんと、Humanoidはこの録画ボタンがきかず 動かせない!!
ところが、簡単なやり方がある
先ほどのAnimationTrackを右クリックし Add Override Trackを選択し、そのOverrideTrackにて上記のキーフレームを打てば
Humanoidでも移動してくれる
実行すると、現在位置から動いてくれた
無限クリップからアニメーションクリップへの変換
の通り、無限クリップから変換 クリップを右クリックして Convert to animation clipを押すだけ
UNITY StandardAssetを使う
久々にUNITYを使ったら StandardAsset周りで苦労したので
Import
昔はメニューの Assets->Importから StandardAssetをImport出来ていたが、今はメニューにない
AssetStoreから StandardAssetを検索しダウンロードして Importする
エラー
StandardAssetをImportしたらエラーが出る事がある
が、Unityを再起動すれば直る事が多いので、一度再起動する
ThirdPersonControler
ついでなのでキャラを動かしていきます
今回は適当にTerrainを置きます
StandardAssets -> Characters -> ThirdPersonCharacter -> Prefabs ->ThirdPersonControler を、シーンに置く
Cameraを ThirdPersonControlerの中に置く
実行すると、動きはぎこちないながら、WADで移動、Spaceでジャンプ、Shiftでゆっくり
歩くことが出来る
UNITYちゃんに変更
Unityちゃんをヒエラルキーに置き、そこにカメラを置く
UnityちゃんのGameObjectに各種Componentをつける
Animatorには ThirdPersonAnimatorController、unitychanAvatarを設定
カプセルコライダーとThirdPersonスクリプトを2個つける
実行すると、ぎこちない動きだが UNITYちゃんを動かす事ができる
UnityのマルチプレイヤーネットワークAPIについて
種類
UNet
UNITYの5.1から入ったおなじみのAPI
こうレイヤーのHLAPIと低レイヤー LLAPIがある
が、これは間もなく廃止予定だ
Multiplayer
次世代のネットワークAPI
だが、フォーラムによると、まだ機能的にはしょぼいらしい
2021年にはUnetよりはるかに便利になっている予定だそうだが、かなり先だ
ECSやJobSystemを使い、マルチスレッドで ある程度アンマネージドで高速実行するようだ
現在はどうやらGithubにソースがあり、それを使うようだ
github.com
Photon等のmBaaS
各社独自のサービス展開をしている
ではどうするのがいいのか?
Unetは廃止予定ではあるが、今いまは使うしかないと思う
もちろん私のような人柱は Githubから落として新機能を使ってもいい
Unetでは高レベルのHLAPIと低レベルのLLAPIがあるが、フォーラムを読んでるかぎりでは
UnetのHLAPIから New Multiplayerへの自動変換を予定しているらしい
LLAPIからの変換は困難であきらめた雰囲気がある
また、New Multiplayerは HLAPIと似たインタフェースにするっぽいので
今はUnetのHLAPIで書いておけば問題がなさそうに感じる
mBaaSを使う選択肢は当然大いにある
HLAPIであっても、かなり面倒なコードを書く必要があるが、mBaaSを使えばそれが圧倒的に楽になる
4月台湾 初日。桃園〜新店〜坪林〜羅東 1
理由
花粉症がひどいので毎年この時期は花粉疎開しています
特に去年とかひどすぎて、2月から花粉ダウンし3月案件終了し4月になり即1ヶ月台湾旅行しました
今年は花粉はかなりましなんですが、辛いことには違いなく
3月で常駐をやめ4月に台湾に飛びました
今回は9日ですが、花粉期間はずっと疎開できればいいけど、忙しいときは数日難を逃れるだけでも違うと思います
台湾にする理由ですが、安くて便が多く、いつでも思い立ったら買えるし、急に仕事で呼び出されても帰れる近さがいいです
あと、食べ物がとても美味しい。日本人向けの味になってます
その初日です
旅行先決めるまで
2月の時点で花粉を認めていたが、例年よりは軽いかな
当時、週2日常駐していたが、案件都合で契約を終了させ、4月からフリーが決まった
フリーと言っても、持ち帰りは3,4件あるから、ちょうどいいぐらいの量
実は持ち帰りであれば、室内にこもって空気清浄機回してれば生きていけるのですが
せっかく出し今年も海外に飛ぼうと色んな国を計画
今回は花粉から脱出して仕事をすることなので、仕事重要
香港(深セン)
香港エクスプレスで、まーまー悪くないフライト発見
香港は宿が悪くて高いので、そこだけ何とかすればいい街だ
特に、ブルース・リー、ジャッキー・チェン、サモ・ハン・キンポー、ユンピョウ・・ 憧れの香港スターの街だ
ご飯も美味しい(少し高いが
深センには友達がいて、いろんな会社に訪問する予定だ
だが、会社訪問を私の休みの都合で決めるのもよくなく
プレゼンするブツ作って、改めて訪問に決定し、今回の旅行はやめた
マレーシア
エアアジアがたくさん便をだしていて、ネット環境もよく、部屋も安く借りられる
また、ご飯が好みで知人もいて、将来の海外展開の候補地
今回は あまり魅力的な便がなくやめた
タイ
安くて魅力的なチケットがあった
宿は安くて良いし、食べ物うまいし、最高なんだが
ネット環境がガチャだ
バンコクにいい床やど見つけるまでは仕事怖い
インドネシア
インターネットが壊滅的に遅い
中国大陸
行ってみたい。特にお茶ツアー
計画しなきゃ
ベトナム
食べ物美味しいし仕事も繋がりあるし、今後も行くことになりそう
ただ、直前ではいい便みつけられず
台湾
すべて安心
ただし4月の1週は大型連休&5月末にもチケット取ってる
今回はどこに行く?花連前回は1泊だったからちゃんと泊まろう
結論として台湾を1〜9で抑えました
今のメイン案件が4月末にマイルストーンあるので、申し訳・・
羅東はいぜん良かった宿に直接LINEで申し込み
花連は以前の宿はネット弱かったので、Booking.comで新しい宿探した
初日
台北 桃園空港まで
朝5時半の便。2時半にチェックイン開始なので、終電で行き羽田に前泊する
3時間ほどご飯食べたり仮眠したり時間をつぶしチェックイン〜ラウンジ〜フライト
あっという間に桃園
桃園〜新店、SIMのチャージ
台湾ではけっこうWifiあるのだけど、そんなところにケチらずSIM買います
ただし、SIMは裏技?があるのでそれを利用します
とりあえず大雑把に書くと
空港では計日のSIMしか買えません。3日で1200円、30日で4000円です
使い放題なので、いっぱいパケット使う人は計日が良いですが
殆ど使わないと思うので、計量SIM つまり2GBとかの容量のものが楽です
2GBだとだいたい1200円で、有効期限は180日です
私の場合は、例えば去年は4月1〜29まで台湾にいき 500MBも使わず、8月に10日ほどで 結局700MB程度の使用量でしたが
本来であると 6000円かかる計日SIMが、計量だと1200円でまだ半分以上あまってた
今回は180日過ぎているため、前回のチャージは消えてますが、前のSIMにチャージします
細かい手順は後ほどですが、コンビニでも露天でもチャージできて便利です。しかも、アプリからチャージできるのです
パウチャーカードだとさらにお安く・・
今回はSIMがチャージから180日オーバーしてたので、店舗で一応チャージしてもらうことにしました
おそらく、パウチャーカードでもチャージ出来るのですが念の為に
桃園よりバスで新店へ行く。いやまてよw運転手w運転前に酒盛りwww
新店は昔の遠距離バスターミナルで
今は台北の市政府が中心ですが、今回行く坪林方面には、ほぼここからしかルートがないです(あるけど)
ちなみに新店は別名大坪林です。坪林とのつながり??
新店でSIMをチャージしたあとは、バスに乗り坪林です
ここは製茶ミュージアムがあります
製茶ミュージアム今日おやすみだったよ!
ってことで怒って帰ります
今夜は羅東で泊まるよていなので羅東行きのバスを探す見みあたらず
お店できいたら、常連らしいお客さんが酒盛りしてた
が、親切にバス停まで車で案内される・・飲酒だけどね
そして無事 羅東到了
花粉疎開 海外旅行のお供の電子機器
花粉疎開で毎年この時期は海外で仕事です
毎年台湾いってますね
今回の電子機器をまとめます
サマリー
目的は花粉避難である。観光ではない。花粉のない土地で仕事をしつつ美味しい料理を食べる
4/1~4/9 8泊。台湾では大型連休なのでお店は休みな場所も多い
羽田〜台北、台北〜羽田
今回は、のどかな花連に暮らす
大雑把な予定
4/1、4/2 速攻で羅東の常宿へ行く。色々お世話になった友達のお店でお土産も買わねば。4/2は半日かけて玉蘭茶入手する
4/3、4/4 花連。はじめての宿のためWifi環境などが未知数である
4/5、4/6、4/7 未定。宿が仕事に快適であればそのまま連泊かもしれず、なんとなく台東(池上?)行くか台北戻るか?
4/8、4/9 帰国のため台北へ戻る。
仕事
現在、ゲーム開発2件、VTuber4件、仮想通貨1件 を主に行ってます
UNITYはWindowsのほうがメリットが多いのですが
もう3年目でバッテリーの持ちが悪い事、仕事データが入ってる事、MBPより重い
などの理由から、今回のお供はMBPです
ゲームの案件は持ち帰りですが、海外からのVPN接続にお客さんがネガティブなので
今回は、プロジェクトに直接関わる仕事はせず、下記のタスクを行う
- ゲーム案件用のビュワーの改修
- UNITYのパフォーマンスチューニング(主に分割シーンまわりの)
- UNITYの案件で使うAsset調査
- UNITY、.net のメモリまわりのProfilingやチューニング勉強(Macじゃできない)
- VTuber関連の開発(モックの改造)
- 3DCGツールの勉強(これもWindowsマシンで行いたい・・)
- iPhoneX TrueDepth、ARKit関連(iPhone購入間に合えば)
- nodeのソーシャルゲームサーバ続き
- なにか新しい言語勉強(clojure予定)
- UNITYサンプル作成
また詳細タスクはTrelloなどで落とし込もう・・
電子機器
持っていく電子機器まとめる
- MBP2017
今回のお仕事PC。USB-C
タスクリストをまとめてからだが、現状
-- UNITYの各種バージョンのインストール
-- UNITY必要Assetのダウンロード
-- ビュワーのダウンロード
-- VTuberモックのダウンロード
-- iPhoneX ARKit関連のダウンロード(iPhoneX買えたら)
- 海外用スマホ。USB mini
-- 一応GoogleMap落としておこう
-- 中国語翻訳アプリどれにするか
- iPadPro。USB-C
-- GoogleMapダウンロード
-- Kindleの本を購入&ダウンロード
-- プライム・ビデオダウンロード
BlueToothヘッドフォン。USB mini
iPadProが物理不可能なので 必須iPhoneX USB-C
購入間に合えばもってく
-- セットアップ
iPod Lightning
モバイルバッテリー。USB mini
つまり、USB-C 3本、Type-B 3本 Lightning 1本だ
ぐぬぬ・・・多い・・・
少し環境の変化
3末でKLab常駐終了
プロジェクトがめどがたったのもあり、3末で1件契約終了しました
同じ会社の他のプロジェクトに行くことも考えましたが
今現在、別のゲームの開発リーダポジのため、そちらに集中することにしました
つまり、炎上してるという事です
詳しくは書けませんが、うちの会社のせいではない炎上ですが、飛び火してくること確定なので
4月から
3末の終了が決まった瞬間に行ったのは、他の案件の4月のスケジュール調整でした
メイン技術やっているゲーム案件は、もう少しコミット出来るという話をし
VTuberやシェーダー開発、部下の仕事などいろいろ調整を行い
終了がきまって4日後に4月1日~10日の間、自由に動けるスケジュールを作った
その後、深セン、マレーシアの知人に連絡をとり、営業まわりをその日程でいけるか確認
その結果、香港経由で深センに行き営業するスケジュールは可能だったが
ちゃんと見せられるモックや、もっといい営業タイミングは6月ごろかな?という事で
結局台湾の営業に行くことにして
1週間後には、チケットをとった
今後
3末で終了したものの、今の案件が終了したら戻ってくる予定なので
それまでに、会社にもっと貢献できるよう、技術をもっと磨いていこうと思います
KLabさんは技術力も高く、環境もとても良い、タレントエンジニアも増えているのでまた仕事したいですね
会社の都合では、サーバインフラはもともと強く、UNITYエンジニアを強化したいとのことなので
UNITYの勉強を頑張ろうと思います
とにかく、UNITY頑張る!
UNITYの勉強の仕方
まず、C#をちゃんと隅々まで理解する
UNITYは、パフォーマンス、レンダリングを中心に全体を見れるようにしようと思う
基礎をかためたら、色々なテスト実装してみたい
そして、「UNITY共同体」と、3D技術者の集まりなど、もっと積極的に、技術者をつなげる仕事したい