就活で精神攻撃を与えらた結果、こうなりゃ一人でやってやんよ!という理由でAndroidアプリの開発をしてるぼくの活動記録です。お金に成るクオリティにしたいのです^p^
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
javaScriptでforeach文を使おうとしたら上手く動かなかったのでメモ。

jsでそのまんまforeach(var x:GameObject in Gameobject[] ){}
というような文法で綴っても動作しない。


何が問題かというと「foreach」そのものがjsにはないっぽい。

じゃあどうするかというと
for(var x:GameObject in Gameobject[] ){}
「each」をとってしまえばいいというただそれだけのことだった・・・

ちなみにforeach文はin~の配列の要素をxに入れてループさせるというもの。

今回の例で言うと
一回目のループでGameobject[0]をxに代入して
二回目のループでGameobject[1]をxに代入
三回目のループでGameobject[2]をxに代入・・・以下配列要素の最後まで同様
というような感じ。地味に便利。
スポンサーサイト
現在Blenderで魔法少女まどか☆マギカのまどかを作成中。
素体は完成してテクスチャの設定までいった。
その過程で学んだことを記す。

・UVテクスチャの設定を行うことを念頭に構成パーツは綺麗にシームが作れるようにする
 ⇒綺麗なUVを展開することで後のテクスチャを描きやすくする

・余裕があるなら色単位でパーツを分けたほうがいいかも
 →これもUVテクスチャ描く時やりやすい

今回はテクスチャの書き込みに時間をとられている
これも上記の工程が上手くいっていないためだ。

この反省を次回に活かそう。
まどかの反応さえ良かったらこんどはマミさんでも作るかね。
二回目の素体作りにとりかかった。
やはり前回のノウハウや教訓がある分クオリティの高いの物に出来たのではないかと思う。

そういえば前回のミクで作ったアプリが何故か韓国で多くDLされてるみたいだ。
韓国じゃ初音ミクは人気なのかね・・・
それとも日本のアニメキャラみたいなのが受けてるのか?

まぁ今回作った素体で魔法少女まどか☆マギカのまどかかマミさんでも作って
再度様子見がてらアプリにとりこもうか・・・
それともまた別にゲームアプリでもつくるか迷う所だ。
う~んどうしようか。。。
どうも上手く動かん。
一応ネットで参考になりそうなものを使っているのだが
いかんせん上手く動かぬ。
まぁ加速度センサー使ってそれなりに思う動作はできそうだけど
これって加速なのかもようわからん。

やはりandroidで拡張してそれをUnityに持ってくるほうがいいのだろうか・・
でもUnityにもそれっぽい機能が用意されてるからソッチ使うのがラクなんだよなぁ。

まぁぼちぼち動かしてみっかね。
ふぃ~。
やっとできたわ・・・
と言っても一週間強ぐらいで出来たな。
ウチ半分近くはモデリングに取られてしまったが・・・
そんで途中、動いたスクリプトが動作しなくなってあせった。

結局はActivityを拡張してバックキーを操作することで問題解決に至ったわけだが
コレがうまくいかなかったら中途半端な出来であげることになっただろうから
よくやったわ・・・

次はジャイロスコープみたいなセンサを使ったゲームアプリでも作ろうかね。
それともライブ画像にするか・・・なんかクオリティの高いライブ壁紙は売れるッぽいな。
今回はコレにかなり時間をとられたな。
いや~まったく疲れた。
二度とこんなミスを犯さないようにメモメモ。


【状況】
非表示オブジェクトを表示させるべく、コードにてオブジェクトの表示処理を行う。
意図せぬ動作が起き、時間をとられる。


【問題】
意図せぬ動作→if分岐、switch分岐での分岐処理先のコードがおかしくなる
またオブジェクトの表示も上手くいかない。
意図せぬ動作は下記のような感じ

 if(乱数 == 0){
  処理1;
 }else if(乱数 == 1){
  処理2;
}else ~・・・

とした時、乱数が0の場合でも処理1の動作でなく他の処理Xが実行される
switch分でも同様の現象が起きた。

またオブジェクトの表示も
 gameobject.activ = true;
での反映がされない

【解決】
オブジェクトを最初に表示させておくことで問題が解決した。

【詳細】
上記問題はオブジェクトが初めから非表示の時におきると思われる。
非表示オブジェクトはコンパイル時に排除され必要なデータ(表示オブジェクト)のみが
アプリとして抽出されると考えた。
実際、解決策を実施したことで問題がなくなったので概ね合ってると思う。

なので今回の問題解決の流れは、
ヒエラルキーで非表示になってるオブジェクトを表示してやる
 →コードの開始時に任意のオブジェクトを非表示にする。


こんだけ。
多分デバッグ時ならいいのかもしれないけどコンパイルする時には問題が生じるようだ。
まったく考え付かなかったわ。
一瞬Unity側のバグかと思ったがそんなことはなかったぜ。
やれやれだ。

あと別件だがrayキャストでの当たり判定はコライダがついていないと判定できないのね~。
画像も作ったし、残りはGUIを整えてやるだけ。
明日にはグーグルプレイにだせるようにすっぺ。
複数のマテリアルを持つオブジェクト
コレの任意のマテリアルの取得
についてメモ。

単一マテリアルの場合だと
rendeler.material.~
でそのオブジェクトの持つマテリアルを取得することが出来るが
今回複数のマテリアル持つオブジェクトの操作を行いたく
それで少しつまづいた。

が、
結構アッサリ解決した。
どうするかというと
「materials」という複数形のメソッドがしっかり用意されていた。
コレが配列になっているので
rendeler.materials[ n番目 ].~
で取得できる。

アッサリ終了なり。
ようやく完成?ッてところまでこぎつけた・・・
いや~長かった!いろいろ出来に問題は有るかも知らんが
まぁ初めてにしては良くできたほうだろ。コレ。

土台にした素体が一番最初に作ったものだから後々問題が生じて
一部モデリングの修正を加えることになってしまったのが大きな時間ロスだと思う。
今度もう一度素体作りに挑戦しよう。

ほんで作ったうえで色々気がついた事をめもめも。

・素体は今後のモデリングの土台となるため綺麗に作る。
 ⇒後工程を意識したものづくり。

頂点グループを作成した時、アーマチュアと同じ名前にすることで親子関係が生じる
 ⇒性格には親子関係じゃないかもしれないが、とにかくアーマチュアとグループが同期する
  アーマチュアを追加してやった時とか便利。

・モディフィアの「細分割曲面」は最後に使ったほうがいい?
 ⇒モデリング同が見てると初めはカックカクのポリゴンで形を整えてるから
  最初からありきで使わないほうがいいのかも・・・?

・モディフィアの「厚み付け」で面数が倍になることを考慮
 ⇒摘要するとそりゃ増えるよね~コレでポリゴン数が増加して偉いことになった。

アーマチュアのウェイトをつけて思わぬ部分が動く時(頂点だとかやけに離れた所とか)
 その動かす部分の子や孫が関係する

 ⇒先端からアーマチュアのウェイト確認したほうがいいかも。
  うまくオブジェクトの表示などを切り替えてやるのがいい。

・アーマチュアとオブジェクトの親子関係は自動でやるより手動でしたほうがいい・・・?
 ⇒自動だと思わぬ部位まで親子関係をつけられたりする。

ctrl + L:選択している点、線、面と繋がっている部分を全選択
 ctrl + H:選択している部分を非表示。
 shift + H:選択しているもの意外を非表示・・・するらしい。
H:非表示にしたものを表示
 ⇒これらのコマンドは一番目のものと組み合わせると便利


UVの編集は画像をペイントソフトで開いて
 編集→上書き→blenderでの再読み込みで細かく修正すると綺麗に仕上がると思う。


・というかUVの展開は綺麗にするとその後のテクスチャ設定が捗ると思う。
 コレはctrl + E のウィンドウから「シームをつける」を上手く利用して綺麗に展開しよう
 またUVエディター側でもAlt + 右クリックの「連続要素を選択」機能やWウィンドウで開く整列を使うと綺麗に
 まとめられる

ウェイトペイントでは裏面まで塗れないのでオブジェクトの裏側は先述した表示、非表示機能を上手く使おう
 特に厚み付けした場合や髪の毛、服など作った時は隠れた部分も有る事に気をつける。


モデリング完了後は隠れた部位は消去してポリゴン数を削減したほうがいいかもしれない。
 ⇒素体作成→髪の毛、服、などのパーツを作成→オブジェクトを一つにまとめる(ctrl + J)
  →隠れた部分のポリゴン消去→UV展開→テクスチャ作成→アーマチュア作成→ウェイトペイント
  の流れがいいのかもしれない。UV設定後にポリゴンの削除を行うとUVマップも修正されて変な所に
  マッピングされる。


今回モデリングを通して学んだのはこんな感じか・・・、四日ぐらいかかったのかな。
まだまだ合った気がするが覚えてる限りこんなもんだ。
特にUVの展開やテクスチャの書き込みに一番時間をとられたと思う。
UVマップの展開はなるべくひずみが出ないようにうまくカラーグリッドなどを利用して調整したほうがいいな
ウェイトの設定も大変だった。
ちかれたちかれた。

成果物としてこんな感じ。
hatyune
Blender使って初音ミクを製作中。
ねんどろいどタイプのモデルでも結構手間がかかるものだ。
最初にモデリングを行っていた頃と比べると随分まともになったが
それでももっとクヲリティをあげる必要がある。
商業レベルのもんが作れるようになりたいな。

そういや、いままで3Dのテクスチャの作り方をどうやって行っているのか
疑問だったがyoutubeとかにモデリングを行う動画があって
ソレ見ると疑問の解消に繋がった。

そのほかにも参考サイトみれば案外乗っているものだな。
テクスチャ作成時においてキーとなるのが編集モードでの「Ctrl+e」-シームレスをつける、
UVマップでの「Alt」+右クリックから「w」の整列だな。

この辺を上手く使えば3Dテクスチャ作成の効率・クオリティが大分上がる気がする。

今日で大まかなテクスチャは作成できた。
明日は部分部分にノーマルマップとかつけてボーンを仕込もう。
出来上がったら今度はソレをUnityにコシコシ仕込むよぉ。
フリーで多機能な3DCG作成ソフト【Blender】で現在モデリング中
次作るアプリの構想で有名何処のモデルが欲しいので自分で作れるようにしてみようと思い
3DCGのモデリングを試みる。

現在初音ミクのねんどろいどver的なものを作っている。
参考サイトをみつつ作成に当たっているが思いのほか事が運ぶ。
皮肉なことに以前の会社で習ったスキルがこんな所で生き様とは・・・
まさかあの頃の俺には夢にも思うまい。
もう二度と3Dに携わることなんぞないと思っていたが・・・

と、閑話休題。
一応現在7割がた出来ている。この調子でいけば今週中にはアプリの開発に取り掛かれるか・・・?
ちなみにボディから腕、足、頭、服、髪の毛まで合計16時間って所か。
躓きながもやっていたから、次同じようにする時はもっと早く作れるだろうな。
暇があればここに画像でも載せてみたいものだ。

いやしかし、無料でここまで機能の充実したものが使えるとは。恐れ入る。
UnityのアセットのiTweenを使ってGUIのアクション性を高めようとしたのだが
使っていて上手く操作しなかった所をめもめも。

【問題】
iTweenのメソッド完了時、つまりオブジェクトをアクションさせた時
onCompleteを使用してアクション後の動作を着けたかったが上手く動作しなかった。

【解決】
単純にメソッドに追加するのが足りていなかっただけ。

【詳細】
足りないメソッド(引数?)を追加するのだが
そのメソッドが↓

iTween.ScaleTo(comboText, {"x":3,"y":15,"time": 1.5f,"oncomplete":"itScaleRe","oncompletetarget":this.gameObject});

赤文字の部分がぬけているとoncompleateが呼ばれない
ようは完了時のメソッドを呼ぶときにそのメソッドを実装しているオブジェクトを指定してる。

問題発生時は赤文字部分を省略してたからどのオブジェクトが完了時にどのメソッドを呼んでいいのか
分からなかったのだな。

リファレンスをよんであれこれ推測してココまでたどり着いた・・・
やれやれだ。

Unityで作ったアプリのスクリーンショットをとりたい
所謂画面のキャプチャってヤツだ。

コード自体はいろんなサイトで見かける。
たった一行で実装可能
Application.~
スクリーンキャプチャうんたらかんたらってやつで
("ss.png")引数に入れたstringが画像名になる。
htmlのパスの様に指定することで任意の階層に保存も出来るようだ。

コレをAndroidでやりたいときにはまったのでメモする。

【Androidでやりたいこと】
スクリーンキャプチャを撮る

【問題】
画像が保存されない

【解決】
設定がおかしかった

【詳細】
先にあげた例のとおりにコードを組んで実機で操作した所
画像が保存されなかった。
ただ、Remoteアプリをつかった操作ではちゃんとプロジェクトに保存された。
なにが問題だったかと言うと、
ズバリアプリの保存設定にあった。
PlayerSettingからアプリの保存方法が既存で「本体のみ」となっているので
コレを「sdカード」に変えてやった。←はExtrastrageとかそんな感じで表記されてたと思う。

これでAndroidでも画像のキャプチャを取ることができた。
今度は指定階層に保存してみたい。
ってかただ単に保存しただけだとギャラリーの方に反映されない。
これはSDカードの更新(メディアスキャン)をしてないからだ。
この辺の動作はどうもAndroid側のクラスを使うプラグインが必要らしい・・・
めんどくさ
UnityでのGUI-buttonテキストでちょっとはまった。
解決策をめもめも


[問題]
既存の設定のままのfontを使用していると
いくらフォントサイズを変えても変わらない・・・

[解決方法]
フォントデータを用意して、そのフォントの設定をインスペクタから操作する。

[詳細]
フォントを変えたい場合はフォントデータを持ってきて
そのフォントの設定を変える必要がある
(インスペクタで変更できる)
上記で設定したfontをbuttonのfontとして使うことでGUIbuttonのフォントサイズを変えることが可能
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。