Archive For The “未分類” Category

Unity3D+シューティングゲームのオブジェクトプールのチュートリアル

By |

Unity3D+シューティングゲームのオブジェクトプールのチュートリアル

Blogをいつもご覧いただきありがとうございます。 シューティングゲームを作った時に、武器の弾のシステムは様々な書き方がありますが、一番シンプルな書き方は、恐らく弾のオブジェクトをインスタンスして、敵にヒットしたら(コード側ではコライダーやポジションでどちらでも可能です。)、敵と弾一緒に消滅すると思います。 弾を生成する場合の例: using UnityEngine; using System.Collections; public class BulletInstance : MonoBehaviour { public GameObject BulletPrefab; // Update is called once per frame void Update () {  GameObject bullet = Instantiate(BulletPrefab, Vector3.zero, Quaternion.identity) as GameObject; //弾をインスタンス } 弾と敵を消滅する場合の例: using UnityEngine; using System.Collections; public class Enemy : MonoBehaviour { void OnTriggerEnter(Collider other)  { if (other.tag.CompareTo(“Bullet”) ==…

カスタムビルド解像度設定がリビルドで変更されない場合の対処

By |

カスタムビルド解像度設定がリビルドで変更されない場合の対処

Unityでカスタム解像度を使ってビルドするとき、選択された会社名とアプリ名にリンクされたその解像度でプレーヤー設定ファイル を作ります。 問題は、その後そのカスタム解像度を変更してプロジェクトを再構築したい場合でも、古いプレーヤー設定ファイルがあるコンピューターに表示されるものが一度設定した解像度になることです。 たとえば、解像度を800×600のカスタムサイズに設定してビルドした場合は、このようになります:   後でカスタム解像度を1920×1080に変更して再ビルドしても、同じ800×600の解像度が表示されます。   その解像度を適切な解像度に設定するには、2つの方法があります:   最初の方法は、ビルドプレイヤー設定に新しい会社名を設定することです。 その後、その名前であなたのシステムに新しいプレイヤー設定フォルダを作成します。   二番目の方法は、レジストリファイル内の設定フォルダを見つけて削除することです。 そのようにあなたの新しい解像度設定のファイルを作成します。 そのファイルはレジストリエディタのHKCU / softwareの中にあります。

Davinci Resolveで黒の余白なくビデオを出力する方法

By |

Davinci Resolveで黒の余白なくビデオを出力する方法

Youtubeに動画をアップする場合、無償で使える強力な編集ソフトとして、 DaVinci Resolve 15 があります。 (ダウンロードリンクは下記ページの最下部にあります。) https://www.blackmagicdesign.com/jp/products/davinciresolve/ DaVinci ResolveインストールしてYoutube用のムービーを書き出しした際にはまった箇所があり、その解決方法をシェアしたいとおもいます。 トラブルとしては、解像度を指定してビデオを書き出したかったのですが、出力した映像に下記のような上下に黒い帯が入ってしまうというケースです。   調べた結果、プロジェクトセッティングの解像度の設定が適切でなかったのが原因でした。 解決方法と手順を下記に記します。 ※今回は問題を再現する為にイレギュラーな解像度(2048×1023)のイメージを利用しています。 1.タイムラインに配置されてたフッテージ素材の解像度を確認します。 2.File>Project Setting…を開きプロジェクトの解像度を設定します。 3.Timeline resolutionをCustomに変更して、解像度を素材の解像度と同じに(2043x1023px:ご自身の状況に応じて変更してください。 )設定します。 4.Davinci Resolve下の方のDeliverタブ(➀)をクリックしてビデオの出力設定を開きます。 ②Individual Clipsを選択 ③Videoタブを選択 ④出力フォーマットを選びます。 ⑤Render at source resolution を選択します。 上記の設定が終わったら、Add to Render Queueボタンを押して、 レンダーキューに追加して、レンダーを行います。 以上で下記のような余白がないビデオが出力できるともいます。

Unity HubでインストールしたUnityのVuforiaプラグインをアップデートする方法

By |

Unity HubでインストールしたUnityのVuforiaプラグインをアップデートする方法

Unity Hubはとても便利で新しい機能ですが、Vuforiaをアップデートする場合、少し面倒な手順が必要になります。 最新のUnityのバージョンを既にインストールしていて、そのUnityと共にインストールされたVuforiaのバージョンよりも更に最新のVuforiaがリリースされている場合、下記の手順でVuforiaをアップデートできます。 Unityを起動するときにVuforiaは無効の状態になっています。(Image1)。 とりあえず、Vuforiaを使用するため、 File>Build Settings>Player Settigsボタン または Edit>Project Settings>PlayerからPlayer Settingsを開き、 (Image2) Player settingsのVuforia Augmented Realityオプションをチェックする必要があります。 (Image3) Vuforia Configurration Pannelの出し方 すると Vuforia Configuration Panel でVuforia Update のリンクをクリックできるようになります。(Image4)。 Image1 Image2 Image3 Image4   ここで一旦Unityを閉じてください。 ダウンロードが終わったら、 VuforiaSupportInstaller-Windowsの圧縮ファイルを解凍し、UnitySetup-Vuforia-AR-Support-for-Editorのイントラーをダブルクリックします。 UnitySetupアイコンを選択してください(Image5)。 インストールを続いて、Destination Folderのページを見えたらBrowseボタンをクリックしてください(Image6)。 ここで、Vuforiaの最新を適用したいUnityのバージョンの実行ファイルが置かれているパスを指定します。 Image5 Image6 Program FilesフォルダーにあるUnityフォルダーを選択してください(Image7)。(注意:Unity Hubのフォルダーではありません。Unity自体の実行ファイルがあるフォルダを指定する必要があります。) Image7 それでUnityをアップデートするバージョンを選択し、OKボタンを選択してください(Image8)。 Image8 次のウインドで選んだフォルダーを確認できます(Image9)。それでインストールを最後まで続けてください。 Image9 Unityを起動するとVuforiaがアップデートされていることが確認できます(Image10)。 Image10

Large SQL imports in phpMyAdmin (LINUX server)

By |

Large SQL imports in phpMyAdmin (LINUX server)

PhpMyAdmin is a very popular graphic interface for SQL servers. One of the problems I encountered when I was starting to work with it, was the (Max: 2,048KiB) file size restriction for choosing a file to import.   私がphpMyAdminを使い始めたころにインポートできるファイルサイズの制限で困ったため今回はその解決方法についてポストします。 Of course there are multiple ways to import a large SQL file into your server, but on this tutorial, we are going to…

Unity3D+IK(Inverse Kinematics)のAnima2Dチュートリアル

By |

Unity3D+IK(Inverse Kinematics)のAnima2Dチュートリアル

Blogをいつもご覧いただきありがとうございます。   前回は「Unity3D+Anima2Dチュートリアル」というテーマの記事を投稿しました。   今回はAnima2dのInverse Kinematicsについて説明したいと思います。   Inverse Kinematicsとは何ですか?   Anima2Dには、Inverse Kinematicsのコンポーネントがあります。これを使い、親関係のボーンオブジェクトの子供を動かすと、親も連動し動きます。 例を挙げると、腕と肩の関係のようなものです。(以下省略”IK”です)。 シンプルなアニメーションは、ボーンをいじるだけで充分ですが、もしアニメーションが複雑な場合はかなり時間がかかると思います。 そういう場合は「IK」が便利です。移動させたいボーンを「IK」と繋げればこのボーンのチェーンを丸ごと動かすことができとても便利です。   IKの種類は?   Anima2DのIKには,IK CCDとIK Limb という2種類のIKがあります。 IL Limbは骨を2本しかコントロールできません、余弦定理ですので、今回の場合手足に利用します。 IK CCD は設定に応じて、最大コントロールできる本数がルートボーンまでの全部の骨をコントロールすることができます。今回の場合頭と尻尾に使います。   では、前回の引継き、IKの使い方を説明します。 IKをの使い方を説明する前に、先ずAnima2Dの効率をアップでさせる機能を紹介したいと思います。 「PoseManager」というものです。 使い方はとても簡単です。下記の画像のように、前回の「牛」のオブジェクトに「Pose Manager」を入れれば、使えるようになるはずです。 そして、「Create new pose」をクリックしたら、今のスプライトのポジションとローテーションがセーブできます。 一つの「Idle」のポーズを「Save」をクリックしてから、後はどんな調整しても、ただ「Load」ボタンをクリックしたら、最初設定のポーズに戻れます。(ちなみに、「Save」はオーバライドしますので、ご注意ください。)   「Pose Manager」の使い方はここまでです。 それでは、「IK」の使い方の説明に入りましょう。   Step 1: IKをクリエイトします   「牛」のオブジェクトの中に、もう一個の空のオブジェクトを作って、名付け「IK」です。 下記の画像のようにそのオブジェクトに右クリックして、「2D Object」→「IK Limb」をクリックしたら、「IK」が出ます。   では、「IK」のパラメータを説明しましょう。 Record:アニメーションモードの間,ボーンのキーフレームを記録します。 Target​: IKが適用されるボーン。 Weight:​IKのポーズに対する影響度。 Restore…

Unity3D+Anima2Dチュートリアル

By |

Unity3D+Anima2Dチュートリアル

Blogをいつもご覧いただきありがとうございます。 先日、「Unity+Myo(ジェスチャーを活用して牛乳を搾るゲームを作りました)」というテーマのブログを発表しました。 下記のURLはゲームの映像です。 その中の「牛」はAnima2Dプラグインを利用して制作しました。Anima2Dの使い方のチュートリアルとして今回はAnima2Dを利用して「牛」を動かしてみましょう! Anima2Dのメリットは?   Unity3Dのアニメーションと同じ感覚で2Dキャラクターが動かせます。 スキニングとBoneが付くアニメーションを作ることができます。 Spriteの各頂点編集することができます。 全部アニメーション(Unity3Dの標準機能)でコントロールすることができます   Step1 Anima2Dをインストール   AssetStoreからAnima2Dを検索し、ダウンロードしてから、インポートをしてください。   Step2 「牛」の画像を分割 上記の画像はまだ分割していない状態です。 ゲームでは「頭」、「足」二本、「体」を分けたいので、こちらで「Gimp2」でこの4つの部分を分割しました。 そして、分割した画像をUnityにインポートして、下記の状態になりました。 画像のInspectorのTexture TypeをSprite (2D and UI)に変更するのを忘れないで下さい。 これで、下準備は完了です。 Step3 SpriteMeshを作る ここから本番ですね。先用意した画像を選択して、右クリックしてSpriteMeshが作れます。( Create→Anima2D→SpriteMesh) 上記のステップで、拡張子が「asset」のファイルができると思います。保存先が分からなくなってしまわぬよう独立のフォルダーを入れるとよいと思います。 Step4 SpriteMeshをSceneに配置 これから、作り上げたSpriteMeshをシーンに配置します。 まず、シーンにempty GameObjectを作って、この中で二つ空のGameObjectを作ります。下記の画像ご参考までに。 そして、SpriteMeshを一個ずつBodyのGameObjectに入れます。(一気に全部選択しても一個ずつしか入りませんので) 全部入れて、元「牛」の四肢のようにポジションを調整したら、下記の画像のようになるかと思います。 Step5 SortingLayer、OrderLayerの調整 ですが、牛の頭が体に隠れてしまってるように見えますので、そこで、OrderLayerの順位を調整します。 先ず、SpriteMeshのSortingLayerを全部同じにします。SpriteMeshのオブジェクトを選択して、右側は下記のようにします。 デフォルトの状態で全部のSpriteMeshのOrderLayerは0になっていますので、一番前に表示したい物のLayerの順位を0より大すると前面に表示できます。 今回の場合は牛の頭を体の前に表示しようと思いますので、頭のオブジェクトを選択して、OrderLayerは1にすれば、一番前に表示できるようになると思います。 これで、SortingLayerとOrderLayerの説明は維持上です。 Step6 Boneを入れる これがAnima2Dのとても大事な機能です。スプライトに骨を付けることができます。 先ず、先ほど作ったBoneというゲームオブジェクトに右クリックしてください。 下記の画像のように選択します。 こうすれば、新しいBoneオブジェクトがインスタンスされます。自分が分かりやすい名前を決めてください。 そして、「Torso」の中で頭、両足の2DBoneを作って、針みたいなものを相応の所に配置します。   注意点:上記の赤い箇所で示している所は「骨」の長さです、スプライトの大きさに相応して決めてください。 そして、BoneとSpriteMeshを繋げましょう! 下記の画像の通りにそれぞれのBoneオブジェクトをSpriteMeshのSet bonesの所に入れます。   注意点:繋げたくない部分があれば、右クリックで削除してください。…

Map

By |

Developers Blog

By |

Developers Blog 弊社エンジニアによる制作Tipsをblogを通じてシェアします。

GLSLで書いたシェーダーをUnityのマテリアルにセット、WebGL出力してみます

By |

GLSLで書いたシェーダーをUnityのマテリアルにセット、WebGL出力してみます

Unityでシェーダーを書く機会は中々ありませんでしたが、今後のためにもGLSLでシェーダーを書いてみます。 GLSLの特徴はOpenGLに使えるという点です。ということは、スマートフォンゲームやWebGL(ブラウザ)に応用することもできます。また、言語的には、ほぼCに近い、ポインタのないC言語といった印象があります。(今回、細かな言語仕様の説明は割愛させていただきます。) まずはGLSL on ブラウザで書く まずは純粋にGLSLのフラグメントシェーダーだけを書いて試してみたいと思います。 これにはGLSL Sandboxというサイトを使います。このサイトでは、WebGL経由でシェーダーのGLSLコードをリアルタイムプレビュー、さらにjsdoitのようにギャラリーやフォークなどもできます。先にここで書く理由は、ちょっと寄り道してみたかったからです。w WebでもUnityでもどっちでも動くと良いですし。 ちなみに、GLSL Sandboxの開発にはthree.jsの@mrdoob氏など、著名開発者が名を連ねています。 凝ると際限がないと思いますが、そこそこ見栄えしてきたら次のステップへいきます。 デモはこちら : http://glslsandbox.com/e#29054.0 ソースは以下の通りです。 ポイントは(というほどではありませんが・・)時間経過を元にして三角関数を動かしているところです。 #ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 resolution; void main( void ) { vec2 position = ( gl_FragCoord.xy / resolution.xy ) – 0.5 ; vec3 col = vec3(0.0,0.0,0.0); //15個円を描く for(int i = 0; i…

Go Top