Anyportraitでゲームに用いた実装
これはUnity アセット真夏のアドベントカレンダー 2020 Summer!9日目8月9日の記事です。
ゲームに用いたスクリプトを用いる実装について書きます。
中級者向けの記事になります。
AnyPortraitとはキャラなどに骨などを設定してアニメーションさせるアセットです。
近いアセットやソフトでいうとAnima2DやSpineなどです。
できることの一例
ボーン作成、メッシュ変形、物理動作などなど
初心者向け解説とかもしたかったのですがちょっと量的にでかくなりそうだったので割愛します。
エディタが日本語対応していたり公式から日本語のチュートリアルが出てたりするので公式おすすめ
公式HP
https://www.rainyrizzle.com/anyportrait-jp
とても素晴らしい
開発環境
Unity2019.4.4f1
何をしたか
スクリプトで設定した座標に頭や座標を向かせる
アクションシューティングゲームとかでよくある照準の方向に腕や頭を向かせるやつ
使用した機能
IKコントローラー設定
position・・・エフェクター骨まで移動させる(ボーンの移動範囲外には移動しない)
LookAt・・・エフェクター骨の方向に回転させる
参考資料
公式チュートリアル:骨のIKコントローラ
https://www.rainyrizzle.com/apam-boneikcontroller-jp
やりかた
- エフェクター骨用のボーンを作成 今回は親ボーンを外しておく
左ウィンドウからメッシュグループを選択 - 右のメッシュグループウィンドウから骨を押して骨を編集を押す
- 移動・回転させたいボーンを選択
- 右のIKコントローラーの設定をNoneからLock Atまたはpositionを選択する(今回は頭はLockAt 両腕はPositionを選択した)
- エフェクター骨(移動させる・向かせる場所になるボーン)を選択
-
デフォルトのFK/IK重量を1にする これが0だとOFFで1だとON(制御パラメーターでスクリプトでONOFFやアニメーション毎にONOFFなどもできるがここでは割愛する)
- ベークする
- こんな感じで狙いたいゲームオブジェクトを作成する今回はTargetという名前を付けたゲームオブジェクトを作った
-
こんな感じのスクリプトC_CharaMainを作ってキャラクターのゲームオブジェクトか何かに付ける
using AnyPortrait;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class C_CharaMain : MonoBehaviour
{public apPortrait m_CharaApPortrait;
public Transform m_TargetTrans;
// Start is called before the first frame update
void Start()
{}
// Update is called once per frame
void Update()
{
m_CharaApPortrait.Play("Move", 1, apAnimPlayUnit.BLEND_METHOD.Interpolation, apAnimPlayManager.PLAY_OPTION.StopSameLayer, true);m_CharaApPortrait.SetBonePosition("Target", m_TargetTrans.position, Space.World);
}
}SetBonePosition("Target", m_TargetTrans.position, Space.World);でエフェクター骨用のボーンの座標をスクリプトから移動してる
-
付けていく
こうなる
Targetゲームオブジェクトの方向にキャラの頭が向いて腕が移動するまでができた
回転制限がないので頭が一回転する - 頭の角度を制限
骨の編集画面からボーンを選択して無効な制約をクリック
出てくるピンク色の線が制限角度なのでこれを見ながら角度の最小値最大値を設定する -
完成
あとはマウスでターゲットを動かすなりキャラを動かすなり
現在AnyPortraitを使用してこういうゲーム開発しています。
おすすめです。
朝はどこのPVも作った#wanderdawn #朝はどこ #pixelart #gamedev pic.twitter.com/Wrcf6N269P
— ホロウさま🍣ゲーム開発ドット絵イラスト3Dやってるすし (@tolune) 2020年7月31日
Unity1Weekを振り返る
はじめに
unity1weekを終えて現在スマホ移植やアップデートなどの延長戦に突入中のホロウ様です。
2018/11/19から2018/11/25日にかけて開催された第10回Unity1Week「10」の振り返りや感想などを書いてみます。
参加した動機
前々からUnity1Weekの存在は聞いていた
現在開発中の朝はどこのつなぎとして最終的にスマホゲームとしてリリースできるゲームを作りたい
なんか楽しそう
お題
「10」
開発したゲームの紹介
製作ゲーム
ネコノイア
ジャンル
コンセプト
お題は10ということで敵かキー、合わせて10個壊せば次のマップへ
ヘンテコ、超単純操作で高いゲーム性、説明したり説明見せたりしなくてもわかるくらい分かりやすく、気持ちよく
使用アセット
ProCamera2D
カメラの移動や揺れなどに使用。敵が出てきた際に画面が収まるように調整されるのもこのアセットのおかげ
DOTween
アイテムの取得メッセージなどの演出に使用
InControl
操作に使用。タッチでもキーボードでもがお手軽に実装できる(お手軽とは)
Odin
TextMeshPro
そんなこんなで参加表明
今回は参加する予定╭⁽˙͡˙̮ ⁾╮
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月18日
#Unity1week
1日目
休憩時間に設定を練る
メインで開発しているゲームがキリの良いところまで行ったら手を付けようと思ったが終わらず構想を練るだけで終わる
ヘンテコな猫みたいなの操作して多人数で競い合うゲームとか絶対シュールで楽しいだろーとかかなり直感でゲームを構想し始める
構想と軽い設定練った
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月19日
1week頭のおかしいゲーム作る予定
猫型ウイルスのおはなし
ネットゲームの機能勉強して謎猫が入り乱れるゲーム作りたい
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月19日
2日目
メインで開発しているゲームのシステムが完成せずそろそろUnity1Weekに手を付けないと不味いので中断し開発開始
休憩時間に作成した開発資料を元に作り始める
構想
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月20日
タイトルはネコノイアに決まった
というか武器自動生成が完成しなくて未だに進めなくてやばいから
一旦中断してこっち作り始める#unity1week pic.twitter.com/5Y8rd4surS
20分ほどでキャラ完成
ひとまずのキャラ素材完成 pic.twitter.com/8vdLIgaB5F
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月20日
弾完成#unity1week pic.twitter.com/XyaBCa66am
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月20日
世界観の方向性が決まる
セキュリティウォールはサイバー感バリバリにカッコよくするかー、、、
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月20日
ずっとゲーム画面の進捗を上げれていないので取り急ぎゲーム画面を仮で作る
まだなにもスクリプト入れてないけど
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月20日
サイバーっぽいマップ軽く作っただけでネコノイア既にやばい#ネコノイア#unity1week pic.twitter.com/T5XCZiQ98a
3日目
移動などの再開発めんどくさいのでメインで開発していたゲームから基本システムを流用
ボーンアニメーション関連などの必要のない部品をそぎ落とす
手順
メインのゲームのリソースをアセットとしてエクスポート
ネコノイアにリソースのみインポート
メインのゲームで使っていたストアアセットをインポート
ついでに使わないアセットもそぎ落とす
最終的にこんな感じになった
進捗だめです。#ネコノイア#unity1week pic.twitter.com/ETUKESzvNR
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月21日
4日目、5日目
扉のキーを10個破壊すると開いて次のマップへというルールを考えていた
1Waveが長いとだるくなりそうだと考え敵とキーどちらでもカウントされるように
一応ルールというかゲーム内容は考えてたのだけど10個もあると無駄に長くなりそうだと思ってたけど打開策考えた
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月22日
基礎の部分できた10個キーを破壊するとゲート解放#ネコノイア#Unity1week pic.twitter.com/1kRAwSjlRd
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月23日
こんな感じで敵出現エリアにぶつかると指定した出現地点から敵が出現しキーリストに追加される
キーか敵で構成されている中から10体倒したらゲート解放というシステムを二日かけて作る
ゲームとしての完成系が見えてき始める
クリアしたらエンドレスに次の面が呼ばれるようになった
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月23日
やっとゲームっぽくなってきた
あとはステージのバリエーション増やして進化システムつける#Unity1week pic.twitter.com/gZTIploeMS
妖怪WebGLビルド出来ない
WebGLビルドがうまく行かなくて原因を洗い出してる、、、
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月24日
プロジェクトを作り直して余計なアセットを消したら無事動作
6日目最終日
Unity1Week作品にオンラインランキングつけるといいといったツイートを見たので取り急ぎオンラインランキングを実装
でけた
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月25日
11/25日開催のUnity1week投稿してきました
PCで20時から遊べます
敵かキーを10個ひたすら壊していくシューティングゲームです。#ネコノイア#unity1week pic.twitter.com/qbkh13WwyW
1週間を振り返ってみて
Unity1Weekが初めてなのとこういったゲームジャムでプログラマとして参加すること自体が初めてだったので内心びくびくでした。
沢山の人が遊んでくれたり感想をくれたり何度も遊んだりしてくれてとても新鮮で幸せで嬉しかったです。
公開初日に他の方のゲームを見てTwitter投稿機能の宣伝力を思い知りました。
後から実装はしましたが出遅れた感を感じたので次回は初日からつけようと思います。
あと難易度調整は早い段階から設計しておくべきだったなぁ・・・
その後ツイート機能を追加
他にも感想を元にアップデートを続けていく
画面が激しくて敵や自機を見失いやすかったのを改善と
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月25日
ツイート機能、リザルトを追加、あとタイトルに戻らずそのままリトライできるようにしましたhttps://t.co/LBufQPavbf#unity1week #ネコノイア pic.twitter.com/ucVp1hOxBx
リザルト追加
貴方の猫型ウイルスは階層 第6層で駆除されました。 獲得したデータ: Score 139321 https://t.co/LBufQPavbf https://t.co/pcC8yFsJi0 #unityroom #unity1week
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月25日
難易度上昇システム追加
敵かキーを10個破壊するシューティングゲーム
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月28日
ネコノイアアップデートしました
難易度レベルシステムが追加されました
あとグラフィックが強化されました
現在プレイ可能ですhttps://t.co/LBufQPavbf#unity1week pic.twitter.com/Tt1wM5oXiq
キャラ進化システム実装
一応進化でキャラの見た目だけ変わるところまで出来た、、、開発に疲れたのでちょっと茶でも飲んで瞑想する
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月29日
その後ショットが進化するシステムの続き書いていく
進化システムのシステム部分は完成したけど弾設定がつよすぎてわらう
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月30日
ちょっと調整が必要かもしれない pic.twitter.com/joFs1wqNMY
【アップデート】進化システム実装しました!
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年11月30日
現在進化先は固定ですが今後増えていきます
ヘンテコなシューティングゲームです!ぜひ
感想とか要望とか待ってます!
ネコノイア | 無料ゲーム投稿サイト #unityroom https://t.co/LBufQPavbf #unity1week
今更ですがネコノイア進化システム更新しました
— ホロウ様@朝はどこ開発版公開中 (@tolune) 2018年12月1日
進化していく猫型ウイルスを操り敵やキーを10個破壊してセキュリティーウォールを突破して奥底を目指していくシューティングゲームです!
ネコノイア | 無料ゲーム投稿サイト #unityroom https://t.co/LBufQPavbf #unity1week pic.twitter.com/2vQ162H2bB
今後も進化先やストーリー追加などのアップデートとスマホリリース予定です。よろしくお願いします!