2018年12月2日日曜日

CodePenにBabylon.jsによるプログラムを投稿

 前回エントリ「jsdo.itにBabylon.jsのよる3Dプログラムを投稿」のプログラムを基本コピペでバックアップ的にCodePenにも投稿してみました。

 投稿したプログラムの一覧を今回もNaverまとめで作成しました。 3Dファイルの読み込みが重いせいか、サムネイルの画像が自動に生成されない場合が多く、サムネイル画像ほとんどないですが。。。
以下です。

Naverまとめ
CodePen投稿コードまとめ Babylon.jsで3D表示

 CodePenのPostsという機能でもプログラムの一覧をまとめてみましたが、テキストのタイトル名にリンクを貼っただけのもので、画像のひとつもないのでそっけない感じの一覧となりました。 Postsは本来的にはブログ的な使い方をするもの?
そんなテキストだけの一覧は以下になります。

CodePen Posts
Babylon.js v3.3.0 Practice

2018年11月28日水曜日

jsdo.itにBabylon.jsのよる3Dプログラムを投稿

 タイトルにあるようにjsdo.itに、Babylon.jsという3Dライブラリを使用したプログラムをいつくか作成してアップロードしてみました。

 前にも、自分のNaverまとめ「 jsdo.it投稿コードまとめ Babylon.jsで3D表示その1
 」にまとめているようにBabylon.jsによる3Dプログラムを作成していましたが、今回以下のサイトでBabylon.jsを使いこなしてのゲーム開発について説明されているのを見て、久しぶりにBabylon.jsによるプログラムがしてみたくなりタイトルにあるようなプログラム投稿となりました。

CEDEC2018発表資料 「編隊少女 -フォーメーションガールズ-」における3Dレンダリング技術解説 Babylon.jsとBISHAMON WebGL版の合成
WebGLフレームワーク「Babylon.js 3.3.0」リリース!VR向けGUI対応、パーティクルエフェクト強化、動画キャプチャー機能など


作成して投稿したプログラムの、画像サムネイル付きのNaverまとめでの一覧は以下になります。

jsdo.it投稿コードまとめ Babylon.jsで3D表示その2
jsdo.itに投稿したBabylon.jsバージョン3.2による3Dプログラム
約15個のプログラムの一覧を表示しています

jsdo.it投稿コードまとめ Babylon.jsで3D表示その3
jsdo.itに投稿したBabylon.jsバージョン3.3による3Dプログラム
約70個のプログラムの一覧を表示しています

 今回久しぶりに使用したBabylon.jsでは、glTFという3Dモデルのファイルフォーマットがアニメーション付きのものも含めて非常によく表示できたと感じました。
 物理演算もOimo.jsやCannon.jsといった物理演算ライブラリをラップして使えるようです。 
 あとは、個人的にですが、Three.jsと比べてGUIの機能がかなりBabylon.jsライブラリ自体の機能として取り込まれていて、ゲームなどのインターフェースが作りやすそうだと感じられました。


 以下、投稿順とは一致してませんが、おおまかな区分と説明で分類してみたjsdo.it投稿プログラムの一覧です。 Babylon.jsのバージョンは3.3.0でのものです。

区分は以下のようになっています
①基本機能
②GUI機能とSound機能
③Tween的アニメーション機能
④glTFファイル形式の3Dモデル表示
⑤glTFファイル形式のアニメーション付き3Dモデル表示
⑥glTFファイル形式の3DモデルアニメーションをGUIボタンで切り替え
⑦babylon形式の3Dモデルを表示


①基本機能
基本的な機能、単純な3Dオブジェクトを表示したり、ただテクスチャをそれらに貼り付けて表示する機能を試したプログラムの一覧です。
Babylon.js v3.3.0 でBoxを表示

Babylon.js v3.3.0 でSphereを表示

Babylon.js v3.3.0 でPlaneを表示

Babylon.js v3.3.0 でCylinderを表示

Babylon.js v3.3.0 でTorusを表示

Babylon.js v3.3.0 でTorusKnotを表示

Babylon.js v3.3.0 でLinesを表示

Babylon.js v3.3.0 でテクスチャを貼り付けたPlaneを表示

Babylon.js v3.3.0 テクスチャを貼り付けたBoxを表示

Babylon.js v3.3.0 でテクスチャを貼り付けたSphereを表示


②GUI機能とSound機能
Babylon.jsによるラベルやボタン表示の機能、サウンド再生機能、3Dオブジェクトをクリックしたときの機能、Cannon.jsでの衝突判定、等を試しています。
Babylon.js v3.3.0 で3D GUI機能テスト

Babylon.js v3.3.0 でGUI機能テスト

Babylon.js v3.3.0 で3D GUI(MeshButton3D)機能テスト

Babylon.js v3.3.0 でSound再生機能テスト

Babylon.js v3.3.0 でSound on Mesh再生機能テスト

Babylon.js v3.3.0 でGUIのボタン・ラベルの機能いろいろテスト

Babylon.js v3.3.0 でGUIボタンでBox操作してみるテスト

Babylon.js v3.3.0 で衝突判定つき3Dオブジェクトを操作してみるテスト

Babylon.js v3.3.0 でカメラの位置操作を対象オブジェクト周りでできるようにしてみるテスト

Babylon.js v3.3.0 で回転・前進操作を対象3Dオブジェクトに設定してみるテスト

Babylon.js v3.3.0 でArcRotateCameraの位置操作を対象オブジェクト周りでできるようにしてみるテスト

Babylon.js v3.3.0 のTrigger機能で3Dオブジェクトへのクリック・タッチ判定テスト

Babylon.js v3.3.0 でClick/Touch処理の3Dオブジェクトへの追加テスト


③Tween的アニメーション機能
Tweenという名前で呼ばれている、プログラム上で操作対象の動きを指定する機能を使用してみました。 Babylon.jsではAnimationという名前でそのTween的機能が提供されているようでした。
Babylon.js v3.3.0 でAnimation

Babylon.js v3.3.0 でAnimationその2

Babylon.js v3.3.0 でAnimationその3


④glTFファイル形式の3Dモデル表示
glTFというファイル形式の3Dモデルを表示しています。 最初にBabylon.jsをさわりはじめたころは、あまりうまく表示できず一度挫折しましたが、今回のBabylon.jsのテストではほぼ問題なく表示できました。 今回作成したBabylon.jsによるプログラムの大部分はglTFによる3Dモデルの表示になっています。
Babylon.js v3.3.0 でMagicaVoxelで作成した3DモデルをglTFファイルに変換して表示

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その2

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その3

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その4

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その5

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その6

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その7

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その8

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その9

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その10

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その11

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その12

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その13

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その14

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その15

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その17

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その20

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その21

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その22

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その24

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その27

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その28

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その29

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その32

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その34

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その36


⑤glTFファイル形式のアニメーション付き3Dモデル表示
glTF形式のアニメーション付き3Dモデルを表示しています。 今回は、アニメーション付きのものまでサクッと簡単に表示できてしまいました。 3Dモデルの読み込み時、アニメーション時に処理重い場合はありますが。
Babylon.js v3.3.0 でglTFファイル形式アニメーション付き3Dモデルを表示

Babylon.js v3.3.0 でglTFファイル形式アニメーション付き3Dモデル(重め)を表示

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その16

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その18

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その19

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その23

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その25

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その26

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その30

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その31

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その33

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その35

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その37


⑥glTFファイル形式の3DモデルアニメーションをGUIボタンで切り替え
Babylon.jsの機能で表示できるGUIボタンで、3Dモデルのアニメーションを切り替えられるようにしてみました。 ゲームなんかで3Dモデルのアニメーションを切り替えるのに利用できるかもしれません。
Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その38

Babylon.js v3.3.0 でglTFファイル形式3Dモデルを表示その39


⑦babylon形式の3Dモデルを表示
Babylon.jsのbabylon形式3Dファイルを表示しています。 表示だけ、アニメーション付き、アニメーション切り替え機能付き、とあります。
Babylon.js v3.3.0 でbabylonファイル形式3Dモデルを表示
3Dモデルのアニメーションとその切り替え機能付き

Babylon.js v3.3.0 でbabylonファイル形式3Dモデルを表示その2
3Dモデル表示のみ

Babylon.js v3.3.0 でbabylonファイル形式3Dモデルを表示その3
3Dモデルのアニメーション

Babylon.js v3.3.0 でbabylonファイル形式3Dモデルを表示その4
3Dモデルのアニメーション



あとはこのプログラム
ES6(ES2015)ではじめてのBabylon.js Ver.3.2.0 元ネタ
のように、ECMAScriptによるBabylon.jsのプログラムもできるようなので、そのうち気が向いたらECMAScriptによる書き直しなんかもやってみるかもです。

2018年9月22日土曜日

Sketchfabに登録・投稿

 Sketchfabという3Dモデルを投稿(販売も?)できるサイトに登録して、MagicaVoxelというドット絵のような3Dモデルを作成できるソフトで作ったモデルを投稿してみました。

その3Dモデル投稿しているサイトはこちらです。

https://sketchfab.com/siouxcitizen

  
 投稿するときに少しだけ悩んだので、それについてもメモしておきます。 しばらくすると内容忘れて、また同じことに悩みそうな自分に向けて。

 MagicaVoxelで作成した3Dモデルをobj形式のファイルとして出力した場合、Sketchfabへのアップロード時には、OBJファイル、MTLファイル、TGAファイルの3つのファイルをアップロードする必要がある。 以上がメモです。

 3Dモデルの本体となるOBJファイル、テクスチャになるTGA画像ファイル、そのOBJファイルとTGAファイルを関連付けるMTLファイル、後でゆっくり考えてみれば当然な3ファイルでしたが。。。

BloggerとGoogleサイトにGoogle Analyticsを設定しました

 Bloggerで作成しているこのブログとGoogleサイトで作成しているWebサイトにGoogle Analyticsを設定してみました。

 以下のサイトを参考させていただきました。

 ・BloggerおよびGoogleサイトにAnalyticsを導入する
 
 ・新しいGoogle Sitesを使い倒してみた

 上記2サイトのおかげか昔一回設定したときの記憶に比べて、はるかに簡単に設定できました。

 設定に必要なことがちゃんと登録されていれば、Google Analyticsの設定は24~48時間後?に反映されるようです。 うまく設定できてるいいな~。 ちょい自信ないが。

Google Sites(Google サイト)を使ってWebサイトを作成してみました

 Google Sites(Google サイト)を使用してWebサイトを作成してみました。

 とりあえず、これまで自分で撮った田舎の写真でよさそうなものを整理・整頓的に表示するだけのサイトを作成してみました。 Flickrにアップロードしている写真のサムネイルをレイアウトを調整しながら表示しているページです。 

その作成したページはここです。 田舎の兵庫県豊岡市の写真が並べてあります。

https://sites.google.com/view/siouxcitizen/%E8%B1%8A%E5%B2%A1%E5%B8%82%E5%86%99%E7%9C%9F%E9%9B%86


 まだそんなにGoogleサイト使ったわけではありませんが、少し使用して感じたのは、慣れてくると画像のレイアウト編集が行いやすいということでした。 Google サイトでは画像だけではなくYoutube動画やGoogleドキュメント、iframeを使っての?サイトの埋め込みなどもできるようなので、それらをまとめるだけのサイトでもそれなりのものができるかも。 ついでにJavascriptなんかもちょっとしたものなら埋め込める機能があるようでした。

 しばらくいろいろなまとめ的に使用してみようかと考えています、Google サイト。

 Googleのサービスでちょくちょくある、なにかのタイミングでいきなりサービスやめる、サービス大幅変更するというイベントが起こらないことを祈りながら(Google サイトはそのサービス大幅変更するやつがわりと最近あったみたいだけど。。。)。

2018年8月2日木曜日

Unity使ってみました その2

 このブログエントリからかなり月日がたってしまいましたが、久しぶりにまたUnityを触ってみました。

 久しぶりだったのでほぼ完全にUnityの操作を忘れていました。。。

 今回はUnityのGUIインターフェースの練習的なものを作成してみようと思い、テキストとボタンの機能だけをメインにしたクイズをUnityで作ってみました。

 少しづつ細かい部分を改善しようとすると、すぐ調べることが増えてしまい、単純なクイズでしたがわりと作成に手間がかかってしまいました。 3Dゲームでなく、2Dゲームですらなく、ただのボタンとテキストによるクイズなのに。。。

ちなみにその作成したクイズ「徳川将軍クイズ」をunityroomというサイトに投稿してみたものはコレです。
https://unityroom.com/games/tokugawa_shogun_quiz


以下、Unityによるクイズ作成にあたって参考にしたサイトです。


■■■■■①uGUI クイズアプリ作成 調べ■■■■■
・uGUI概要
uGUIチュートリアル
UIデザイナーが知っておきたいUnityの3つの機能

・クイズアプリ作成
uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化
Unityでクイズアプリ作成のリンク

 まず最初に「uGUI概要」にあるサイトでUnityのuGUIという機能がだいたいどのようなものか把握してから、「クイズアプリ作成」にあるサイトの説明をもとに大まかなクイズ機能を作成しました。


■■■■■②古くなった非推奨の機能を修正■■■■■
参考サイト
Unity 5.3 で Application.LoadLevel が Obsolete になりました
【Unity】 LoadLevelは古いのでLoadSceneを使う
Unity5版のヒヨコ本を読む の続き
を参照しながら、

①の「クイズアプリ作成」にあるサイトで使用されている「Application.LoadLevel 」や「Application.loadedLevelName」を以下のように修正。 それらは古くなって、使用が非推奨になったようなので。

using UnityEngine.SceneManagement;
を忘れずに追加してから

■ 例1
Application.LoadLevel ("Title");

SceneManager.LoadScene ("Title");
と変更

Application.loadedLevelName;

SceneManager.GetActiveScene ().name;
と変更

■ 例2
if (Application.loadedLevelName == "Title") {
    Application.LoadLevel ("Quiz");
}

if (SceneManager.GetActiveScene().name == "Title") {
    SceneManager.LoadScene ("Quiz");
}
のように変更


■■■■■③配列、とそのシャッフル■■■■■
 クイズ問題の回答4択選択肢をシャッフルするために、Unityの配列と配列要素のシャッフルの仕方について以下のサイトを参考にさせてもらいました。

Unityで2次元配列を使う
Listをシャッフルしたり、ランダムに取得したり、先頭から取り出したり【C#】【拡張メソッド】
ランダムなゲームプレイ要素の追加


■■■■■④数値 小数点計算 切り上げ■■■■■
 以下サイトを参考にして、クイズの正答率を計算して表示するために、int型からfloat型に変換して計算、計算後に小数点を切り上げてint型に戻して表示するための処理を作成しました。 小数点を切り上げて整数化する処理には関数CeilToInt(x)を使用。

【Unity】C#で数値変換
C#での型変換
覚えておくと便利なMathf関数
Unityプログラミング基礎 (変数からclassまで)


■■■■■④unityroomに投稿■■■■■
 作成したクイズをWebGLで出力してunityroomに公開する作業は、前回と同じように以下のサイトを参考にして行いました。

【unity】WebGLビルド方法
【unity】unityroomに投稿する方法
作ったゲームを公開する


■■■■■⑤WebGLでの日本語表示■■■■■
 最後に、④で公開してみると日本語が表示されなくなっていたので、下記サイトにある手順を参考にして日本語が表示できるように修正しました。

 WebGLで公開すると、Unityが使うArialフォントが日本語対応できず?、日本語表示できないとあったので、下記サイトを参考に必要フォントを取り込んで表示できるようにしました。  自分はM+フォントの「mplus-1c-regular」をUnityに取り込んで使用しました。 フォント関係を使用するときは権利関係にいろいろ注意とのこと。

 さらについでに、M+フォントを取り込んだ後でもまだ表示されなくなっている日本語が一部残りましたが、それはフォントのサイズまたはフォント表示用の幅・高さを調整することで表示できるようになりました。 けっこうハマって、ウンウン苦しんだのでメモしておきます。

・解説サイト
UnityのWebGLで日本語を表示する
Unityで日本語フォントの使用方法!
Unity+WebGLでビルドした時に日本語が表示されない問題への対応
WebGLで日本語が表示されない時の対処方法

・フォントサイト
Google Noto Fonts
M+ FONTS
M+ FONTS About
PixelMplus(ピクセル・エムプラス) ‥ 8bitビットマップふうフリーフォント



こんだけやって、やっとショボいクイズが公開できました。
疲れた~

2018年5月4日金曜日

jsdo.it に投稿したMV動画再生プログラム13選

 久しぶりに、前のこのエントリの続きでアクセス1000を越えたMV動画再生プログラムをリストしてみます。 久しぶりに確認してみるとけっこう1000アクセス超えるものが増えていました。 お好きなアーティストさんの動画の連続再生あれば、ご視聴ください。 たまに動画削除されてて再生できなくなったりしてますが。。。 

その①
[シャッフル機能付き] 作業用にスピッツのYoutubePV動画リストを連続再生













その②
[シャッフル機能付き] 作業用にONE OK ROCKのYoutubePV動画を連続再生

その③
[シャッフル機能付き] 作業用にT.M.RevolutionのYoutubePV動画を連続再生

その④
[シャッフル機能付き] 作業用にアンジェラ・アキのYoutubePV動画を連続再生

その⑤
[シャッフル機能付き] 作業用にCAPSULEのYoutubePV動画を連続再生

その⑥
[シャッフル機能付き] 作業用にBiSH(ビッシュ)のYoutube動画を連続再生

その⑦
[シャッフル機能付き] 作業用にamazarashi(アマザラシ)のYoutube動画を連続再生

その⑧
[シャッフル機能付き] 作業用にPerfumeのYoutubePV動画リストを連続再生

その⑨
[シャッフル機能付き] 作業用に和楽器バンドのYoutube動画を連続再生

その⑩
[シャッフル機能付き] 作業用にAlexandros(アレキサンドロス)のYoutubePV動画を連続再生

その⑪
[シャッフル機能付き] 作業用に槇原敬之のYoutubePV動画を連続再生

その⑫
[シャッフル機能付き] 作業用にBABYMETALのYoutubePV動画を連続再生

その⑬
[シャッフル機能付き] 作業用にBryan AdamsのYoutubePV動画を連続再生



番外編

1000アクセス超えたけれども動画が削除されてしまって、動画再生プログラムを作成し直したもののリストです。

その① Mr.Children ミスチル
[[[現在再生不能]]] 作業用にMr.ChildrenのYoutubePV動画リストを連続再生
↓ 
[シャッフル機能付き] 作業用にMr.Children(ミスターチルドレン)のYoutubeライブ動画を連続再生
  MV動画がいつもまにかほとんど削除されていたので、ライブ動画をメインに動画再生プログラムを作成しなおしてみました。 ライブ動画でもMV動画に遜色ない感じ。 さすがのミスチルさんやで。


その② 宇多田ヒカル
[シャッフル機能付き] 作業用に宇多田ヒカルのYoutubePV動画リストを連続再生

作業用に宇多田ヒカルのYoutube動画を連続再生
 同じようにMV動画がほぼ削除されていましたが、ほぼ同じMV動画が違うYoutubeのIDで復活してました。 なんだったんだろう? よくわかりせんが、もう一度動画再生プログラム作成しました。 最初の動画再生プログラムに、新しい曲の動画や、ライブ動画も少し追加してみました。


その③ クリスマスソング集
[シャッフル機能付き] クリスマス用にクリスマスソングのYoutube動画を連続再生

[シャッフル機能付き] クリスマス用にクリスマスソングのYoutube動画を連続再生
 確認したら削除されて再生されない動画がひとつあったので、プログラムを作り直しました。 jsdo.itのアカウントが新しくなったので、最近は小さな曲目の修正でも作り直しとなってしまってます。