カテゴリー別アーカイブ: unity3D

「【Unity】クソゲーを作って晒したら世界が変わった件」の記事を読んで、こういった話を読むとやる気が出る、たとえ釣りでも|Unity開発に関する50のTips アプリを作る上でのアドバイス|毎日描け、鉛筆でなくてチャーコールでかいた

ゲーム、Unity記事

「【Unity】クソゲーを作って晒したら世界が変わった件」こういった話を読むとやる気が出る、たとえ釣りでも

【Unity】素人が7日間クソゲーを作り続けてわかったこと

【Unity】素人が7日間クソゲーを作り続けてわかったこと
>Unityで無料のWeb用ゲームを1日1本というノルマを課して敢えて挑戦して、なぜか上手く話題になった人の話です。
ブロックのゲームを見ましたが確かにゴミゲー、クズゲーです。何にも面白みもありません。でも初心者で1日で作ったというのならそんなゲームしか出来ないというのは理解できます。
 スマートフォン向けに1日一本は無理でもWeb用のUnityゲームなら容量、大きさ、動作確認、承認などの手間が少ないか省けるので可能だったのでしょう。
 でも習得が早く、ゲームのアイデアが豊富な作者でなければ、できなかったゲーム制作ではないかと思います。
こういった話を読むとやる気が出てきます。かりに、話題作りのために仕組まれた内容であり、たとえ釣りでもゲームを作っていろんな人に楽しんでもらいたいと思ってUnityでゲームを作っている人たちにとっては、励みになる内容でした。1日で結構いろいろなコードを書けるのは作者の飲み込みの早さ、柔軟性、コードを書く集中力があってなせる技だと思いました。
続きを読む

(1)3Dアプリ製作Unity作業の注意点、C#、Blenderブレンダーとの連携について|(1)アイフォンアプリ製作に役立つユーチューブ動画、iOSストーリーボードUIViewControllerなど

(1)アイフォンアプリ製作に役立つユーチューブ動画、iOSストーリーボードUIViewControllerなど

**

3Dアプリ製作Unity作業の注意点、C#、Blenderブレンダーとの連携について

現在、アイフォンアプリ、アンドロイドアプリ用のスマートフォンゲームアプリを製作中です。
7月に作業に取りかかりました。はじめてのUnityですので、いろいろと覚えることがありすぎて大変です。
 特に、Unityは3Dオブジェクトファイル、例えばブレンダーのファイルやFBXファイルを扱えることから、3Dポリゴンオブジェクトを作成できる3Dソフトとの連携が可能です。
 つまり、3Dソフトブレンダー、MAYA、LIGHTWAVEなどで作成した3DポリゴンをUnityで表示させてゲームとして楽しむことができます。
 
 しかし、覚えること、設定、パラメータなどが多くて忘れがちです。そこで、約1ヶ月経過したこともあり、ここで、最初に躓いたところをメモしていきます。
 
・C#、JAVASCRIPTについて
JAVASCRIPTとC#は、ほぼ構成が似ているので、ホームページや関連書籍を参考にできます。
また、JAVASCRIPTとC#の変換ウェブサービス(無料)もあります。

・C#について

#include,#importを記述しなくても同じプロジェクト内のスクリプトは利用可能。
MonoBehaviourを継承しないクラスも作成できます。ただし、Unity独自のコマンドは利用できません。
using System.Collections.Generic; でstdのListが利用できます。
MonoBehaviourを継承するスクリプトはAddComponentが必要です。
[c]
public MyDialog dialog;
//dialog=new MyDialog();//not work
dialog=gameObject.AddComponent<MyDialog>();//MyDialog.cs
[/c]

GUI系のオブジェクトの扱いは、座標がスクリーン座標となります。3D空間ではありませんので、はじめは、あれ?になりますが、ああそうなのかそういうことねとなります。

Inspectorにパブリック変数を表示させたくないときは
[HideInInspector]
を記述します。すでに変数を与えてある場合や外部から変数をあてる必要がないときに使用します。

・ブレンダーとUnityの連携、オブジェクトの挿入

ブレンダーで作成したオブジェクトの大きさを1くらいとすると、Unityで表示させるときは、スケールを約30ー50倍くらいに拡大する必要があります。カメラ位置0, 10, -13の場合で、Projection:Perspectiveです。
また、横面にするためには、Y軸で90度、正面を見せるためにY軸180度回転させる必要があります。

UVをブレンダーで設定し、テクスチャを設定後、FBXに出力し、Unityにインポートするとき画像のリンクが解除されます(パスが不明となるため)ので、再度Unityで画像を設定する必要があります。画像を設定するだけです。UnityでUVを設定し直すようなことはありません。まあ、Unityにはポリゴンを作成する機能がないので、Unity自体でUVを作ることはできないので当たり前と言えば当たり前ですが。

出力のときは不要なカメラ、オブジェクトが挿入されないように、出力の時に、設定をします。

テクスチャは、オブジェクトで異なる設定で使いたい場合は、重複のテクスチャ、サーフェース名は使用しないこと。特に、名称なしやデフォルトは避けるようにしてください。重複のサーフェース名を使用すると同じ色になったり、想定した色と異なります。後の修正作業が面倒です。

・Unityに3Dオブジェクトを表示させて思ったこと

意外に画面がきれいに表示されて折らず、ブロックひずみになっていると思いました。

・今後のUnityの作業

ブレンダーでボーンを設定し、アニメーションを設定した後に、Unityにインポートしてアニメーションさせる
アニメーションをプログラムで制御する

参考リンク

http://wiki.unity3d.com/index.php/CSharpMessenger_Extended以前のリンク先が変わっていました。

アイフォンアプリ製作に役立つユーチューブ動画、ストーリーボードUIViewControllerなど

アイフォンアプリで、テーブルのリストを選択して、ストーリボードの遷移を学習できます。
短いもので30分、長いもので1時間程度の学習時間になります。動画を見ながら、X-CODEでアプリを作りながら作業できるようにすれば理解も早いと思います。大きなディスプレイかマルチディスプレイの環境があるとよいです。

 英語ですが、コードの入力からわかるので動画の通りに進めば、アプリが完成します。
いくつかの書籍を買ってユーチューブの内容を比較をすると、書籍の内容は、動画の説明の5分から10分程度にあたり、ユーチューブの動画の内容の濃さに驚きます。著者の実力を攻めているのではなくて、文字と静止ベースと出版界の事情の限界なのでしょう。
文字や画像が多くなると著者の負担が大きく、ページ数が増えれば書籍の金額高くなり、売れなくなるわけです。内容が濃ければ濃いほど読者は理解が深まりますが、実際はページ数が多くなり、本が重く検索できず、金額が高いという残念な結果になるのでしょう。
 書籍、紙による教育、指導、教示の限界というものでしょうか。
動画も実際の講義やセミナーに比べて、緊張感や情報量、その場の雰囲気などに劣りますが、それでも十分学習できる内容でした。

(1)テーブルビューで項目を削除したときに、エラーとなる場合の例です。

ViewController.m
[c]
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle==UITableViewCellEditingStyleDelete) {
Contact *delegatedContact=[self.contacts objectAtIndex:indexPath.row];
NSManagedObjectContext *moc=self.delegate.managedObjectContext;
[moc deleteObject:delegatedContact];
NSError *error;
if (![moc save:&error]) {
NSLog(@"error");
}

//もしこの状態で項目を削除したときにエラーがでたら [self loadData]の機能が足らないことになります。
[self loadData];//これがないと項目を削除したときにエラーがとなります。
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

}
}
[/c]

関数
[c]
-(void)loadData{
NSManagedObjectContext *moc=self.delegate.managedObjectContext;
NSFetchRequest *fr=[[NSFetchRequest alloc]initWithEntityName:@"Contact"];
NSError *error;
self.contacts=[moc executeFetchRequest:fr error:&error];

}
[/c]

(2)UITableViewCell *cellのエラーが多い、forIndexPath:indexPathを削除する

2012年くらいのXC0DEのユーチューブ動画や書籍には、forIndexPath:indexPathが記載されていません。新しいバージョンのXCODEではforIndexPath:indexPathが追加されていて、エラーになることがあります。
[c]

– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
//アプリ実行をして不明なエラーの時は、forIndexPath:indexPathを削除する
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (cell==nil) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
// Configure the cell..
return cell;
}

[/c]

・その他、エラーの対処

this class is not key value coding-compliant for the key cancelButtonPressed.’
これは、A画面からB画面に遷移するとき、遷移先のB画面にあるcancelButtonPressedの設定が間違っているために発生したエラーです。
A画面でボタンをタップしたときに、強制終了するので、A画面での問題かと思いましたが、A画面からB画面に移動する直前でエラーとなりました。

対処:
cancelButtonPressedが間違ってい設定されていた(画面上でびっくりマークが表示されている)部分を削除しました。

原因:
紐付けを行って、取り消しをコード上でしてもXlib上ではまだゴミが残っていたみたいです。そのため、びっくりマークが表示されていました。
慣れていないと何がどうなっているのかわからないエラーでした。

使い回しのできるメソッド、deleteData:(NSString*)deleteQueryで効率よく見やすく処理している記載方法

[c]
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle==UITableViewCellEditingStyleDelete) {
Person *p=[arrayOfPerson objectAtIndex:indexPath.row];

[self deleteData:[NSString stringWithFormat:@"DELETE from PERSONS where NAMA is ‘%s’",[p.name UTF8String]]];

[arrayOfPerson removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
-(void)deleteData:(NSString*)deleteQuery{
char *error;
if (sqlite3_exec(personDB, [deleteQuery UTF8String], NULL, NULL, &error)) {
NSLog(@"OK");
}
}
[/c]

iOS Development: Storyboards and UITableViews (Part 1 of 2)

評価:星4つ
ストーリーボード、UITableViewのコード説明、リストの項目の追加、削除、変更までが説明されていて、非常に役に立つ講座です。アイフォン関連の初心者向け書籍に書いてある以上のことが学べます。一般に売られている書籍の内容の3倍以上の内容の濃さがあります。書籍の内容は、導入部だけで、そこから学ぶことは非常に少ないのです。実際は、そこからどうやって、発展させていくのかと言うことなのですが、実際のアプリ製作の約立つ内容にまでは踏み込まれていません。書籍では、単に、画面にリストを表示させておしまいというのが多い中で、この動画はリストに表示させて追加、削除まで説明されています。

iOS Development: Storyboards and UITableViews (Part 2 of 2)


iOS Development: Core Data

評価:星3つ
50分と1時間7分のところで、うまく動作しないところがありました。コンパイルエラーがなくて、リストを削除するとエラー、動作停止になります。
今の実力では直せません。
コメントにも同様の記載があるので、他の人も戸惑っているところがあるみたいです。
他の動画を見ながら、修正したいと思います。

・Xcode 4.6 Tutorial – UITableView with Search Bar (Part 1)

画像1
評価:星3つ
UITableViewのコードが説明されており、検索についても説明。なお、私が実際にアプリを作ると検索が上手く動作しませんでした。リストを選択したり、リストを検索する方法が学習できます。
どこが悪かったのかを後日検討したいと思います。

Xcode 4.6 Tutorial – UITableView with Search Bar (Part 2)

アンドロイドAndroidアプリ製作でディスプレイサイズ、スクリーンサイズ取得判別,Unity Admob、UNITY C#、ジャバスクリプトのリンクメモ

アンドロイドAndroidアプリ製作でディスプレイサイズ、スクリーンサイズ取得判別,Unity Admob、UNITY C#、ジャバスクリプトのリンクメモ

調べ物をしたときに、今後参考となるサイトのリンクメモです。

【スクリーンサイズの取得、ディスプレイ情報の取得】

アンドロイドAndroidアプリ製作でディスプレイサイズ、スクリーンサイズ取得判別
AndEngineのダウンロード

画面解像度などディスプレイの情報を取得する方法 –
[Androidアプリ/Android] ぺんたん info

[AndroidTips][Java]画面のサイズや解像度、密度などのデイスプレイの情報を取得する |
Androidアプリ開発情報まとめブログ

画面サイズを取得する
– Androidプログラマへの道 ~ Moonlight 明日香 ~ – Seesaa Wiki(ウィキ)

Androidの画面サイズを攻略して機種依存を吸収する(ナビゲーションバーとステータスバーのサイズを取得する) |
Tech Booster

【・UnityでAdmob広告】

[Unity][iOS]Unityで吐き出したXcodeプロジェクトへのAdmob表示方法 | iPhoneアプリをつくりんぐ
>最近の更新はありません。
[[UIViewController alloc]init];を使うタイプです。

xapp: Unity3Dで作ったゲームにAdMobを表示する方法(iOS編)
>UnityViewController*を使うタイプ

20121123 アド部定例会 unityアプリに広告を入れる方法

【・UNITY C#、javascriptジャバスクリプト】

ゲームは初心者にやさしく: Unity C#とJavascriptの主な違い

Convert unity javascript (unityscript) to C#

Unityでゲーム開発

イノベーション |シーンを跨いで情報を引き継ぐ

ComputerGraphics/Unity/Tips/Script/GetChildAndParentObject – Neareal

【・Unity transform 移動】

ActionScript入門Wiki – Unity – コードからTransformに値を設定する

Unityのtransformのアクセス速度 | 生存日記

【・Unity 回転】

Unity コントローラーの向きにモデルを回転させる方法 – 物欲センサーと戦う日々

[Unity] GameObject自身の角度を取得したい: ものづくりログ

UnityのJavaScript:Vector3とQuaternion : Nanashi-soft

Unity:C#のforループ文 : Nanashi-soft

Unityのプラットフォーム別、ディスプレイスクリーンサイズ別判別 Unity iOSにおけるGUIのiPhoneディスプレイ対応


クリスマストイレットペーパー

画像蒟蒻畑 温州みかん味(25g*12コ入)【蒟蒻畑】[こんにゃく ゼリー ダイエット食品]
●こんにゃく(グルコマンナン)をフルーツ果汁で味付けしたポーションタイプのフルーツコンニャクです。

イカリボタン25mm ブラックダメージ加工ボタンの付け替え、ボタンを無くてお困りの方

インクカートリッジ、IC6CL70L エプソン

(1)Unityゲームアプリ作成、 JavascriptとC#の移植のための変換表、宣言、配列、Vector 他、構造体

(1)Unityゲームアプリ作成、 JavascriptとC#の移植のための変換表、宣言、配列、Vector

前回のUnityの記事

UnityではJavascriptとC#が使えます。どちらでも良さそうですが、Javascriptでは構造体が使えないと言うことで、C#で作成しようと思います。
しかし、多くのサンプルソース、書籍がJavascriptで記載されていることがあるので、C#への移植を考えたいと思います。

ゲームは初心者にやさしく: Unity C#とJavascriptの主な違い

Convert unity javascript (unityscript) to C#完璧な変換ではありませんし、public,privateは自分で記述するがあります。あくまでも目安として変換を当てにしたほうがよいです。

・宣言 var があるか、型が前か後ろか
JavaScript
[c]
var zebraPrefab:GameObject;
[/c]

C#
[c]
GameObject zebraPrefab;
[/c]

・配列
JavaScript
[c]
var iArray : int[];
iArray = new int[10];
//
var iObjArray:GameObject[];
iObjArray=new GameObject[10];
[/c]

C# 一行で記載します。
[c]
  int[] iArray= new int[10];
  GameObject[] iObjArray=new GameObject[10];
[/c]

・Vector
JavaScript
[c]
var animalPosition:Vector3=Vector3(-3.0,-0.7,2);
[/c]

C# newが挿入されます。
[c]
Vector3 animalPosition=new Vector3(3.0f,-0.7f,2);
[/c]

・構造体、Javascriptにはありません。
[c]
public struct animalKozotai{
public char animalName;
public int speed;
public float xPosition;
public float yPosition;
public Vector3 vPosition;
}
[/c]

1画像
【送料無料】SELLE SMP【セラ エスエムピー】(HYBRID ハイブリッド ブラック)ロードバイク 自転車用サドル
在庫あり
店舗名:サイクルショップ 自転車BOX
2画像
【送料無料】selle sanmarco/DIRTY/ZERO KAMO カラー:ゴールド、ホワイト サドル サンマルコ ダーティ ゼロカモ
在庫あり
店舗名:CYCLE HOUSE GIRO
3画像
SELLE SMPFORMA・カラーサドル
在庫あり
店舗名:アリス・サイクル
4画像
Selle an atomica TITANICO Watershed Leather Laminated(防水)
在庫あり
店舗名:ワールドサイクル
5画像
【SelleSMP】セラSMP サドル FORMA(ブラック)
在庫あり
店舗名:自転車館びーくる
6画像
【送料無料】一部地域除く COBB CYCLING(コーブサイクリング) V-Flow Max サドル
在庫あり
店舗名:シルベストサイクル

(1)BlenderからUnityへアニメーションオブジェクトのインポート手順

(1)Blenderでオブジェクト、ボーン、アーマチャア、アニメーションの設定

次回は
(2)Unityへインポート

(1)Blenderでオブジェクト、ボーン、アーマチャア、アニメーションの設定
BlenderからUnityでアニメーションをさせようとしたときに、オブジェクトにアニメーション(移動程度)をさせて、Unityでアニメーションが可能かどうか試したらできませんでした。
つまり、アーマチャア、ボーンによるアニメーションでなければ、UnityへBlenderのアニメーションを再現することはできないみたいです。これができると便利かと思いました。そこで、ボーンを使ってオブジェクトをそうさせれば良いと思いました。
例えば、箱の上蓋にボーンを仕込み、ボーンを回転させて、ふたが開くアニメーションを設定できます。
これなら、Blenderで設定して、Unityで、アニメーションをさせることができるのではないでしょうか。

(1−1)オブジェクト、ボーン、アーマチャアの設定
テスト用としてキューブとボーン1本の簡単オブジェクトを作成します。
まず、オブジェクトモードにて、Addからキューブを作成
つぎに、AmatureからSingleBoneを選んで、ボーンを作成します。
エディットモードで、ボーンの大きさを調整します。ボーンのXrayを設定すると便利です。
オブジェクトモードに戻り、子供にするキューブを選択し、
右クリックでキューブを選択し、シフトキーを押しながら右クリックでボーンを選択します。
子供、親の順番です。
そして、CTRとPキーを同時に押します。
プルダウンが表示されて、Boneを選択します。
次にポースモードになって、ボーンを選択して、動かすと、ボーンと一緒にキューブも動きます。

これで、ボーンを制御してキューブを動かすことができました。

bone1.png画像

(1−2)アニメーションの作成
次にアニメーションを作成します。
2つ作成します。
単純に、回転と移動です。
Move,Rotateとアニメーションの名称を決めます。他の名称でも構いません。
この二つがUnityにインポートしたときに表示されていれば、とりあえずデータとして作成完了でしょう。
ドープシートのアニメーションを選択します。
まず、Rotateです。
これは数値のところを設定します。
0度から90度に設定します。
0度、初期状態で、数値のところで右クリックしてキーを挿入します。

画像

次に90度にして、同じように右クリックしてキーを挿入します。

画像

次に、Moveです。
これも、先ほどの角度のところと同じようにします。

これで、2つのアニメーションの設定ができました。

次はユニティで読み込みとアニメーションです。

アンドロイドアプリ作成、Unityで作るスマートフォンゲーム、まずはチュートリアルから

アンドロイドアプリ作成、Unityで作るスマートフォンゲーム、まずはチュートリアルから

Unityでゲームを作れば、アイフォンもアンドロイドもスマートフォンゲームアプリを作成できます。つまり、クロスプラットフォームとしてゲームを開発できるというわけです。アイフォンで言うところのcocos2d-xになるわけですが、cocos2d-xは、文字ベースのコードをひたすら入力して、ゲームを開発することになります。

 一方で、Unityは、文字ベースのコードに加えて、3Dオブジェクトをビジュアル的に配置することができるので、直感的に開発ができます。文字コードベースの場合、実際にアプリを実行して動作させるまで、コードに記載した座標が期待通りの配置、動きかどうかを確認することができません。でも、Unityは、画面上にオブジェクトを配置して、目視することができます。ここがUnityの利点です。
 このように説明すると、Unityが簡単にゲームアプリを開発できそうに思えます。でもそんなに簡単なものではありません。実際にゲーム開発を進めていくと、結局のところは、ひたすらコードを書いていくことになります。クリック、キーダウン、衝突判定、画面の移動、ヘルプ画面、設定画面などは、コードを書いていくことになります。オブジェクト画面に配置するだけでは何もおきません。

 詰まるところ、ゲーム開発は、プログラムをかく、ソースコードを書くことになります。ただし、見えない状態のオブジェクトを扱うよりは、見えた方が便利です。ここが、Unityの利点です。ちょっと言い方を変えると、FlashやMacromediaDirectorの3D版といったところでしょうか。アドビが本格的に3Dオブジェクトに関するアプリに乗り出していたら、いまごろは、スマートフォンの開発はFlashのままだったかもしれません。

 ちなみに、Unityは個人の開発なら無料(Pro版よりは機能限定になります。)でアンドロイドもアイフォンも無料で開発できます。ただし、無料の場合でも売り上げがある一定基準を超えるとPro版へのアップグレードが必要になります。そこまで売り上げのあるアプリを個人で開発できるとは思えませんが。
 
 個人でアイフォン、アンドロイドアプリを作る分には、Pro版にアップグレードする必要はありませんが、使いたい機能がPro版にあるときはアップグレードすることになります。
 
 
 <ポイント>
 Rigidbodyコンポーネントで落下する
 Box colliderにチェックを入れると衝突判定をする。これがないと他のオブジェクトが重なってもすりぬける。
 Rigidbodyの「Is kinematic」にチェックするとRigidbodyであってもその位置で静止する。(落下しない)
 静止状態にしたいオブジェクトは、Rigidbodyを設定しない。なにもしないまま。
 
 <スクリプトについて>
 オブジェクト名と変数名は同じである必要は無い
 例
 GameObject gameController;
 gameController=GameObject.Find(“objectName”);//objectNameは、オブジェクトの名称
 文字の先頭が大文字か小文字かで、困惑しそうなときは、統一して同じ名称にした方が、混乱しません。
 gameOperateController = GameObject.Find(“gameOperateController”);
 
 A.cs
 gameOperateController.SendMessage(“StageClear”);
 (変数).コマンド(“他のスクリプトのメソッド”)
 
 StageClear()は、
 B.csに記載されていて
 void StageClear(){
 }
 のように記載されている。
 このB.csは例えば、gameOperateControllerオブジェクトに設定されたスクリプトだったりします。
 
 

メモ Unity、外部サイト参照メモ、Transformをコードで取得、グローバルとローカルの違い

Unity、外部サイト参照メモ、Transformをコードで取得、グローバルとローカルの違い

Unity(Unity 3D)について ActionScript入門Wiki

画像、Unityめも
Unityサイト参照画像
以下、一部抜粋です。非常に丁寧に整理されています。
Transform
Unity – Transformをコードで取得、グローバルとローカルの違い
Unity – コードからTransformに値を設定する
Unity – 特定方向を向くように、向きを変更する
Unity – (クォータニオン版)特定方向を向くように、向きを変更する
Unity – 特定方向を向くように、滑らかに向きを変更する
Unity – オブジェクトを追いかける
Unity – (Vector3)二点間距離を求める
Unity – クリックした位置にオブジェクトを移動させる
Unity – クリックした位置の方向へオブジェクトに力を加える
Unity – 位置、角度を軸ごとに固定する
Unity – カメラの円運動

Unity – 一人称視点で移動する
Unity – 三人称視点で移動する

ブレンダーBlenderにLightwave9のLWOオブジェクトを読み込む|ブレンダーのショートカットキーの操作メモ

ブレンダーBlenderにLightwave9のLWOオブジェクトを読み込む

ブレンダーBlenderにLightwave9のLWOオブジェクトを読み込む   

ブレンダーBlenderにLightwave9のLWOオブジェクトを読み込むインポート、やってみた

Unityの学習中で、ボーンが設定されたオブジェクトを読み込み、アニメーションの設定を学習中です。
用意された素材を使用したので、どのようにして3Dモデルにボーンを設定するのか、ボーンの名称やボンの数、親子関係はどうなのかを知りたくなりました。

そこで、
ブレンダーでUnity用のモデルデータの作成はどうするのかと思って、ユーチューブを閲覧中です。

そこで、かつてLightwaveで作成した人体モデルをブレンダーにインポートすれば良いと思いつきました。
ブレンダーには、各3Dソフトで作成したモデルデータをインポートする機能が付いています。
LWの場合は、設定でチェックを入れる必要があります。

早速、昔使っていた東芝のノートPCを引っ張り出しました。結構でかいです。ノートの利点は、いつでもどこでもすぐに使えることです。マウスがないとちょっと不便ですが、このノートは小さなタッチパッドがついているので、なんとかマウスがなくても操作できます。

LWファイルの日付をみると2005年に作成したモデルデータです。サブパッチありの人体モデルです。

とりあえず、なにもせずにそのままブレンダーに読み込んでみました。ブレンダーはMacOSのバージョン2.66です。起動はほぼ瞬間です。3秒くらいで立ち上がります。

・ブレンダーBlenderにLightwave9のLWOオブジェクトを読み込むインポート、結果

LWモデラーでみるのと、たぶん同じ構成で表示されました。すごいとびっくり感心。LW画面との比較を載せたいところですが、LWはドングルが必要で、このドングルを探さなければならないので、LWは起動してません。

(画像)
人体モデル画像

ポリゴンの破綻もありません。しかもサーフェースの色、スカートの青、クツの赤、シャツのピンクがそのまま残っています。すごいよブレンダー!!
フリーの3Dソフトでありながら、ここまでできるなんて。
たいてい、他の3Dソフトのファイルを読み込むとエラーが頻発して、つかえないことがほとんどなんですが。

実際に使用したモデルデータの容量は、小さいものは、200kB、大きいものは約2,4MBになります。
特に問題なく読み込めました。
LWモデラーのレイヤーも読み込めました。

おそらく、パスとかベジェラインとかは読み込めていないかもしれません。

ブレンダーのショートカットキーの操作メモ

ブレンダーのショートカットキー

ブレンダーは高機能ですが、操作がけっこう難しいというか、Lightwaveでのキー操作に慣れているので、すぐに思い出せません。

しかも、操作パネルやメニュー、プルダウンメニューがあっちこっちに配置されているので、どこをどう使えば良いのかさっぱりです。

そこで、数ヶ月後にまた、使うときのためにメモを残しておきます。

右クリックで選択し、マウスを移動すれば、オブジェクト等が移動します。
右クリックで選択というのを覚えましょう。右で選んで左で解除です。設定でキーは変えられるようですが、マニュアル本やユーチューブとかのチュートリアルをみてわからなくなるので、設定は変えずに、右クリックと覚えます。

左クリックで解除

aで全選択、選択状態で再度 a で解除
bで領域選択、投げ縄ではありません。
投げ縄選択Ctrlキー+左ドラッグ

ビューは数字キー1とかを押します

r  回転
s 拡大縮小
e  押し出し、頻繁に使います。
f 面張り、エッジ張りできます
ctr+r  分割、スクロールで分割数を設定
ctr+j 一つのオブジェクトにします。ポイントの結合ではありません。
ctr+z ,y やり直し
Shit+Alt を押しながら、エッジを選択すると、これで、輪郭、周囲を選択してくれます。とれもべんりです。

ポリゴンを分離したいときに、使うコマンドキーY

例えば、ポリゴンを選択して、Yを押すと、選択したポリゴンが元のオブジェクトから分離します。
IF I select a polygon, push key Y, separate that polygon from original object, its position.
This command key is comfortable. I think.
便利なコマンドです。

厚みをつける
Ctr+F でプルダウンメニューが表示、そこから厚み?を選択

//追記 ブレンダー2.72bでの機能が含まれています
Shift+A でメニューをプルダウン表示(メニューを選択しなくても良いので時間の節約)
Shift+C 3Dカーソルを原点

ctrl+FでFaceメニューを表示し、 EditModeのとき、Intersect(交差)が使えます。ブーリアンみたいなものです。面が重なっているところをいわゆる分割です。
ctrl+Uでレイアウトを保存
ctrl+Lで連続したポリゴン全体を選択します。

Alt+Cでカーブをメッシュに、メッシュをカーブにします。パスやベジェを使ってポリゴンにするときに使います。

・離れたポリゴンを接合
2つのポリゴンの接合した端の部分のエッジを選択して、WキーでBride Edge Loopsを選択

・2面を結合して1面にする
2面を選択してXキーでDessolbe Face

G 移動
W subdev ポリゴン数を増減
V ポイント、ラインの結合解除、面はエラーになる(顔の口を作ったり穴のようにしたいときに便利)
Y 分離(Vと似ているが、こちらは、切り離された状態になる)

//更に追記
ピリオド オブジェクトの中心点を3Dカーソルへ移動
カンマ オブジェクトの中心点を解除?(違ってるかも)
ミラーコピー移動(軸対称コピー)  Sift+D(コピー複製)、X(X軸対称)、S(スケール)、−1(ハイフンと1で、逆向きに)
親子関係 Ctr+p(複数選択可)子、親の順で選択します。
親子関係解除 Alt+p(単独選択での作業が望ましい)、複数選択もありですが、解除した子供だけ選択することで解除できます。間違った使い方は子とその親まで選択してしまって、その親の更に上の親子関係まで解除してしまうことです。
 Ctr+pが親と子を選択するので、解除についても親と子を選択しなくてはならないと先読みしてしまって、つい選択してしまいます。

ポーズモード
Shift+Ctr+c、IK設定、IK設定するボーンを選択

<ブレンダープラグイン>
木のモデリングはUser Preferenceでsapで検索するとAdd Curveが表示されます。これが、ツリー木のプラグインです。名称にTreeが含まれていませんので探しにくいです。
F2 ポイント、ラインから面を手間が少なくてはることができます。標準でも搭載されていますが、Userpreferenceで追加する必要があります。
  使い方は、通常面は4点を選択する必要がありますが、このF2をONにすると3点で面になり、使い方は最後の4点目の対角線のポイントの1点を選択してFキーで面になります。
  また、例えば、格子状になったポリゴンにおいて、格子に囲まれた内部の面に、穴が開いた状態であり、複数の面を貼りたいときに、1ラインを選択してFキーですぐに面が生成できます。(通常は2ラインを選択する必要があるので、1ライン手間が減ります。)

Align selection to Gpencile stroke(フリーの外部プラグイン)
Grease Pencilで描いたラインに沿ってポイントが整列します。使い方はGrease Pencilで描いて、ポイントを選択して、シフトキーと左ダブルクリックです。
グチャグチャになったポイントを一括して綺麗にしたいときに便利です。
紹介ページ
http://www.blenderartists.org/forum/showthread.php?332160-Addon-Align-Selection-to-Grease-Pencil

ミラーコピーの仕方

ShiftーCでカーソルを原点に、ピリオド・るのキー
Shift-d、S、X、−1
で鏡面コピーです。

・中心点をポリゴン側に移動したいとき

文章だけでは意味不明ですが、オブジェクトを作っていると中心点が離れてしまうことがあります。そのときに、中心点をポリゴン側の方に移動させたいときに使います。
Objectメニュー(下の方の)、Transform,origin to Geometry

・ポリゴン側を浮き輪ターゲット?へ移動したいとき

浮き輪みたいなアイコン名がわかりません。この浮き輪の方にオブジェクトを移動させたいときに使います。

ポリゴン側を選択して、Shift+Sでプルダウンメニューが表示されて,select to cu,,,
説明画面では、Shift+a と間違って表示されているかもしれません。
Shit+ s が正しいです。あとで、差し替えます。差し替えました。

・パスを使って、パイプを作成する方法

Lightwaveでも同様の機能がありますが、ブレンダーの方がちょっとだけ使いやすいかも。
Alt+c 

・ボーン、IKの設定方法

ctr + r 分割 スクロール

shift + a amatur

オブジェクト、ボーンの順で
選択して
ctr + p IK設定

・UVの設定方法

エッジを選択
左側UV Mapping
Mark Seam
u Unwrap
下側Export unwrap
テクスチャを描く
テクスチャの読み込み

(注意点、レンダリングルまで、UVにテクスチャが設定されているか画面上ではわからないときがあります。描画モードによって、テクスチャが表示されていない設定になっている場合があります。そのときは、レンダリングを実行しましょう。描画モードを変更することによって、レンダリングしなくとも画面上で確認できる場合があります。)

・鏡面で人体の顔を作成する方法

LW9では、中心軸のポイントはマージされていないので、結合が必要でしたが、ブレンダーは設定すれば、マージされています。
オブジェクトモディファイアーツールを選択
原点からオブジェクトが離れても、鏡面できます。

・エッジの複数選択、便利な選択方法

とりあえず、これだけわかれば、モデリングはできそうです。

ブレンダー、チュートリアル

3DCG Blenderブレンダー2.7.2、平面ライトの作り方

ショルダーバッグ・ウエストバッグ・セカンドバッグ 3wayミニショルダーバッグ アメリカ製|吉田カバン ビジネスバッグ ポーター ラゲッジレーベル ニューライナー|Otias オティアス

【ハローキティ】×ワンピースのチョッパー ダイカットリール付きパスケース|くまのがっこう のびのびパスケース ジャッキー |【ニックナック】POPPINSカードケース

G&P AEG039C TROY M7A1(C) 完成品電動ガン エアガン|リボルバー COLT PYTHON コルトパイソン.357マグナム 4インチ|マルゼン M870 ショット

IODATA LEDバックライト フルHD 21.5型ワイド|アイ・オー・データ機器 LEDバックライト採用 超解像技術搭載 23型ワイド液晶ディスプレイ|水平多関節液晶モニターアーム

iPhoneアプリ開発日記、プロトタイプCバージョンプロジェクト作成 4月15日|Unity4.0のMecanimでキャラクターアニメーションの作成ユーチューブ動画チュートリアルメモ

iPhoneアプリ開発日記、プロトタイプCバージョンプロジェクト作成 4月15日

 
 
 3作目のゲーム案、プロトタイプ構成コード作成作業中です。
プロトタイプも3つめになりました。本当は、プロジェクトの中にターゲットを複数作成したいのですが、作成方法がわかりません。無理矢理ターゲットを追加するとココスのヘッダーが重複してコンパイルできません。どうすればよいのやら。

 
 今回のアイフォンアプリ開発作業中のエラー
 ・衝突判定で、弾が当たっていないと思われたのに、プログラム上では衝突判定となったのはなぜか?
  てっきり衝突判定プログラムが悪いと思って悩んでいたのですが、実際は、画像の透明領域が大きすぎて、見た目が、弾が当たっていないように見えただけでした。透明部分が大きい画像をたまたま使用していたために、人間の見た目では衝突していないように見えて実際は、衝突している状態(コードは正しい)と言うことがわかりました。
 
  画像を流用するときにはきちんと見ないと行けません。たとえ、購入したゲームキットであっても。
  
 ・CCSpriteクラスの継承では、position座標が正常に取得できないことがある(たぶn) 
 クラスを使用して、キャラクターオブジェクトを作成する際に、親クラスを作成して、子クラスを作成します。このとき、プロパティによっては、クラスでオブジェクトを生成したときに、そのオブジェクトのpositionではなくて、オブジェクトの中のCCSpriteからposition座標を取得する必要がありました。たぶん。ここら辺は自信はありませんが、クラスの継承に限らず、クラス中にCCSpriteで、positionを取得するときは、注意が必要です。
 もしかするとself.positionとすればよいだけかもしれませんが、(未だ試していません)
 
 
   

 Unity4.0のMecanimでキャラクターアニメーションの作成ユーチューブ動画チュートリアルメモ

 
 Mecanim Unity 4.0 Tutorial
 非常にシンプルなメカニカムの説明で、オブジェクトをインポートしてメカニカムで設定する最初の部分だけの動画です。メカニカムでどのようにして、オブジェクトのボーンをメカニカムに変更するのかを知りたい部分だけの紹介動画です。
 最初に見る動画です。
 
 
 ーー
 
 Super Simple Mecanim in Unity4 [UnityQuickTips]
30分のチュートリアル、男性の声が聞き取りやすい。英語です。
本格的に、メカニカムで人間アニメー書を設定するときに参考にしたいチュートリアルだと思います。
まだ全部見ていませんが。
 
 
 ーー

 Mecanim Simplified UNITY3D Lesson – 04B
 少しお年を召した感じの英語音声です。
 こちらも、アセットストアからのダウンロードから説明しています。
 
 
 ーー
 
 Unity3D – Character Animation – Maya HIK to Unity Mecanim [English]
 30分、男性の声がちょっと元気がない感じです。音声ははっきりしています。
 MAYAからUnityなので、MAYAを持っていない私は参考にならない部分がありますが、3Dオブジェクトの作成とボーンの設定のヒントになるかもしれません。
 
 
 
 
 

 ドライバー画像テーラーメイド ROCKETBALLZ TOUR TPドライバー MATRIX HD6シャフト【US仕様】[RBZ ロケットボールズ Taylormade]飛距離の出るゴルフドライバーを使うことにより、技術を含めて、より遠くへ飛ばせます。クラブヘッド内部およびソール部の肉厚に変化を持たせることでクラブヘッド前方と低い位置へ重量を配分し、快適なショットにロースピンを生み出し、伸びのある飛びを実現しました。
 

セクシーキャラクターとして新しい宇宙戦艦大和のヤマト航空隊の紅一点“山本 玲”をコスモファルコン部隊所属、平成ヤマトのいまどきの萌えキャラです。
 

スィーリア・クマーニ・エイントリーは、エイントリー公爵家の令嬢で、生徒会会長という気高く美しい美女。「騎士たるもの強くあれ」という家訓のともに、武芸に励む。

対フリーザ戦の名場面、オレは怒ったぞー、フリーザ。と怒りに身を任せてスーパーサイヤ人となり、宇宙一強い存在となった悟空のオーラとエネルギーを表現しました。
 
 
Webマンガで有名な原作を少年ジャンプ作家の村田雄介氏が書き直したワンパンマン3巻。Webマンガの趣味的な作画から、プロの作画になるとストーリが濃厚な作品になります。

 Unity, 開発記録 4月13日、P184、ラジコンカーゲームを作る、Unityで作るスマートフォン3Dゲーム開発講座、

 Unity, 開発記録 4月13日、P184、ラジコンカーゲームを作る、Unityで作るスマートフォン3Dゲーム開発講座、
 
 P184、ラジコンカーゲームを作るを作成します。この書籍は、手順通りに進めることができるチュートリアル形式です。そのため、初心者向けとして非常に優れています。図説もカラーなので理解しやすいです。
 Unityは、スクリプトと画面操作の2種類の設定があるため、文字ベースの説明では非常に理解しにくく、学習しにくい面があります。そのため、カラー画像とかユーチューブの動画などで学習した方が効率的です。
 
 まずは、無料の装甲車をダウンロードします。そこそこ丁寧に作られた3Dモデルが無料でダウンロードできるというのは便利です。
 こういったサンプルモデルデータが無料でダウンロードできるというのは非常に便利です。

前回の開発