Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。12今回はUnityのスポットライトを使って懐中電灯を作成し、キャラクターの手に持たせてみたいと思います。Lightについて見ていきます。Lightが設置してあります(2Dでプロジェクトを作成していなければ)。このライトは太陽と同じような効果があり全体を照らしています。GameタブをSceneタブに切り替えるとライトがどの辺りにあり、どの方向を照らしているかがわかりやすいです。ライトの位置や角度を調整しどのような変化があるか試してみます。Lightの場合は位置は関係なく、角度だけが影響するみたいですね。最初から設定をいじると元に戻せなくなるので、ゲームプレイボタンを押した後でライトを選択し、インスペクタ上から値を変更します。ゲームプレイ中にした設定の変更はゲームプレイ中でしか反映されないので、ゲームを止めると元の設定に戻ります(変更するものによっては変更が反映されてしまうものもあります)。ゲームをプレイしながらTransform等の値を調整すると目的の値を探したい時などに便利です。Lightのパラメータを調整します。上のようにColorを変更すると赤い夕陽を表現することも出来ます。スポンサーリンク懐中電灯を作成する前にキャラクターの階層を見る懐中電灯を持たせる「masasi」君の階層は下のようになっています。TypeをHumanoidにした「masasi」君の階層を見てみると、ボーン(骨)の階層が出来ており、特定の個所を指定出来ます。「masasi」君の右手に懐中電灯を持たせてそこにスポットライトを設置すれば「masasi」君の動きに応じて動く懐中電灯が出来そうです。Unityの3Dオブジェクトで自前の懐中電灯を作成する無料で懐中電灯を探したんですが、なかったので自前で作ります。Object→Cylinderで筒状の形を作り名前を「FlashLight」とします。PositionのXを2、Yを0、Zを0RotationのXを90、Yを0、Zを0ScaleをXを0.05、Yを0.1、Zを0.05とします。ここで設定したPositionは懐中電灯を作る時に他のゲームオブジェクトと重なって調整しづらくない位置に設定しただけで後で「masasi」君の手の位置に移動させます。懐中電灯にスポットライトを取りつけ調整する懐中電灯の子要素にスポットライトを配置する為、FlashLightゲームオブジェクトを選択した状態で右クリック→Light→SpotLightでスポットライトを作ります。上画面のようにSpotlightのTransformのパラメータを修正し、懐中電灯(筒のオブジェクト)から光を発しているように調整します。光の強さや照らす範囲はSpotLightのインスペクタ上で変更が可能です。Angleで照らす角度(範囲)、Intensityで光源の強さを変更出来ます。Colorで色合いを変えると特殊な懐中電灯が出来上がります。懐中電灯の子要素にライトを設置しているので、懐中電灯の動きに合わせて光の位置も動くようになります(子要素は親要素からの相対位置になる)。いうことは、この懐中電灯を「masasi」君の手の所へ持っていけば懐中電灯は手の動きに合わせて動くようになります。(懐中電灯は手の子要素になるので手の動きに合わせて相対的に懐中電灯も動きます)なんかわくわくしますねぇ!(わたくしだけ?)キャラクターの手に懐中電灯を持たせるそれでは「masasi」君の手へ懐中電灯「FlashLight」をドラッグ&ドロップして持たせ、少し傾きや位置などを調整しましょう。インスペクタ上で数値を指定して調整する事も出来ますが、Sceneタブにして懐中電灯オブジェクトの赤、青、緑の矢印をマウスで移動させる事でも調整出来ます。ゲームオブジェクトの移動に関してはUnityを起動後の画面を細かく見てみるUnityを起動後の画面とメニューを細かく見ていき、それぞれのメニューでどんなことが出来るのかを学んでいきます。14:38を参照してください。Handという名前になっているのでその子要素にFlashLightをドラッグ&ドロップして移動させます。移動させたら位置や角度を調整してください。懐中電灯を正確にキャラクターに持たせたい時はUnityでキャラクターに正確に武器を持たせるUnityでキャラクターの手の位置に正確に武器を持たせるように調整します。21:05を参照してください。なんとなく持っている位置が決まったら、実行ボタンを押して確認してみます。LightをOffにしておきます。Unityの実行ボタンを押して確認してみます。見事に手の動きに合わせて懐中電灯が動き、スポットライトの光も動いています。これで懐中電灯を作成し、キャラクターに持たせる事が出来ました。懐中電灯を持たせたキャラクターの問題点しかしいくつかやらなければいけない事が残っています。それはキャラクターの歩くアニメーションが懐中電灯を持って歩いているものじゃない事です。アニメーションを作成する段階でキャラクターの右手が何か握っているようにしなければなりません。自然なアニメーションにするには懐中電灯を前に向けて歩いているようにしたいところです。物を持たせて歩いているのであれば物を持ったアニメーションを作成すれば持っている物を変更するだけでいいので、他の物を持って歩く時も同じアニメーションで代用出来ます。手だけを別のアニメーションにしたい場合はUnityのレイヤー、アバターマスクを使って体の一部分を別のアニメーションにするUnityで体の一部分だけ別のアニメーションに変更したい場合はAnimatorControllerのレイヤーとアバターマスクを使う事で実現出来ます。22:30を参考にしてください。懐中電灯をキャラクターの手に持たせると、勝手に手の動きに合わせて動いてくれるのって便利ですよね。3Dゲームを作った事がなかった頃はどうやって武器をキャラクターの動きに合わせて持たせたらいいんだろうか?とか考えるだけで頭がパンクしそうでしたが、実際作ってみるとこんなに簡単に持たせる事が出来るんですね!Unityの凄さを実感しました。Assetsフォルダ内にパッケージファイルを入れておくとImportPackageから取り込みが出来るみたいです。Assetsフォルダがない場合はフォルダを作成しそこの中にパッケージファイルを入れるとメニューにそのパッケージが表示されました。Assetsフォルダの中にパッケージファイルがなかったのだと思います。Assetsフォルダに入れるとImportPackageから取り込めそうです(バージョン違いで出来ないかもしれませんが・・・)。Assetsの個別ダウンロードが可能でダウンロード出来ますが、ファイル名が『UnityStandardAssetsSetup-Unityのバージョン.数値』という形式になっています。数値の所をexeに書き換えて実行するとStandardAssetのインストールが出来るようです。Files\UnityであればUnityのフォルダ名を別の名前にしておくとバージョン違いのインストールで前のバージョンが上書きされる事はないみたいです。わたくしは5.3.5f1だとUnityの画面と動作がおかしくなりましたので、5.3.4f1と5.3.5f1を両方インストールしてます。Packageしかありませんよ。Asset等もインストールする設定にしておけば大丈夫なようです。Storeからもダウンロード出来るみたいですね。申し訳ないのですが、Unity自体の動作云々の内容に関してはUnityさんに聞いた方が早いかと思います。20:28わたくしは5.3.5f1にアップデートした所作ったプロジェクトが開けなくなった為5.3.4f1に戻しました。ご自分で作成したCube等を設定した後にSceneを保存したら↑のようにAssetsエリアにSceneファイル(この画像ではabc)が出来ているはずなんですが、それをダブルクリックしても初期状態に戻っているんでしょうか?だとしたらわたくしにはわかりません(^_^;)現状のバージョンでうまく動かない場合はひとつ前のバージョンを使ってみるのもいいかもしれません。23:52この記事の4番目?ぐらいに表示されるmasasi君?のボーンが表示されている状態のヒエラルキーと同じ状態という事ですかね?それならば印が付いているDoneを押せば元のシーンのヒエラルキーに戻ると思うので大丈夫だと思います。20:21一瞬ですべて消えてしまうとはどういうことですか?ヒエラルキーがBoneの設定に変わってしまっているのは正常です。Unityがクラッシュして消えると言う事でしょうか?↑のような事はたまにおきますね、メモリが足らなくなってしまうのかもしれません?(謎)突如消えてしまう事を想定して修正等をしたら小まめにSceneやProjectの保存をしておいた方がいいですね。後はバックアップも取っておいた方がいいと思います。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。Д`)シクシク...お知らせ2020/01/18個人的にUnity2019.2.18f1をインストールしました。2020/01/01あけましておめでとうございます。(^^)/ユニティちゃんのRPGを作ってみようのPartyStatusスクリプトでpartyMembersのListの型がCharacterStatusとなっていたのでAllyStatusに変更しました。変更したというか、元々AllyStatusに書き換える前のスクリプトを掲載していたので修正しました。ユニティちゃんのRPGを作ってみよう10ーコマンド画面の作成とステータスの表示ーユニティちゃんのRPGでコマンド画面の作成とステータスコマンドを作成し、選択したキャラクターのステータスを表示するようにしていきます。20:00GetPartyStatusメソッドの戻り値もそれに伴って変更しています。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。