リンク辿ると、なんか実写( これも対外加工してる? ) の tiktok で、それを Stable Diffusion 使ってアニメ化したんでろうか。このへんが今進化の激しい AI 系で、それを Twitter にツイートしてたのが引用リツイートでタイムラインに回って来る。 という解説。
実写なのかアニメなのかAIなのか、そういうのすっ飛ばして純粋にすごい…pic.twitter.com/Wl0WUEaRfu
— 栗林和明 (@kri1226) February 6, 2023
|
リンク辿ると、なんか実写( これも対外加工してる? ) の tiktok で、それを Stable Diffusion 使ってアニメ化したんでろうか。このへんが今進化の激しい AI 系で、それを Twitter にツイートしてたのが引用リツイートでタイムラインに回って来る。 という解説。
実写なのかアニメなのかAIなのか、そういうのすっ飛ばして純粋にすごい…pic.twitter.com/Wl0WUEaRfu
— 栗林和明 (@kri1226) February 6, 2023
いろいろ調べても見つけられなかったので、自分で確かめました。 このテストでは、Three.js の v65 を使用していますが、Windows8.1 で使うにあたって、OrbitControls がちらつくようになっていたので、v57 と比べて少し変更してちらつかずに視点変更をできるようにしました ▼ テストに使った内容 Three.js : WebGL限定の Cube テクスチャによる『パノラマ背景』
というか、それが普通の開発環境。 しかし、実機で動かすと動かない。Not Found となる。 さらに、出たばかりの Windows Phone 8 SDK のエミュレータでは・・・ エミュレータでも、localhost が動かない。 Android は そもそも localhost は使えないし、別の PC 扱いなので使えないのが当然。エミュレータであろうと、localhost が使えたのがおかしいとは言えるんだけれど、実際全く世の中に認められていなかったので、そんな仕様になってたんだろうな・・・。※ Windows Phone 8 エミュレータ。 ( Windows Phone 7 のエミュレータも動くし、7 のコードは一部の問題を除いて動作します ) で、今日出た問題は・・・ 日本語入力で『かな10キー』が表示されないので、『設定』で追加すると使えるようにはなるけれど、エミュレータを終了させるとリセットされる。 どないせよと。
これも 高橋 忍氏のブログですね。 秋コン:実質5行で作るMusicPlayer 学生が音楽アプリ作ろうとして見つけたんですが、学生がカメラを使える事を教えてくれました。しかし、Zune っていらんわ・・・ほんまに。実機デバッグの仕方に注意 Zune で接続しているときには、写真や音楽系のデバッグができません。そこで、このようにしてデバッグします。 Zune でデバイスとPCを接続して同期接続にする Zune を終了させる C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect\x64\WPConnect.exe もしくは C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect\x86\WPConnect.exe を実行する この状態なら音楽系のデバッグもできます。たしかに、動きました。これで、カメラで撮った画像を WEB にアップロードするプログラムはすぐできます。Twitter や Facebook にカメラで撮った画像をアップロードも近いうちに学生が作ってくれる予定です。
もっとかかると思ったんですが、Windows8 の発売にあわせて来たようです。以下がこの二日の間に書かれた記事で、どれも目を通しておく価値があります。動かしてすぐ思ったのは、エミュレータがかなり変わった感じで、実際『戻る』ボタンでデバッグしているアプリが終了しない、というところでした(『Windows Phone SDK 8.0 で注意したいこと』に書かれてます)。 Windows Phone 8.0 Emulator のキー割り当て WP7アプリをWP8アプリで動作したら。が・になる Windows Phone SDK 8.0 で注意したいこと WP8SDK で提供されるもの Windows Phone SDK 8.0 リリース
App.xaml.css 全体 App クラスにプロパティを定義
// メインページのインスタンスを格納 public MainPage mainPage { get; set; } public Page1 page1 { get; set; }
※ 宣言を static にすると、キャストが必要無くなります。
MainPage.xaml.cs
public partial class MainPage : PhoneApplicationPage { // コンストラクター public MainPage() { InitializeComponent(); // メインページの参照を App のプロパティにセット (App.Current as App).mainPage = this; } private void ApplicationBarMenuItem_Click(object sender, EventArgs e) { if ((App.Current as App).page1 != null) { // ページ1のクラス Debug.WriteLine((App.Current as App).page1.GetType()); // Page1 のページタイトル Debug.WriteLine((App.Current as App).page1.PageTitle.Text); } Debug.WriteLine(((ApplicationBarMenuItem)sender).Text + " がクリックされました"); this.NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); } }
Page1.xaml.cs
public partial class Page1 : PhoneApplicationPage { public Page1() { InitializeComponent(); // ページ1の参照を App のプロパティにセット (App.Current as App).page1 = this; } }
テンプレート Windows8(C#) 2ページテンプレート データ http://textt.net/sworc/20120924055943.txt JSON処理 JSON.net の文字列から内容の参照のバターンサンプルがわりと全く無かったので作成 Json.NET - James Newton-King BasicPage1.xaml.cs 内では、直接 DataContext にセットしているので、その時点でバインドされて表示されます。
<!-- HttpClient で取り出すデータの為に追加した TextBox --> <TextBox x:Name="TextBox1" HorizontalAlignment="Left" Height="26" Margin="128,34,0,0" Grid.Row="1" TextWrapping="Wrap" Text="{Binding Path=id}" VerticalAlignment="Top" Width="143"> </TextBox>
BasicPage1.xaml.cs
namespace App74 { public sealed partial class BasicPage1 : App74.Common.LayoutAwarePage { private HttpClient httpClient; private string responseBodyAsText; private Class1 class1 = new Class1(); public BasicPage1() { this.InitializeComponent(); this.init(); } private async void init() { httpClient = new HttpClient(); httpClient.MaxResponseContentBufferSize = 256000; httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"); HttpResponseMessage response = await httpClient.GetAsync("http://textt.net/sworc/20120924055943.txt"); response.EnsureSuccessStatusCode(); responseBodyAsText = await response.Content.ReadAsStringAsync(); class1 = JsonConvert.DeserializeObject<Class1>(responseBodyAsText); TextBox1.DataContext = class1; // class1.NotifyPropertyChanged("id"); } protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { } protected override void SaveState(Dictionary<String, Object> pageState) { } } }
オブジェクトのすべてのプロパティが変更されたことを示すには、PropertyChangedEventArgs の PropertyName プロパティに String.Empty を使います HttpClient のサンプルソースは、こちらから参照できます。 Microsoft のドキュメントならこのページです。 バイント用のクラス : Class1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ComponentModel; namespace App74 { class Class1 : INotifyPropertyChanged { public Class1() { } public event PropertyChangedEventHandler PropertyChanged; public string id { get; set; } public void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } }
※ id のみ実装しています ドキュメントリンク windows8
v6.2 build 9200![]()
「C:\Users\ユーザ名\Documents\Visual Studio 2012\Templates\ProjectTemplates\Visual C#」ディレクトリに「Windows Store」ディレクトリを作成し、その中にテンプレートを入れる かなり酷いバグです。Windows8 の問題では無く、Visual Studio の問題だとは思いますが、10数人で実行してとてもとても高い確率(ほぼ、殆ど)で発生します。 ページを追加する際に、新しいクラステンプレートファイルがいくつか Common フォルダに追加され、BasicPage1.xaml と BasicPage1.xaml.cs が追加されるのですが( MainPage.xaml と同じ場所 )、その後プロジェクトに登録するところでフリーズします。 ですから、いったん Visual Studio を強制終了させて、それらの追加されたファイルを『既存』として追加登録すれば正常な状態になります・・・が、いちいちフリーズさせてられないので、『クイック スタート: アプリ バーの追加』にある内容を実装してテンプレート化してあります。 ( アプリバーの『HELP』をクリックすると、BasicPage1に移動 ) この際、Common フォルダにある StandardStyles.xaml の該当するコメント部分を解除しないと、StaticResource EditAppBarButtonStyle 等がエラーになるのでその処理も済ませてあります。 しかし・・・相当酷いバグですね・・・。 ページをさらに追加したい場合は、BasicPage1.xaml 部分で CTRL+C して CTRL+V すると、通常のエクスプローラと同様にコピーされるので( .cs も同時コピーされます )、名前を BasicPage2.xaml に変更してから、中身の BasicPage1 の 1 を 2 を全て変更するとページ追加になります。( BasicPage1.xaml と BasicPage1.xaml.cs と両方行って下さい )
凄い私的な計画が前提です。 関連する記事 Windows Phone(C#) 基本テンプレートの解説 まずは、SDK をダウンロード この中には、Visual Studio 2010 の Windows Phone 用 Express や、その他もろもろが入っています。ダウンロードするファイルは、vm_web2.exe というオンラインインストール用プログラムです678 M あるので、しばらくかかります。 ( 現在進行中 ) そういえば、Windows8 のプログレスは完全にアニメーションになってしまってますが、結構かっこいいです。( JavaScript Metro でのお話 ) しかし、Fate/Zero 終わってしまいましたが、後半は救いの無い話でした。あの後、Fate/stay night へと同じノリでアニメとか無いんでしょうか。それに、そろそろホライゾンが始まると思うのですが、個人的にはアクセル・ワールドが大好きです。 Adobe が Flash Player のモバイル開発を完全に打ち切ったと報じられていますが、AIR For Android は継続するはずなので、別にどうでもいいや・・・って言うのが正直なところ。それより、モバイルのブラウザがもっと、モバイルのネイティブな API の仲介役になってくんないかなぁ・・・と思うのです。そのほうが、何かと世の中が活気づくと思うんですが。 AIR で作る Android アプリは、予想以上に簡単に作れてしまうし、Flex でできてた事がそのまま移行できる可能性が非常に大きいので、Java でガリガリ書くよりは、これも世の中が表層で動くと言うか、活気づいてくれるファクターであるとも思うのです。そういう意味で、昨日テストした Native Extentions の成果はとても満足するものでした。 AIR だと、こんなリストは簡単に作れてしまうし。
ちょっと古いライブラリですが、Papervision3D で dae をロードするのは実機で確認済ですし、たぶん Flex ベースの FLARToolkit も乗りそうな気もするのです( 非 Flex では実装した人が居たようですし )
![]()
( 現在 516 M ) ※ Office 製品は、吹き出し作るのに最適だ。 で、Android の導入部分は区切りが付いたので、せっかく資料を置いていってくれた Microsoft さんに感謝しつつ、Windows Phone に手を染めてるわけですが、普通に WebClient 使ったサンプル置いていってくれたのはいいんですが、逆に底辺部分に不明が多い現状なので、テンプレートをチェックしたいと言うのが主な目的です。というか、Windows8 の JavaScript Metro が Windows Phone で動くとかあるのかなぁ・・・・。あると話が簡単でいいんだけどね。 C# ですが、例によってデザイナ上のコントロールをダブルクリックすると、イベントコードが作成されるようなので、そのへんはさすがに他の追随を許さないと認識できるんですが、結局『人間』がする事なので、Microsoft の関係者の努力で良い環境を作ってくんないと、いいものでも流行るとは限らないですし。と、言うか『人材』が重要だと思ったりするわけです。 ※ ダウンロードが終わってインストールが始まった で、SIM とか無くていいので、実機を安く手に入れれるようになって欲しいですよね。まだ過渡期だから、何がどうなるやら・・・って言うのは解るんですが、中古でいいから『おねがい』ってのが正直な気持ち。 インストール終わっても、Windows Live ID 経由の登録作業があるんだけど・・・黒子に間に合うんだろうか。 しかし、何で iPhone はあんなに敷居が高いんでしょうね。あれじゃあ学生レベルでは手が出ないし、教えるほうとしても、効率が悪すぎるの選択肢からは外さざるを得ない。と言うか、日本じゃ Apple 触るプログラマって、純潔種ではなかなか・・・、レアと言うか。
やっと、次へ進める。 このダイアログは閉じて、指示通りに『Microsoft Visual Studio 2010 Express for Windows Phone』を実行。つまり、メニューの「ヘルプ」の「製品の登録」から登録を行うとの事。
真ん中のボタンをクリック。 ブラウザが開くので、英文ですが * の付いた必須項目だけを入力するか、選択します。一番最後の『メールを送るよ』チェックは外しておきましょう。英文で送って来られても困るので。そして、続けると キーが表示されます。後でメールにも送られるそうですが、その場で入力するのでコピーしておきます。と言うか、今待ってるダイアログに入れてやります。 で、次からはすぐには必要無いと思われる、アプリ配布用の登録だと思われますが、http://create.msdn.com/ja-JP/ に行って『メンバシップに』移動していろいろ登録するとの事です。まだ、何も予定無いのでこれは後回しにしたいと思います。というか、もうすぐ黒子が始まってしまいます。
さっそくですが、プロジェクト開始。
ん・・・。黒子始まってしまいました。
ま、とりあえず今日はこれで終わり。
![]()
3D モデルをクリックしたら終了してしまうバグがあったので修正しました。それと、zip 書庫はテクスチャが1枚でないとうまくいかないので、ふつうの DAE にしました。そこで、3D モデルデータも増やして、追加ロードできるようにしました。![]()
![]()
Papervision3D_2.1.920 を使って昔 Web 上で動作する Flex のアプリを Flex4 の AIR に書き換えてみたものです。データは、もともとはメタセコイアのものですが、Blender で読み込んで .dae で出力しました。 Papervision3D は、もう更新がされていない見はなされたライブラリですが、Canvas 使った Three のライブラリを Google Chrome 上で動かすより CPU 付加は低かったりします。時代が変わったせいで、Papervision3D の書き方と Three.js の書き方を比較したりしていますが、これはこれでアリだと思っているのは、iPhone では Canvas は 3D 目的では使い物ににならない(Safariの話)ので、AIR ならひょっとして iPhone のアプリとして動作するようなので、しばらくはプログラマの趣味として意味あるかな・・・なんて。 Papervision3D は、zip 書庫の処理も実装されているので、.dae と テクスチャを zip 書庫にして参照できるのもちょっとうれしいです。このパッケージに入っている DAE_v.as は、昔必要だったのでそのへんを最適化したコードのはずなんですが・・・あんまりよく覚えていません。 ま、動くからいいか。 関連する記事 Adobe AIR Flex をだれでも簡単に作成できるパッケージ : ★ 超シンプル FLV プレーヤー ★ Three.js で使う為に、メタセコイア等のデータを変換して WEB で表示する Papervision3D Papervision3D Official Documentation SDK Download Adobe Flex SDK
![]()
![]()
![]()
下のキャプチャは、Google ギャラリーのデータをスケールや座標を調整してロードしたものです(テクスチャを dae と同じところに置いて、dae の中のバス記述を変更しています)。
dae2.x = 5; dae2.y = -30; dae2.z = -140; dae2.scale = 4; 3Dデータについて モンスター 3D モデルは、光陰像型さんが作成されたメタセコイアデータを Blender で、Collada( dae ) に変換して使用しています
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。 Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。 また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。 ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです 対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。※ エキスパートモードで表示しています アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
<% if:page_name eq 'archive' -%> アーカイブページでのみ表示される内容 <% /if %> <% if:page_name eq 'category' -%> カテゴリページでのみ表示される内容 <% /if %> <% if:page_name eq 'tag' -%> タグページでのみ表示される内容 <% /if %>この記述は、以下の場所で使用します![]()
|