kugi's notebook

やったこと、思ったことなどつらつらと書きます

Blender to Unity Part2 ~Unityへのインポートで困った話~

はじめに

こちらの記事は広島大学ITエンジニアアドベントカレンダー2019の21日目です。

Cammelでは現在iOSAndroid向けのゲームを制作していて、 私はシェーダー周りやアニメーション処理を担当しています。

今回はBlenderで作ったモデルのアニメーションをインポートする際に困った話をします。

f:id:kugi_masa:20191220220524p:plain
こいつは一体...

モデルのインポートについては Blender to Unity Part1で簡単に紹介しています。

環境について

作業環境は以下の通りです。

  • Unity : 2018.3.8f1
  • Blender : ver 2.8

BlenderでFBX形式でエクスポート

まずメンバーがBlenderで作ってくれたアニメーションをUnityにインポートします。1つのモデルに対して複数のアニメーションを使うのでアニメーションごとにFBXファイルを分けてもらいました。 エクスポートの設定は以下のように指定します。

f:id:kugi_masa:20191220171814p:plain
fbxのエクスポート設定

Unityへアニメーションをインポート

今回のように1つのモデルに対して複数のアニメーションをインポートする際 ファイル名を以下の形式にすることで自動でモデルのアーマチュアがアタッチされるようです。

[model_name]@[animation_name].fbx

ソースはこちら

モデルがなんかおかしい...!?!?

早速FBXをインポートすると...

f:id:kugi_masa:20191220173452p:plain
なんか変な線が....
f:id:kugi_masa:20191220173634p:plain
Blenderでのモデル

アニメーションは動いてくれましたが、Blenderでのモデルでは明らかにないはずの変な線がついています。ただマテリアルがはげているというわけでもなさそうです。

いろいろ見てみると...

Blenderでは問題なく表示されているはずのメッシュがぺちゃんこになっていました。

f:id:kugi_masa:20191220174208p:plain
なぜかメッシュがぺちゃんこに...!?

Blendファイルに戻り、オブジェクトモードのクリアオプションでコマの位置や拡大縮小をクリアしてみるとぺちゃんこモデルが現れました...!!

f:id:kugi_masa:20191220175004p:plain
どうやらスケーリングなどの変換が適応されていなかった

Apply(適応)オプションで位置、拡大縮小の変換を適応してからFBXを再度Unityにインポートしてみました!

f:id:kugi_masa:20191220220255p:plain
無事Unityにモデルとアニメーションをインポートすることができました!

まとめ

今回の不具合の解決に2日ほど時間を溶かしてしまいました。

Blenderで作成したモデルを扱うときは注意が必要ですね...

やったこと

  • Blenderで作成したモデルとアニメーションをUnityにインポート

わかったこと

  • 何かが変だったらクリアオプションや適応オプションで確認してみる

次やりたいこと

  • アニメーションのUnityでの処理について書きたいです

カンバン活

はじめに

こちらの記事は広島大学ITエンジニアアドベントカレンダー2019の13日目です。 (1日遅れての投稿になります。ごめんなさい...🙇‍♂️)

こんにちは。みなさん付箋バンバン貼ってますか? 私は最近また「カンバン活」を再開しました。

「カンバン」はタスク管理の方法の一種で、タスクを付箋に貼って「TO」、「DOING」、「DONE」と移動していきタスク管理します。

今回は私がやってみた「カンバン」を使ったタスク管理をご紹介します!

(カンバンについて)

初めての「カンバン」

私が「カンバン」に出会ったのは大学3年次に参加したenPiTのアジャイルキャンプでした。「すげー!画期的!」と感動した私はダ○ソーで額縁と付箋を購入し、家にカンバンゾーンを設置しました。(←ヤバイ笑)

f:id:kugi_masa:20191213203139j:plain
MY FIRST KANBAN

最初のカンバンでは以下のように取り組みました

  • 1週間を1Sprint(1期間)とみたてる
  • 「〇〇の○章を読む」、「〇〇の課題をする」、「〇〇の過去問を解く」という風にざっくりとしたタスクを1タスクとして付箋に書く
  • タスクに着手した時点で付箋を「DOING」に持っていく
  • 毎朝デイリースクラムと称して付箋の並び替えを行う

アジャイルキャンプで「カンバン」を使った際に「DOING」にタスクを残してスプリントを終えるのはよろしくないと叩きこまれたのでなるべく朝の時間での並べ替えや見積もり直しを大事にしていました。

私のFIRST KANBANは「CG-ARTs検定の合格」、「大学院入試の準備」のタスク管理として始めたもので、2ヶ月で終わってしまいました。検定、入試が終わり次の目標が決まる前にカンバンは使われなくなってしまいました...

2ヶ月間カンバンを使うことで、自分のモチベ向上と今取り組むべきことが明確にわかるようになりましたが、後半は形骸化してしまったような気もします。 日常生活でのタスク管理になるので、システム開発のようにPBL(プロダクトバックログ)があるわけでは、なくただ単にタスク管理となると優先度がつけづらく難しくなってしまったのかもしれません。

また、画像からも見ていただけるように付箋がデカすぎました...(笑) やることが多い週はどうしても使い辛くなってしまいました(←小さめの付箋を使えばよかったんですが...)

カンバン活再会!

そして最近カンバン活を再会しました!

f:id:kugi_masa:20191214141833j:plain
KANBAN UPDATED!!!

UPDATE内容は以下の通りです

  • 自宅ではなく、研究室のデスクに設置
  • カテゴリーごとに付箋を色分け(研究就活授業課題自分の勉強Cammel(チーム開発))
  • 小さい付箋を使用!!(←重要)
  • 1週間のタスク数とタスク付箋をノートに記録

今のところ2ヶ月が経過しましたが前回より使いやすさが増しタスク管理がさらに楽しくなりました!

まとめ

「デジタルでもいいのでは?」と周りの友人たちから結構言われましたが、自分はやはり「文字に起こす」ということで体にタスクを覚えさせることが大事だと思っています。(あくまで個人的な意見です)

デジタルの方が良いこともいっぱいあると思うので実践された方がいらっしゃれば教えてください!!😂

もし「私もやってます!」であったり、「こんな風に工夫してみては?」などご意見お待ちしてます!

やったこと

  • 「カンバン」を使って日常生活のタスクを管理

わかったこと

  • 小さい付箋もなかなかいい!

次やりたいこと

  • いつか自宅にでっかいホワイトボードをおきたいです

JPHACKS2019参加レポート

はじめに

学生最大級のハッカソンJPHACKS(ジャパンハックス)にCammelから2人で参加しました。

jphacks.com

JPHACKSは2日間のHack Dayでチーム開発を行い、各開催地の中から選ばれた15チームがファイナリストとしてAward Dayに進出し自分たちのプロダクトのデモ、ピッチを行います。

f:id:kugi_masa:20191110191346j:plain

きっかけ

昨年のenPiTで知り合った沖縄の友人がJPHACKS2018に参加していて、自分も今年はできたら参加したいなと考えていました。

Cammelからメンバーを募り、予定が空いていたのが私とTyanio(Cammelのリーダー)だけで二人で突撃することになりました。

HACK DAY

A日程(2019.10.19-10.20)

  • 名古屋
  • 神戸
  • 福岡

B日程(2019.10.26-10.27)

  • 札幌
  • 仙台
  • 東京
  • 沖縄

A日程とB日程でHack Dayが開催される中、私たちCammelは東京会場の東京大学に突撃しました。 f:id:kugi_masa:20191110192509j:plain 理由はTyanioの基本情報技術者試験がA日程とかぶってしまい、広島から一番近い会場が東京だったからです。

東京会場は規模が大きく約20チームが参戦していました。

AR-Beats!

f:id:kugi_masa:20191110192837p:plain 今回のテーマが

"X-Tech 2019” ~ Innovation for myself & by my hacks ~

ということで、身近な課題を技術で解決しようというものでした。

そんななか、ドラマーであるTyanioがアイディアを出してくれました。

課題 「楽器を持ち出すのは重い、でもスマホの楽器アプリは画面が小さくて演奏しづらい...」

私たちはARを用いてこの問題を解決するプロダクト、「AR-Beats!」を開発しました。

f:id:kugi_masa:20191110193248p:plain
ポスター

www.youtube.com

技術としてはVuforiaUser Defined Targetsを用いてUnityで実装しています。

記事にも取り上げていただいています。

itjinzai-lab.jp

AwardDay

各HackDay会場の中からHackDayでのデモでの評価で選ばれるBestHackDayAwardには選ばれませんでしたが、ファイナリストとしてAwardDayへ進出することができました! (正直めちゃくちゃ驚きました!!笑)

AwardDayは2019.11.10に東京大学で開催され、各会場の中から選出された15チームが出場しました。 このAwardDayではHackDayで作成したプロダクトの8分間のピッチとデモを元にオーディエンス投票があり、スポンサー賞や各種Awardが表彰されます。

結果から言うと、私たちCammelのAR-Beats!の受賞はFinalist Awardのみでした。

東京であった私の他の予定と被ってしまい、Award Dayでのピッチ、デモはTyanioに全て任せてしまいました。 本当に申し訳ない...。

今回Award Dayで追加の受賞はかないませんでしたが、ファイナリストとしてAward Dayに進出できたのはTyanioのアイディアあってこそのものだと思っています。ありがとう!

また、福岡の会場でBest Hack Day Awardを受賞したチーム「もつなべ」は昨年のenPiTで知り合った友人のチームだったのでプチenPiT同窓会もできました!笑

rkdora.hatenablog.com

まとめ

今年初参戦のJPHACKSでしたが自分の技術力と向き合った2日間のHackDayでした。本当にいろんな刺激を受けることができました。 来年も可能なかぎり参加したいです!

(来年はCammel全員で!?笑)

やったこと

  • JPHACKS初参戦
  • AR x Beat で課題解決
  • Vuforiaに触れた

わかったこと

  • やっぱり開発は楽しい!
  • 世界は広い、すごい人は本当にたくさんいる

次やりたいこと

  • JPHACKS2020参戦
  • JPHACKS2020のAward Dayに進出
  • JPHACKS2020で追加受賞

Cammel再始動

はじめに

Camel(キャメル)🐫ではありません。 Cammel(キャンメル)です。

f:id:kugi_masa:20191018214603j:plain

Cammel

Cammelの名前をこのブログで出すのは初めてなので、少し説明させていただきます。

Cammelは今年の1月に4人でスタートしたチームです。

(実はkugi's notebookの最初の投稿で書いたチームがCammelです) kugi-masa.hatenablog.com

名前の由来はキャメルケースからとっています。初期メンバーが4人だったということで、mが2つでコブ4つに見えることからCammelになりました。

最初のプロダクト

Cammelとしての最初のプロダクトは上の投稿にもあるように、約1ヶ月(1週間1スプリント)で行いました。気になる方は上の投稿を読んでいただけると幸いです。

https://www.tyanio.shop/www.tyanio.shop

最初のプロダクトは「1ヶ月の期間はしっかり守って、それ以降は開発をしない」と決めていたのでかなり荒削りなプロダクトになってしまいましたが、やはり思い入れのある大切なプロダクトです。

2つ目のプロダクト

CodeTyperの開発が終了し、もう少し規模を大きくして新たにスマートフォン向けゲームを制作することになりました。

途中からメンバーも6人に増え、今回からはデザイン班とシステム開発班をもうけて開発を行いました。

ただ、アジャイル開発について学びながらの開発なのでいろんな問題にぶつかります。

  • プロダクトオーナー、スクラムマスター兼任問題
  • GitHubのカンバンをうまく使いこなせていない
  • 班を分けて分業はうまくできるけど、デザイン班もモブプロに参加してコードを理解できるようになった方がいいの...??
  • リファクタリング全然できてない
  • 見積もりが甘々(間に合わないならのばしちゃえ〜)

メンバーの院試もあり、約4ヶ月(計10スプリント)でひとまず区切りをつけ、その先開発を続けるかここで終わりとするかはみんなが戻ってからということになりました。

再始動

院試を無事終えたメンバーたちが戻り、まずはできていなかった10スプリントの振り返りをしました。

6人のうち3人が参加者、自分がメンターとして今年のenPiT合宿に参加した後だったので、より質の良い振り返りができたと思います。

そして、2つ目のプロダクトの開発は続行することがメンバーの総意で決まりました。 年末までの開発と期限を定め、2週間1スプリントで開発を行っていきます。

開発が終わるまで詳細はアウトプットしませんが、少しだけ10スプリントの成果をお見せします。

f:id:kugi_masa:20191019001038j:plain
なんのゲームかはわかるとは思いますが(笑)

まとめ

あらためて自分のチームについて記事を書きながら考えることができてよかったと思います。

そして、ここまで一緒に開発をしてくれているチームのメンバーに感謝です。

最後まで突っ走るぞ!!

やったこと

わかったこと

  • チーム開発は楽しい(定期)

次やりたいこと

  • 新プロジェクトのアウトプット

(※もし内容についてご指摘ありましたらコメントしていただけると幸いです。🙇‍♂️)

VIP2019参加レポート

はじめに

先日、埼玉で行われたビジュアル情報処理研究合宿(VIP合宿)に参加してきました。 研究室から毎年数人参加していることと、私が研究を始めたばかりで発表をするいい機会だということもあり参加を決めました。

合宿の概要は以下のリンクから

vipcamp.org

今年の参加者は約30人と例年より少なかったらしく、その分いろんな方々と満遍なくお話することができました。社会人セッションもあり社会人の方、大学教員の方ともお話できました。 (株式会社ウサギィさんのVTuberライブ面白かった!)

ポスターセッション

VIP合宿では研究成果にこだわらずに発表ができるというのが特徴の一つらしく、私のように具体的な研究成果がなく手法の提案や現在の進捗状況を共有している方もいました。

また、ビジュアル情報処理なのでCG関係の研究だけではなくCV、機械学習に関する研究をされている方もいらっしゃいました。

ポスターセッションでは1セッション約40分で4、5人の発表者が発表と質疑応答を行いました。 私は今回が初めてのポスターセッションでした。研究分野が異なる方に説明する際、限られた時間の中でどこまで詳しく、どういった流れで説明するかが非常に重要だと痛感しました。 質疑応答やレビューのときにもアドバイスをいただきましたが、聞き手を惹きつけるような発表を心がけるには「聞き手の言葉」で話すことが大事だと感じました。

他大学の学生と交流

enPitやインターンなどで最近は他大学の方々とも交流する機会が増えましたが、研究の専門分野が近い方々とお話するのは今回が初めてでした。研究や就活の話といった真面目な話だけでなく、地元トークで盛り上がったりして楽しかったです。(大学入学時を思い出しました笑)

まとめ

大学院に入学し研究を始めて約半年たちますが、研究の目標について改めて見つめなおすいい機会になりました。運営のみなさん3日間お疲れ様でした!!

やったこと

  • 初めてのポスターセッション
  • 他大学の学生、教員、社会人の方々と交流、意見交換
  • マシュマロタワー(アイスブレイク)
  • 逆ビンゴ(レクレーション)

わかったこと

  • 研究大変...(その分楽しいけど!)
  • 発表するときは「聞き手がわかる」を意識して

次やりたいこと

  • また発表の機会があれば挑戦したいです!

enPiT2019アジャイルチームキャンプに参加して

はじめに

昨年も参加したenPiTに今年はメンターとして参加しています。 箱根で行われた5日間のアジャイルチームキャンプに参加してきました!

スケジュール

1日目 アジャイル開発とスクラム & ワークショップ

午前中は座学でアジャイル開発とスクラムに関する講義がありました。

f:id:kugi_masa:20190905202230p:plain
アジャイル開発とスクラム
午後は折り紙や画用紙などを使って「何らかの機能を持つオブジェクト」をお題にスクラムの実践でした。
f:id:kugi_masa:20190905202514j:plain
去年のenPiT合宿でもやったやつ!

2日目 TDD入門 & TDDワイワイ会

午前中はTDDの座学、午後は実際にCyberDojoを使ってチームごとにTDDワイワイ会を行いました。

この日から1チームのファシリテーターを任されることに...!!

緊張しましたが、優秀なチームだったということもあり、大方順調に進めることができました!

f:id:kugi_masa:20190905203146j:plain
PythonFizzBuzzとGoでprint-diamond

あとLT会も夜にありました。 初LTを何とかやりきることができました。

f:id:kugi_masa:20190905203305j:plain
アウトプットは大事!
f:id:kugi_masa:20190905203524j:plain
深夜ワイワイ(print-diamondできた!!)

3日目 & 4日目 スクラムによるプロダクト開発

1スプリント150分で 3日目の午前でプロダクトデザイン、午後で2スプリントと 4日目1日かけて3スプリントの合計5スプリント、

お題:「自動販売(的なもの)」

で各チーム開発を行いました。

1日目は担当チームのスプリントプランニングのサポートをしたり、デモのファシリテートをしました。

f:id:kugi_masa:20190907152945j:plainf:id:kugi_masa:20190907152958j:plain
普通にドリンクを売る自販機や、化粧品の自販機などさまざま

2日目はほとんど各チームに任せ、追加のお題を考えたり、チームワイワイのみなさんとモブプロしたりしました。

5日目 全体ふりかえり

最終日はチームごとに、この5日間の学びや感じたことなどを時系列に並べふりかえりを行なっていました。

どのチームもこのキャンプで得たことを糧に夏以降楽しく開発してもらいたいです。

まとめ

今回が昨年に続き2回目のキャンプになりました。アジャイルの知識がさらにブラッシュアップされた気がします!何より、メンター陣のみなさん、チームワイワイのみなさんと一緒にワイワイできたのが本当に楽しかったです。ありがとうございました‼︎

やったこと

  • メンターとしてenPiT2019アジャイルチームキャンプに参加
  • 初のLTを体験
  • TDDYYχのファシリテート
  • チームワイワイの方々と

わかったこと

  • ファシリテートは大変、でも楽しいし学びがたくさん
  • (あらためて)アウトプットは大事
  • ボドゲはやっぱり楽しい

次やりたいこと

  • 夏以降の開発で広島の2チームをしっかりサポート!!
  • 自分のチームの開発で今回の学びを活かす(スクラムマスター頑張るゾォ!)

"Ray Tracing in One Weekend"(1週間レイトレ)をやってみた

はじめに

レンダラーの基本を勉強しようと思い、"Ray Tracing"で調べていると、 この"Ray Tracing in One Weekend"が見つかりました。

github.com

題のように、本当に週末に時間を決めて集中して"One Weekend"で取り掛かれたらよかったのでしょうけど、自分の場合はゆっくり2ヶ月ぐらいかけてしまいました...

In One Weekend の他にも

  • The Next Week
  • The Rest Of Your Life

があるようです‼︎

In One Weekend でやったこと

github に PDFがあがっていたのでテキストに沿って進めていきました。 AmazonにはKindle版もあるようです。 また原文を日本語訳してる方もいらっしゃいました。 「Raytracing in One Weekend」を翻訳しました。 - ずっと君のターン

目次は以下のようになっています

  • Chapter0 : Overview
  • Chapter1 : Output an image
  • Chapter2 : The vec3 class
  • Chapter3 : Rays, a simple camera, and background
  • Chapter4 : Adding a sphere
  • Chapter5 : Surface normals and multiple objects
  • Chapter6 : Antialiasing
  • Chapter7 : Diffuse Materials
  • Chapter8 : Metal
  • Chapter9 : Dieletrics
  • Chapter10 : Positionable camera
  • Chapter11 : Defocus Blur
  • Chapter12 : Where next?

扱えるオブジェクトは球のみですが、レイトレーシングを基礎から順を追って学ぶことができ、とてもわかりやすい内容でした。

材質も拡散面だけでなく、金属面や光の屈折を考慮したガラス球なども表現できます。

実装についてはC++で実装されていました。 今回はコードを追っていくだけだったので、 GUIなども設計してみたいなーと思いました

また、1度だけでなく、不安になったらまたこの本に立ち返ってみようと思います

タピオカ

f:id:kugi_masa:20190829215348p:plain
タピオカ(正面)

f:id:kugi_masa:20190829215435p:plain
タピオカ(上から)

茶色おっきな球をミルクティーに、ランダムな位置に生成した黒い球をタピオカに見立てた画像です

かなり雑に作ったのでもう少しそれっぽく作れたような気がしないでもないです

まとめ

やったこと

  • Ray Tracing in One Weekend を(だいぶのばしのばし、時間をかけながら)やってみました
  • タピオカミルクティーを作りました 👈怒られそう

わかったこと

  • 基本は大事。

次やりたいこと

  • GUIから操作できるようにしてみたい
  • Ray Tracing The Next Week