ゴマちゃんフロンティアV2へようこそ!

本ブログはゲーム統合開発環境「Unity」を使用したゲーム開発の日記です!
ときどきイラストを描いたり、写真を交えた日記も書いています!

【開発環境】

OS Windows7 SP1 64bit
CPU Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
メモリ 12GB
グラボ GeForce GTX 645
使用ソフト Microsoft Visual Studio(C#)
Blender
GIMP

旧ブログの記事について

本ブログは2015年9月にFC2ブログから移転しております。
過去記事につきまして、「開発方針が変わっている」「Unityの仕様が現状と異なる」等、そのままでは不適切と判断しました。
なので、知識・技術面で重要そうな記事のみをピックアップし、再編集して新ブログに追加している段階です。
Googleのインデックスの関係上、検索内容とブログ内容に差異が発生する可能性がありますので、ご了承ください。
また「前のブログのこの記事読みたい!」というものがありましたら、ご連絡頂ければ追加致します!

お問い合わせフォームはこちら

【Blender】boneが逆回転してしまう現象の私的な調査メモ

というわけで、前に続き Blender に関するお話です!
今回はアニメーション設定時に bone が逆回転してしまう現象について調べてみました!

特に縦横にキャラクターを回転させるアクションを作った際に起こりがちです。
自分のように頭身の低いキャラを使っている場合はモロに響く問題です。

どうやら「Quaternion」が関係してくる話のようです。
何とかならないか調べてみたので、その内容について書いておきます!

※書いている人が数学全然ダメなので、問題ないという保証はありません。
試す際は自己責任で!

逆回転するフレームを修正したフレームで登録する

逆回転する部分を手動で補完し登録することで、「内部的に逆回転しているが描画されない」ようになります。
力技っぽいアプローチですが、Quaternion の回転制限を受けずに修正できます。

shot2ss20161112234715154

実際にやってみるとなかなか大変です。
「10フレームかけて1回転する」アニメーションを直す場合でも、逆回転する度にポーズを修正してキーフレームを登録する必要がある上、手動なので動きもぎこちなくなってしまいます。
とは言え、Quaternion にした状態で180度以上回転させるにはこれしかないようです。

boneのRotationModeを変える

そもそもこの現象は、Quaternion が -1~1 の間しか表現できないため、その最短の補完を行う際に起こるみたいです。
角度でいうと -180~180 ですね。
これ以上に回転を掛けようとしなければ発生しないようですが、キャラクターの回転アクションを180度以内で収めるのは無理があります。

このあたりのお話は Unity の公式マニュアルに書いてあります。
https://docs.unity3d.com/ja/current/Manual/QuaternionAndEulerRotationsInUnity.html
https://docs.unity3d.com/ja/current/Manual/AnimationEulerCurveImport.html

shot2ss20161112235006561

で、Blender の bone はデフォルトの回転モードが Quaternion になっているそうです。
これを Euler に切り替えればOKです。

テスト用に作ったウサギちゃんで試してみます。

20161113_02

20161113_01

上は回転モードが Quaternion、下は Euler で、X軸に220度ほど回転させた際の動きです。
Quaternion では逆回転して戻ってしまいますが、Euler ではしっかり1回転してくれます。

shot2ss20161112235208705

この状態で Unity にインポートした場合、Unity 側で自動的に Quaternion のキーフレームを考慮したモーションに修正してくれるようです。
リサンプリングした結果が厳密ではない場合、「Resample Curves」のチェックを外すと Euler のキーフレームをそのまま使えるようです。

ただし、Euler を使うと「ジンバルロック」という問題が発生するようです。
3方向の特定の軸が重なった場合に2方向にしか自由に動かせなくなる・・・的なものらしいですが、自分もよく分かりませんorz
ぐぐった感じでは、1~2軸のみ動かす場合は Euler でも問題ないようです。
Blender の場合は bone ごとに回転モードを選択できるため、逆回転しうるものだけ Euler にするのも有りかもしれません。

shot2ss20161112235339520

また、回転モードを変えた bone はキーフレームを設定し直す必要があります。
(Rotation だけ黄色くなっていない=キーフレームが設定されていない)
モーション作成中に変えると面倒なので、アニメーション系の作業に取り掛かる前に決めておくのがよさそうです。

まとめ

そんなわけで、Blender で bone が逆回転する現象について調べてみました!
かなり難しい話題なので、また何か分かったら考えてみます。

日本平動物園(とその周辺)に行ってきました!

というわけで、3エントリー連続で旅日記!
最早「ゲーム開発日記」が詐欺のようなブログです。

今回は日本平動物園とその周辺に行ってきました!
内陸県民故か、海に憧れるのもさることながら、日本平動物園にアザラシがいるという情報を見過ごすわけにはいきません。
前々から行ってみたかったこともあり、有給をもらって平日に行ってきました。

cimg2163_r

山梨から国道52号線をひたすら南下し、新清水ICから東名高速に乗りました。
日本平周辺までは片道2時間ほどです。
そろそろ長距離ドライブや高速運転にも慣れていきたいところなので、その練習も兼ねていたりします。

何故か途中から(カーナビのせいで)県道10号線に入ってしまい、無駄に狭い道を通る羽目になってしまいました。
素直に国道52号線を通るほうが確実で安全です。

三保の松原

日本平動物園には午後行きたいため、まずはその周辺の観光です。
三保の松原と言えば、日本三大景色とまで言われる場所です。

cimg2167_r

cimg2174_r

cimg2171_r

松は有名なだけあって大きくて立派です。
風景的には曇りだったので富士山が見えず、残念ながら微妙でした。

cimg2172_r

実は浜辺まで出たのは人生で初めてだったりします。
太平洋の水平線に感動を覚える内陸県民です。

日本平山頂

cimg2188_r

三保の松原から日本平パークウェイへ向かいました。
日本平パークセンターに駐車場があります。

cimg2194_r

山頂からは先ほどの三保半島と松原が見えます。
上から見ると「半島」という感じがしますね。

cimg2208_r

日本平パークセンター側は太平洋が見えます。

景色自体は非常に良いのですが、いかんせん曇り空とは合いません。
紅葉も散ってしまったのかあまり見えませんでした。
三保の松原もそうですが、来た時期とタイミングが悪かったようです。

日本平動物園

cimg2215_r

本日のメインにして本命です。
お目当てはアザラシですが、純粋に動物園自体好きなのでいろいろ見てきました!

日本平山頂方面から日本平パークウェイを通って行きましたが、日本平動物園入り口が何故か右折禁止だったので、下の方まで降りてUターンすることになってしまいました。
入場料は600円ちょっとですが、駐車料も600円とられるので、1人で行くとそれなりにお金が掛かります。

cimg2216_r

cimg2218_r

なかなかシャレオツな自販機ですね!
ヤクルトが売っている自販機って何気にレアではないでしょうか。

cimg2221_r

cimg2221_1_r

レッサーパンダです。
「パンダ」とだけ言うとジャイアントパンダと間違えられるため、小さいという意味で「レッサー」パンダと名付けられたそうです。
どの動物園いっても人気者なイメージですが、ここのレッサーパンダも活発で可愛かったです。

cimg2263_r

cimg2264_r

ゴマフアザラシです!
色々な角度から見られるように工夫されており、特に筒状の水槽を上下するアザラシは筆舌に尽くしがたいです。
ここだけで30分ほど釘付け状態になってしまいました。

cimg2272_r

cimg2277_r

ライオンのオスとメスです。
オスがひたすらメスの毛づくろいをしていました。
随分と仲のいいカップルですね。

cimg2293_r

cimg2300_r

モルモットとウサギです。
特定の時間にふれあい広場にいくと触ることができるようで、ちょうど良い時間に行くことができました。
自作ゲームのウサギもどきとは違い、白くてモフモフで可愛かったです。

cimg2305_r

cimg2308_r

べネットアカクビワラビーです!
カンガルー好きとしてはワラビーも非常によろしいです。
ずっと草を食べていましたが、1匹だけ遠くで黄昏ていました。

cimg2313_r

シカです。
自分が行った瞬間に振り向き、そのままずっと見られていました。
正に「こっち見んな」という状態です。

cimg2330_r

サイです。
ちょうど2頭が頭同士をぶつけあって(?)いました。
ちなみに左がオスで、右がメスらしいです。

cimg2350_r

キリンさん!
昔はキリンが最も好きな動物だったのですが、アザラシにとって代わられてしまいました。
今でも動物の中では割と好きなほうです。

ぐるっと回ったところで、15時から始まるアザラシの餌やりを見ました。

cimg2368_r

cimg2372_r

飼育員にタッチして餌をもらっていました。
トレーニングの一環らしいです。

cimg2376_r

3匹が頭を出して餌待ちしている姿は微笑ましいですね。
ちなみに並び順は一定で、年功序列のようです。

餌やりが体験できるとのことで、自分もサバを投げてみました!
写真には撮れませんでしたが、ダイレクトにガブッと食べていました。
平日で人が少なかったからこそ出来たのかもしれません。
アザラシ好きとしては貴重な体験でした!

清水パーキングエリア

昼食を抜かしていたので、帰りに清水PAに寄ってみました!
「パーキングエリア」という割にはしっかりした建物があり、レストランやショップも充実していました。
その中でチョイスしたのはこちら!

cimg2380_r

「富士の卵を使ったとろとろ親子丼」です。
自他共に認める鶏肉好きなので、こういう親子丼があると飛びついてしまいます。
グルメレポートは得意ではないので一言でまとめますが、「超」美味しかったです。

cimg2382_r

また、親へのお土産として「特濃牛乳シュークリーム」を買ってみました。
外はパリパリ、中はふんわり濃厚クリームです。
シュークリーム故に長持ちはしませんが、保冷剤で4時間くらいはいけるそうです。

まとめ

そんなわけで、日本平の方に遊びに行ってきました!
県外まで出かけるのは大変ですが、斬新で面白い発見がたくさんあります。
時間と心に余裕ができたらもっと遠出したいです。

山中湖紅葉祭り2016に行ってきました!

というわけで、前回に引き続き「行ってきました」シリーズです。
紅葉の秋!ということで、「山中湖紅葉祭り」へ行ってきました!

cimg2154_r

場所は山中湖の「旭日丘湖畔緑地公園」です。
遠い上に夜行くことになったので、事前に十分な休憩を入れてから出かけました。

夜に行ったのでライトアップされています。
ただ全体的には紅葉手前の色合いのものが多く、見頃とは言えないかなーというレベルです。
6日でライトアップ自体も終わってしまうので、今年の紅葉自体が遅かった感があります。

ということで、以下ひたすら紅葉の写真です!

cimg2111_r

cimg2122_r

cimg2132_r

cimg2135_r

cimg2138_r

cimg2161_r

ぐるっと回った感じでは、夜より昼に行ったほうがよさそうな印象です。
河口湖の紅葉回廊と異なり湖畔なので、山中湖とセットで見たほうが映えそうです。

そんなわけで、山中湖紅葉祭りに行ってきました!
去年の河口湖、今年の山中湖に続き、来年もどこか見に行きたいですね!

PHPカンファレンス2016 (関東) に行ってきました!

というわけで、やや久々の行ってきましたシリーズです。
今日はプログラマっぽく、PHPカンファレンス2016に行ってきました!
こういった技術系のイベントは行ったことがありませんでしたが、今後ITな生活を送る上では重要かと思い、申し込んでみました!

山梨発で、朝10時までに大田区産業プラザに到着する必要があります。
いつも通り高速バスで行きますが、身延線だと間に合わないため、竜王駅から出ている便で向かいました。

cimg2100_r

京急蒲田駅から産業プラザまでは徒歩5分ほどです。
大きな建物なので分かりやすかったです。

cimg2102_r

1Fにセッション用スペースとスポンサーのブースがありました。
セッションの合間に軽く回ってみました。

cimg2103_r

PHP技術者認定試験のブースです。
最近受けて準上級になったので印象深いです。

cimg2104_r

↑のうまい棒です。
ペチゾーが欲しいところでしたが、くじはハズレでした。
そんな運命力はなかったようです。
合格体験記のものと同一らしいので、書いて送って獲得したほうが楽ですね。

cimg2106_r

レバテックのブースにあった問題です。
パッと見ではかなり厳しい…というかusort()がある時点で半分諦めていたりします。
その場で答えられた人はなかなかのPHPerかと思われます。

セッションやLTの内容は割愛しますが、「ほほう!」というものもあれば、「ふーん…」というものもありました。
概念すら知らなかった技術や言語があったので、そういう意味では有意義でした。
ただ一口にPHPといっても、フレームワークからツールまで幅広いので、全てを把握するのは困難ですね。

cimg2108_r

上は最も印象に残った Cygames のセッションの様子です。
ホールに入りきらず、自分も外側に立ってみていたような状態です。
運営側の工夫やサーバ構成などが聞けたので面白かったです。

そんなわけで、短めですがPHPカンファンレス2016にお邪魔してきました!
今後もこういった技術系のセミナーやイベントに顔を出していきたいところです。

【Blender】アニメーションデータを別のBlenderファイルにコピーする方法

というわけで、今回は Blender のファイル間コピーに関するお話です!

shot2ss20161029191337676

自作ゲームキャラのモデルを別ファイルで作り直したのですが、アニメーションデータのコピー方法が分かりませんでした。
ぐぐっても「キーフレームのコピー」とかそんな話題が多いですorz
Blenderのアペンド機能でいい感じにできたので、メモしておきます!

shot2ss20161029191406444

ちなみに作り直しているのは、本ブログで度々登場する「マリンパ」というウサギっぽいキャラです。
適当に作ったモデルで通していたので、リデザインしてモデリングし直したところです。
ある程度完成したら作り方などを紹介しようと思います!

ボーンのコピー

ボーンに限った話ではありませんが、単なるオブジェクトであれば「Blenderを2つ起動→片方でコピー→片方でペースト」でいけます。
Ctrl+C でコピーして、Ctrl+V で貼り付け・・・なんてこのブログを見ている方ならご存知かと思います!

shot2ss20161029191731003

shot2ss20161029191745003

ただし、マテリアルやテクスチャが付いたオブジェクトをコピペした場合、それらの情報も持ってきてしまいます。
再利用するなり、データブロック削除 (Shift+×クリック) で整理しましょう。
特にオブジェクトやマテリアルの名前が重複して接尾辞 (001とか) が付いてしまっている場合があるので、その手の命名に神経質な人はご注意下さい。

アニメーションデータのコピー

ボーンのコピーは出来ましたが、アニメーションデータはくっ付いてきてくれません。
Blender にはアペンドという機能があり、これを使えば他のblendファイルのデータを持ってこれるようです。
元ファイル側でエクスポート等を行う必要がないので楽々です。

File→Append からインポートしたい.blendファイルを選択します。

shot2ss20161029192226650

.blendファイル内に存在するデータの一覧が出るので、インポートするデータを選択します。
かなりいろいろ選択できるみたいです。

shot2ss20161029192348171

「Action」内にあるアニメーション名を指定することで、キーフレームごとインポートされます。
Shiftキーを押しながら選択することで複数選択も可能なので、一括でのインポートもできます。
選択したデータはオレンジ色になります。

shot2ss20161029192431241

選択したら右上の「Append from Library」を選択します。
ActionEditor でアニメーションがインポートされているか確認しましょう。

shot2ss20161029192829560

問題なさそうです!
インポートしたアニメーションはFボタン (上画像の赤い丸) を押して関連付けておきます。

まとめ

そんなわけで、Blenderファイル間でのデータコピーについて調べてみました!
特にモデルやアニメーションのコピーは多用しそうなので、しっかり覚えておきます。