約 2,257,626 件
https://w.atwiki.jp/3dcustom/pages/10.html
v0.6には下記ツールが含まれます。 TAHdecrypt does en/decryption of TAH files. TSOdecrypt en/decrypts TSO files. Modresolver tries to solve incompatibilities with different mods. TAAnimator lets you animate single pose png-pose files. TABrowser lets you brwose through tah files and watch their tso content files (with 3D preview). 要件:.NET Framework 3.5 代替ツール 2010/04/23 現在ダウンロードできませんが、それぞれに代替ツールがあります。 TAHdecrypt TAHdecGUI, TDCGExplorer TSOdecrypt Tso2Mqo Modresolver TDCGExplorer TAAnimator TMOAnim, TMOComposer TABrowser TDCGExplorer DL 配布サイトHongFire Anime Networkは会員登録が必要な海外のフォーラムです。 Download ※バージョンによって展開できないものがあったりする。 ※2010/04/23 現在リンク切れ(topページに飛ばされる) 使用方法 「すべてのファイルとフォルダを表示する」をチェックし、「登録されている拡張子は表示しない」のチェックを外していることを前提 マイクロソフトのサイトからMicrosoft .NET Framework 3.5をDL、インストール。約600MB #2.0でも動作可という報告があるが開発者は3.5を指定 1.[TDCG]TDCG_MOD_TOOLS.7zを7-zip4.57等で展開 2.展開後作成された\TDCG_MOD_TOOLSフォルダ内のTAHdecrypt.exeに、3Dカスタム少女インストールフォルダの\arcsフォルダ内のTAHファイルをドラッグ ドロップ 3.うまく展開できない場合は、フルパスで2バイト文字を含まないフォルダにTAHdecrypt.exeとTAHファイルを移動して試す 4.展開後作成されたフォルダ内のTSOファイルを、\TDCG_MOD_TOOLSフォルダ内のTSOdecrypt.exeにD D 5.TSOファイルを展開した場合再梱包は4で作成されたフォルダをTSOdecrypt.exeにD D 6.元のTHAファイルに再梱包したい場合は5の後、2、3で作成されたフォルダをTAHdecrypt.exeにD D 7.新規のTHAファイルに梱包したい場合はTSOファイルを別フォルダに移してTAHdecrypt.exeにD D 8.元のTHAファイルに存在しているTSOファイルはそのままでも、新規のTHAファイルに存在するTSOファイルが優先される !8はsp1で一部不可となった模様。追加情報頼む。 !Thumbs.dbファイルがあると正しく再梱包されない模様、要削除。 上記と同様にフォルダオプションで「縮小版をキャッシュしない」にチェックを入れると、それ以後Thumbs.dbは作成されない。 !この方法では作成されるファイル名が数字の連続になる。 ファイル名をわかりやすくするためには、ファイルがどこにあるのか?も読んでから実行すること。
https://w.atwiki.jp/cominterest/pages/323.html
l | fr=t゙! 」 |l_l | j | }三三{ |_| O二二二r─┴─‐┤_rO二二二二) 。‐,─。‐,──‐,、‐〈l=! }三三{ O二二|〈_〈()_!|r‐t-f'二 O二二二二) /三三[四l|__」!_!r‐t_' |´ ∩ _____rュュュュt r=='====, ____ゝニノ!=====┐ ∪ _|「_l_]|」_|_|二二二l___/|「_l_」_!_「_l ∩_|l ̄l ̄l ̄l ̄l ̄l ̄l ̄l ̄| 」f-_‐'__,.、<_i======r─t___,lニニニo_)_ニニ!イ∪´  ̄ ̄ ̄ ̄ ̄' ,三三三三| /- - -,. ´ O) ″  ̄ /´- - - - ´f' l三三三三| /,.、、、 ´__,イ!f________f' ____... i | _ _ _ _ _ _ |三三三! `} 三三 { - -ニニニニニニニニニニ´} 三 三 {`ー-|_ _ _ _ _ _ _ _ _ _ _ _ _ _ |、_l≡≡| ',三三 ', r┐ 〝〝〝〝〝〝〝〝〝 ',三三 ',ノ /└────────┘ ゝ_ノ! ヽ三三ヾノ、_rt_rt____rt_,rt_ヽ三三ヾ |O)l l||lO l l|llO l l||lO l l||lO l |三/ ヽ三三ヾ、 、 ; 、 ; 、 ヽ三三ヾ ヾ'∧、 '∧、 '∧、 '∧、 'ノ/ ==゙= ‐ ´ ゙ ====゙='==゙=='====== '"´ロシア陸軍 BMP-T戦車支援戦闘車
https://w.atwiki.jp/3dcustom/pages/108.html
ShadeTex(影テクスチャ)について このページは 3Dカスタム少女で使用されるテクスチャの一種である、ShadeTex(影テクスチャ)についてのページです ShadeTex(影テクスチャ)とは 物体の表面が何色であるかを決定するテクスチャ二種の内のひとつです。 決まった呼び名はありませんが、影テクスチャとかShadeTex(cgfxShaderファイルのShadeTexという項目に書かれているので)などと呼ばれます。 以降、本ページでは影テクスチャと表記します。 ポリゴン面の各ピクセルが何色であるかは、次の計算によって決定されます。 (テクスチャ * ColorBlend * 0.1) * (影テクスチャ * ShadeBlend * 0.1) * ハイライト * HighLightBlend * 0.1 テクスチャ画像から各ピクセルへの割り当ては、テクスチャの場合UVによって、 影テクスチャの場合光線ベクトルとポリゴン面の法線ベクトルとの角度によって決まります。 ※ここわけわからんですが、このページの主題ではないので流します 影テクスチャの仕様 影テクスチャには通常、縦16ピクセル、横256ピクセルの画像ファイルが用いられます。 しかし実は、このファイルのほんの一部のデータしか、影テクスチャとして使われません。 画像ファイルのうち、 •最も左のピクセルが「一番暗い」色として使われます •左から193個目のピクセルが「一番明るい」色として使われます •左から194個目以降のピクセルは使われません •上から8個目のピクセルだけが使われ、他は使われません これらの仕様を理解することで、意図したものにより近い質感を与えられます。 影テクスチャと法線ベクトルについて纏めてみました ※以下の解説ではシェーダ設定を string technique = "AllAmb_ShadowOff"※新テク追加technique float Ambint = [50] に変更したシェーダ設定ファイルを使用しています。 影テクスチャ 3Dモデル 3Dモデルに影テクスチャを貼付ける場合、まず各面の法線ベクトル(面の向き)から、各面の色が決定されます。 影テクスチャは、光の方向に対して0度〜180度の角度毎に使用される領域が決まっており、上図のテクスチャの場合は 左端から0度、右端で180度となっています。 ポリゴンの面(頂点)にはその向きを表す法線ベクトルがあります。 上図の円柱の各面の法線ベクトルは以下の様になります。 ※各角度は光の方向に対しての角度です 円柱の各法線ベクトルから、その角度に対応する影テクスチャ上の色がピックアップされ、各面の色(影)が決定されます。 ここで、円柱が接続された面で構成されていた場合は、面と面の間の法線ベクトル(影の色)が補完されます 実際の描画結果はこの様になります。 ※シェーダ設定の「string technique = "AllAmb_ShadowOff"」は、影テクスチャの全域(横)幅をモデル全域(光方向)幅と同じ長さに変更するもの。表示には新テクMOD(toonshader2.tah)が必要となります。 また「float Ambuent = [50]」に設定する事で影テクスチャ全域を無駄無く適用する事が出来ます。 ※影テクスチャは適用出来る幅が広ければ広い程影の解像度が高くなり、結果的に奇麗なシェーディングを得る事が出来ます。 グラデーション系の影テクスチャを使用する場合はこの傾向が顕著に現れる様です。
https://w.atwiki.jp/archer5678/pages/73.html
bmp图像的读取 http //wenku.baidu.com/view/3fa7940bbb68a98271fefa58.html? BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。 ?xml namespace prefix = o ns = "urn schemas-microsoft-com office office" / 位图文件主要分为如下3个部分: 块名称对应Windows结构体定义大小(Byte) 文件信息头BITMAPFILEHEADER14 位图信息头BITMAPINFOHEADER40 RGB颜色阵列BYTE*由图像长宽尺寸决定 1、 文件信息头BITMAPFILEHEADER 结构体定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; 其中: bfType 说明文件的类型,该值必需是0x4D42,也就是字符 BM 。 bfSize说明该位图文件的大小,用字节为单位,即整个图像文件的存储需要多少存储空间。 bfReserved1保留,必须设置为0 bfReserved2保留,必须设置为0 bfOffBits说明从文件头开始到实际的图象数据之间的字节的偏移量。这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。 2、位图信息头BITMAPINFOHEADER 结构体定义如下: typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; 其中: biSize说明BITMAPINFOHEADER结构所需要的字数。一般是40 biWidth说明图象的宽度,以象素为单位。 biHeight说明图象的高度,以象素为单位。注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。大多数的BMP文件都是倒向的位图,也就是说高度值是一个正数。 biPlanes为目标设备说明位面数,其值将总是被设为1。 biBitCount说明比特数/象素,其值为1、4、8、16、24、或32。但是由于我们平时用到的图像绝大部分是24位和32位的,所以我们讨论这两类图像。 24表示一个像素占三个字节。 biCompression说明图象数据压缩的类型,同样我们只讨论没有压缩的类型:BI_RGB。 biSizeImage说明图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0。biSizeImage = biWidth * biHeight (但是此处的biWidth必须是4的倍数,比如biWidth =240,则可仍然是240,但是若biWidth = 241 ,则取biWidth = 244.) biXPelsPerMeter说明水平分辨率,用象素/米表示。 biYPelsPerMeter说明垂直分辨率,用象素/米表示。 biClrUsed说明位图实际使用的彩色表中的颜色索引数(设为0的话,则说明使用所有调色板项)。 biClrImportant说明对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。 sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER) + biSizeImage = bfSize 比如一幅图像的占用的存储空间是1729590. 则它的组成是:BITMAPINFOHEADER结构所需要的字数 40 ;BITMAPFILEHEADER这个结构所占的字节数14;真正的图像大小1729536.所以 40 + 14 + 1729536 = 1729590 BMP头文件格式以及C语言读取头文件(二) 具体数据举例: 如某BMP文件开头: 424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... .... BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。 一、图像文件头 1)1:(这里的数字代表的是"字",即两个字节,下同)图像文件头。424Dh=’BM’,表示是Windows支持的BMP格式。 2)2-3:整个文件大小。4690 0000,为00009046h=36934。 3)4-5:保留,必须设置为0。 4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,为00000046h=70,上面的文件头就是35字=70字节。 5)8-9:位图图信息头长度。 6)10-11:位图宽度,以像素为单位。8000 0000,为00000080h=128。 7)12-13:位图高度,以像素为单位。9000 0000,为00000090h=144。 8)14:位图的位面数,该值总是1。0100,为0001h=1。 二、位图信息头 9)15:每个像素的位数。有1(单色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增强型真彩色)。1000为0010h=16。 10)16-17:压缩说明:有0(不压缩),1(RLE 8,8位RLE压缩),2(RLE 4,4位RLE压缩,3(Bitfields,位域存放)。RLE简单地说是采用像素数+像素值的方式进行压缩。T408采用的是位域存放方式,用两个字节表示一个像素,位域分配为r5b6g5。图中0300 0000为00000003h=3。 11)18-19:用字节数表示的位图数据的大小,该数必须是4的倍数,数值上等于位图宽度×位图高度×每个像素位数。0090 0000为00009000h=80×90×2h=36864。 12)20-21:用象素/米表示的水平分辨率。A00F 0000为0000 0FA0h=4000。 13)22-23:用象素/米表示的垂直分辨率。A00F 0000为0000 0FA0h=4000。 14)24-25:位图使用的颜色索引数。设为0的话,则说明使用所有调色板项。 15)26-27:对图象显示有重要影响的颜色索引的数目。如果是0,表示都重要。 具体代码C语言执行:(D 盘中有文件名为1的bmp图像) #include stdio.h #include stdlib.h typedef struct tagBITMAPFILEHEADER { unsigned short int bfType; //位图文件的类型,必须为BM unsigned long bfSize; //文件大小,以字节为单位 unsigned short int bfReserverd1; //位图文件保留字,必须为0 unsigned short int bfReserverd2; //位图文件保留字,必须为0 unsigned long bfbfOffBits; //位图文件头到数据的偏移量,以字节为单位 }BITMAPFILEHEADER; typedef struct tagBITMAPINFOHEADER { long biSize; //该结构大小,字节为单位 long biWidth; //图形宽度以象素为单位 long biHeight; //图形高度以象素为单位 short int biPlanes; //目标设备的级别,必须为1 short int biBitcount; //颜色深度,每个象素所需要的位数 short int biCompression; //位图的压缩类型 long biSizeImage; //位图的大小,以字节为单位 long biXPelsPermeter; //位图水平分辨率,每米像素数 long biYPelsPermeter; //位图垂直分辨率,每米像素数 long biClrUsed; //位图实际使用的颜色表中的颜色数 long biClrImportant; //位图显示过程中重要的颜色数 }BITMAPINFOHEADER; typedef struct { BITMAPFILEHEADER file; //文件信息区 BITMAPINFOHEADER info; //图象信息区 }bmp; bmp readbmpfile(void); //函数声明 int main(void) { bmp m; //定义一个结构变量 m=readbmpfile(); //读取一个位图 getchar(); return 0; } bmp readbmpfile(void) { bmp m; //定义一个位图结构 FILE *fp; if((fp=fopen( "d \\1.bmp", "r"))==NULL) { printf( "can t open the bmp imgae.\n "); exit(0); } else { fread( m.file.bfType,sizeof(char),1,fp); printf("类型为%c",m.file.bfType); fread( m.file.bfType,sizeof(char),1,fp); printf("%c\n",m.file.bfType); fread( m.file.bfSize,sizeof(long),1,fp); printf("文件长度为%d\n",m.file.bfSize); fread( m.file.bfReserverd1,sizeof(short int),1,fp); printf("保留字1为%d\n",m.file.bfReserverd1); fread( m.file.bfReserverd2,sizeof(short int),1,fp); printf("保留字2为%d\n",m.file.bfReserverd2); fread( m.file.bfbfOffBits,sizeof(long),1,fp); printf("偏移量为%d\n",m.file.bfbfOffBits); fread( m.info.biSize,sizeof(long),1,fp); printf("此结构大小为%d\n",m.info.biSize); fread( m.info.biWidth,sizeof(long),1,fp); printf("位图的宽度为%d\n",m.info.biWidth); fread( m.info.biHeight,sizeof(long),1,fp); printf("位图的高度为%d\n",m.info.biHeight); fread( m.info.biPlanes,sizeof(short),1,fp); printf("目标设备位图数%d\n",m.info.biPlanes); fread( m.info.biBitcount,sizeof(short),1,fp); printf("颜色深度为%d\n",m.info.biBitcount); fread( m.info.biCompression,sizeof(long),1,fp); printf("位图压缩类型%d\n",m.info.biCompression); fread( m.info.biSizeImage,sizeof(long),1,fp); printf("位图大小%d\n",m.info.biSizeImage); fread( m.info.biXPelsPermeter,sizeof(long),1,fp); printf("位图水平分辨率为%d\n",m.info.biXPelsPermeter); fread( m.info.biYPelsPermeter,sizeof(long),1,fp); printf("位图垂直分辨率为%d\n",m.info.biYPelsPermeter); fread( m.info.biClrUsed,sizeof(long),1,fp); printf("位图实际使用颜色数%d\n",m.info.biClrUsed); fread( m.info.biClrImportant,sizeof(long),1,fp); printf("位图显示中比较重要颜色数%d\n",m.info.biClrImportant); } return m; } 结果执行如下: 1.BMP文件的读入 BMP文件分为4个组成部分,那么BMP文件的读入也要按照4个组成部分依次进行处理,即先处理BITMAPFILEHEADER结构,然后是BITMAPINFOHEADER结构、颜色表,最后是位图数据。 首先,有关BITMAPFILEHEADER、BITMAPINFOHEADER、RGBQUAD等结构的定义包含在头文件“Windows.h”中,应把其包含进来。 #include "Windows.h" 其次,为了后面对图像进行修改及存盘方便,我们定义了几个全局变量,用来存放读入图像的位图数据、宽、高、颜色表及每像素位数等信息。所定义的全局变量如下: unsigned char *pBmpBuf;//读入图像数据的指针 int bmpWidth;//图像的宽 int bmpHeight;//图像的高 RGBQUAD *pColorTable;//颜色表指针 int biBitCount;//图像类型,每像素位数 根据BMP文件结构,BMP文件读入操作的基本流程如图1-8所示。 图1-8 BMP文件读入操作流程图 readBmp()函数实现了BMP文件的读取操作,下面的代码是对readBmp()函数的说明和实现。 /**************************************** ******************************* * 函数名称: * readBmp() * *函数参数: * char *bmpName -文件名字及路径 * *返回值: * 0为失败,1为成功 * *说明:给定一个图像文件名及其路径,读图像 的位图数据、宽、高、颜色表及每像素 * 位数等数据进内存,存放在相应的全局变量中 **************************************** *******************************/ bool readBmp(char *bmpName) { //二进制读方式打开指定的图像文件 FILE *fp=fopen(bmpName,"rb"); if(fp==0) return 0; //跳过位图文件头结构BITMAPFILEHEADER fseek(fp, sizeof(BITMAPFILEHEADER),0); //定义位图信息头结构变量,读取位图信息头进内存, 存放在变量head中 BITMAPINFOHEADER head; fread( head, sizeof(BITMAPINFOHEADER), 1,fp); //获取图像宽、高、每像素所占位数等信息 bmpWidth = head.biWidth; bmpHeight = head.biHeight; biBitCount = head.biBitCount; //定义变量,计算图像每行像素所占的字节数(必须是4的倍数) int lineByte=(bmpWidth * biBitCount/8+3)/4*4; //灰度图像有颜色表,且颜色表表项为256 if(biBitCount==8){ //申请颜色表所需要的空间,读颜色表进内存 pColorTable=new RGBQUAD[256]; fread(pColorTable,sizeof(RGBQUAD),256,fp); } //申请位图数据所需要的空间,读位图数据进内存 pBmpBuf=new unsigned char[lineByte * bmpHeight]; fread(pBmpBuf,1,lineByte * bmpHeight,fp); //关闭文件 fclose(fp); return 1; } 2.BMP文件的存盘 给定图像路径名以及图像的数据,对图像的写操作也是按照BMP文件4个组成部分进行分别处理的。其基本流程如图1-9所示。 图1-9 BMP文件写操作流程图 saveBmp()函数实现了BMP文件的写操作,该函数的说明及代码实现如下。 /***************************************** * 函数名称: * saveBmp() * *函数参数: * char *bmpName-文件名字及路径 * unsigned char *imgBuf-待存盘的位图数据 * int width-以像素为单位待存盘位图的宽 * int height-以像素为单位待存盘位图高 * int biBitCount-每像素所占位数 * RGBQUAD *pColorTable-颜色表指针 *返回值: * 0为失败,1为成功 * *说明:给定一个图像位图数据、宽、高、颜色表 指针及每像素所占的位数等信息, * 将其写到指定文件中 ****************************************** *****************************/ bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height, int biBitCount, RGBQUAD *pColorTable) { //如果位图数据指针为0,则没有数据传入,函数返回 if(!imgBuf) return 0; //颜色表大小,以字节为单位,灰度图像颜色表 为1024字节,彩色图像颜色表大小为0 int colorTablesize=0; if(biBitCount==8) colorTablesize=1024; //待存储图像数据每行字节数为4的倍数 int lineByte=(width * biBitCount/8+3)/4*4; //以二进制写的方式打开文件 FILE *fp=fopen(bmpName,"wb"); if(fp==0) return 0; //申请位图文件头结构变量,填写文件头信息 BITMAPFILEHEADER fileHead; fileHead.bfType = 0x4D42;//bmp类型 //bfSize是图像文件4个组成部分之和 fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + colorTablesize + lineByte*height; fileHead.bfReserved1 = 0; fileHead.bfReserved2 = 0; //bfOffBits是图像文件前3个部分所需空间之和 fileHead.bfOffBits=54+colorTablesize; //写文件头进文件 fwrite( fileHead, sizeof(BITMAPFILEHEADER),1, fp); //申请位图信息头结构变量,填写信息头信息 BITMAPINFOHEADER head; head.biBitCount=biBitCount; head.biClrImportant=0; head.biClrUsed=0; head.biCompression=0; head.biHeight=height; head.biPlanes=1; head.biSize=40; head.biSizeImage=lineByte*height; head.biWidth=width; head.biXPelsPerMeter=0; head.biYPelsPerMeter=0; //写位图信息头进内存 fwrite( head, sizeof(BITMAPINFOHEADER),1, fp); //如果灰度图像,有颜色表,写入文件 if(biBitCount==8) fwrite(pColorTable, sizeof(RGBQUAD),256, fp); //写位图数据进文件 fwrite(imgBuf, height*lineByte, 1, fp); //关闭文件 fclose(fp); return 1; } 对于readBmp()和saveBmp()函数的简单调用如下: void main() { //读入指定BMP文件进内存 char readPath[]="dog.BMP"; readBmp(readPath); //输出图像的信息 printf("width=%d,height=%d, biBitCount =%d\n",bmpWidth,bmpHeight, biBitCount); //将图像数据存盘 char writePath[]="dogcpy.BMP"; saveBmp(writePath, pBmpBuf, bmpWidth, bmpHeight, biBitCount, pColorTable); //清除缓冲区,pBmpBuf和pColorTable是 全局变量,在文件读入时申请的空间 delete []pBmpBuf; if(biBitCount==8) delete []pColorTable; } 该main()函数将指定BMP文件读入内存,将图像信息打印输出,最后又原样存入指定文件中。读者可以打开程序当前目录下的“dog.bmp”和“dogcpy.bmp”两个文件进行对比。 以上对于BMP文件的读写函数仅针对灰度图像(biBitCount=8)和彩色图像(biBitCount=24)两种格式,对于其他如biBitCount=1的图像类型,读者可以根据需要,自己对程序作简单的修改即可实现。
https://w.atwiki.jp/3dcustom/pages/104.html
■ Iniファイル 設定項目一覧 『3Dカスタム少女』のIniファイルは "マイ ドキュメント/TechArts3D/TDCG/settings.ini" です。 (Windows7などでは、"ドキュメント/TechArts3D/TDCG/settings.ini" です。) もしIniファイルを変更して起動しなくなった場合は、Iniファイルを削除してください。 その状態で起動すればデフォルトの設定で起動し、終了時にIniファイルが作成されます。 (項目名の後に書かれている値がデフォルトの値です。) 表示関連設定 FullScreen=1 フルスクリーン表示設定 / 0 ウインドウ表示, 1 フルスクリーン表示 フルスクリーン表示/ウインドウ表示の切り替えを行います。 起動後すぐにFキー/Wキーを押すことで、切り替えることも可能です。 ScreenW=1024 表示横解像度 /(有効な値はご使用の環境に依存します) ScreenH=768 表示縦解像度 /(有効な値はご使用の環境に依存します) 表示解像度を設定できます。 ご使用の環境で有効な解像度を指定してください。 (指定した解像度に対応していない場合、正常に起動しなくなります。ご注意ください) 音声関連設定 VoiceVol=9500 音声ボリューム / 0~10000 SEVol=9500 効果音ボリューム / 0~10000 BGMVol=9500 BGMボリューム / 0~10000 各々の音声のボリュームを指定します。(通常、書き換える必要はありません) ゲーム中に音量調整を行うことで設定されます。 ユーザーインターフェイス関連設定 WheelEnable=1 マウスホイール操作 / 0 無効, 1 有効 RingUI=1 アイテム選択ループ / 0 無効, 1 有効 HairColorSync=1 髪色自動同期 / 0 無効, 1 有効 髪の色を自動で合わせる機能を有効にするかどうかを指定します。 (通常は無効にする必要はありません) 弊社作成のデータ以外が組みこまれている場合は、デフォルトが HairColorSync=0 に設定されます。 ご不便に感じる方は、Iniファイルに HairColorSync=1 と記述してください。 挙動関連設定 BoreTime=60 少女が退屈するまでの最大延長時間(秒) BoreTimeOffs=60 少女が退屈するまでの最短時間(秒) 少女が退屈するまでの時間を設定できます。 設定時間を式で示すと (rand() % BoreTime) + BoreTimeOffs (秒) です。 なお、BoreTimeOffs は5以下には設定できません。 TumbleRate=5 少女が転ぶ確率 (%) カスタムモード終了時に少女が転ぶ確率(%)を設定できます。 TumbleRate=100と設定すると常に転びます。 グラビアモード関連設定 GravureCount=5 グラビアモードへ移行する「退屈」回数の設定 GravureSequencial=0 ポーズ順序設定 / 0 ランダム, 1 一定の順序 GravureUserPoseOnly=0 ポーズエディタで作成したポーズの使用設定 / 0 既存ポーズも使用する, 1 作成したポーズのみ GravureNoUserPose=0 ポーズエディタで作成したポーズの使用設定 / 0 使用する, 1 一切使用しない GravureNext=1 ポーズ移行設定 / 0 スペースキーを押すまで移行しない, 1 自動で移行する Hシーン音声関連設定 PolyVoice=1 複数の発声 / 0 禁止, 1 許可 NoWord=0 セリフの発声 / 0 発声する, 1 発声しない SOMCON関連設定 SOMCON_PortNo=-1 SOMCON COMポート番号指定 / 接続したCOMポート番号 (-1 SOMCONを使用しない) (例 COM3に接続されている場合は SOMCON_PortNo=3) SOMCON_Finish=1 SOMCON フィニッシュ時 動作パターン指定 / 0~5 (お好みでお選びください) フェイストラック関連設定 FaceTrackEnable=0 使用するキャプチャデバイスID指定 / 1~n (0 フェイストラック機能を使用しない) FaceTrackEnable=1 と記述すると1番目のデバイスが使用されます。(通常はこの設定です) FaceTrackEnable=2 と記述すると2番目のデバイスが、 FaceTrackEnable=3 と記述すると3番目のデバイスが使用されます。以下同様です。 認識されているデバイスの数を超えた値を指定した場合は、強制的に1番目が使用されます。 カメラ周辺に不具合がある、又はフェイストラックを使用したくない方は、FaceTrackEnable=0 と記述すると、 カメラの初期化処理を含むフェイストラック機能の一切を動作しないようにすることができます。 FaceTrackHTrans=600 横方向移動量 FaceTrackVTrans=900 縦方向移動量 FaceTrackVZoom=2000 奥行き移動量 FaceTrackHAngle=4500 Y軸回転量 (範囲 -9000~9000 単位は度。実際の100倍の値を設定) FaceTrackVAngle=6000 X軸回転量 (範囲 -9000~9000 単位は度。実際の100倍の値を設定) その他 SnapShotEnable=1 スナップショット使用 / 0 使用しない, 1 使用する PrintScreenキーを使う他のソフトを用いる際などに設定してください。 UseDesktopImage=1 デスクトップ画面の使用 / 0 使用しない, 1 使用する 起動時デモで停止するなどの不具合がある場合に「使用しない」設定を試してみてください。 NoSexual=0 Hシーンなどの選択禁止 / 0 可能, 1 禁止 通常は設定する必要はありませんが、お好みでご使用ください。 (禁止に設定するとポーズエディタも選択できなくなりますのでご注意ください)
https://w.atwiki.jp/bf_3/pages/162.html
ゲーム内解説 補足事項 ゲーム内解説 BMP-2は第二世代に属する水陸両用の歩兵戦闘車である。 1980年代にソ連で実戦配備された。 補足事項 RU側の歩兵戦闘車両(IFV)。水陸両用。 やられ役のイメージが強いがLAVと攻撃面 防御面での性能差はほとんど無い。 US側のLAV系統との最大の違いはその場で方向転換出来る事。前後に障害物があって詰まってしまった!という状況が起こりにくいだろう。 しかし機動力では劣るので、撤退する際は早めに行動するべし。 機動力で劣るので反応装甲、メンテナンスやIRスモークといった自衛用のアタッチメントを装備するととっさの攻撃にも対処しやすい。 詳細はLAV-25の項を参照して下さい
https://w.atwiki.jp/3dcustom/pages/57.html
シェーダー設定とxml ※前回までのあらすじ みんなでおにぎりにアイスを突き刺すという凄まじい料理を作ったのであった! 【オレMOD制作 後編】 cgfxShader設定ファイルの設定(後半上級者向け) cgfxShader設定ファイルは光に対する情報をまとめたファイルです テクスチャファイルに1:1で対応します つまりテクスチャごとに光沢などを変更できるということです はい、何か気付きませんか? 現在。cgfxShader設定ファイルが1つしかありません でもテクスチャファイルは2つあります 「ああっ!cgfxShader設定ファイル足りねぇ!」 困りました。でも大丈夫です こういうときはコピーすれば良いのです。右クリックからどうぞ これで数がそろいました。設定ファイルはこうしてコピーして大丈夫です でもまだダメです。これではどっちのcgfxShader設定ファイルがどっちのテクスチャに適応されるか分かりません cgfxShader設定をテクスチャに対応させるにはどうしたらのでしょうか 実はさっきと似たような話です テクスチャファイルと対応するcgfxShader設定ファイルの名前を"同じ"にしてください サクっと名前を合わせましょう。ただしテクスチャはメタセコデータの「材質」名と同じにしなくてはいけないため 今回名前を変えるのはcgfxShader設定ファイルと言うことになります。こうなりました これで「テクスチャ:Atari」 に対して 「cgfxShader設定ファイル:Atari」が適応される準備ができました 「え?まだ作業あんの?」とか思いましたか?あります とりあえずここまでを三段論法でまとめると 大前提:メタセコで設定した「材質」名とそれに対応するテクスチャファイル名は同じでなければならない 小前提:テクスチャファイル名とそれに対応するcgfxShader設定ファイル名は同じでなければならない 結 論:メタセコで設定した「材質」名とそのテクスチャに対応するcgfxShader設定ファイル名は同じでなければならない まあつまり全部同じ名前にしろってことです (ここから上級者向け) いよいよcgfxShader設定ファイルの編集です コイツはメモ帳の上にぽんとD Dするだけでも編集できるのですが面倒なので cgfxShader簡易編集ツールを使いましょう えーと、以上です 今回は弄る必要がなかったりします 金属光沢とかテカリが欲しい人は 「float Ambient」「float HighLight」「float HighLightPower」「float ShadeBlend」等を弄ることになります 他にも境界線を濃くしたい人とかは弄る必要が有りますが・・・詳しくはシェーダー設定を参考にしてください ちなみに金属光沢が欲しい人は自分作のエスカリボルグのcgfxShaderを流用してもOKです(宣伝乙) ここまで読めば分かると思いますがcgfxShader設定ファイルの効果は MODを完成させてarcsフォルダにぶち込むまでわかりません。調整には根気が必要です、かなり という訳でここはおしまい。次はXMLファイルを設定します XMLファイルの編集 これが終わればゴールはもうすぐです。 取り合えず開いて見ましょう。右クリックから「編集」で開いてさい こんな文字列が書かれていますね。これからこれを編集していきます ちょっとPCに詳しい人なら勘で設定できると思いますがまずは説明から・・・ 上二行は関係ないので無視してください 三行目: Effect Name="TAToonshade_050.cgfx" / これは何を設定しているのか良くわからないファイルTAToonshade_050.cgfxの位置を指定する物です もしTAToonshade_050.cgfxの名前を変更したり削除していたりするとエラーが出ると思います 弄る必要は基本的にありません 四行目: Textures Name="Rice" File="Rice.bmp" BytesPerPixel="4" Width="256" Height="256" / これはテクスチャの設定です Textures Name="Rice" ここの「" "」内にメタセコで指定した材質の名前を記入します File="Rice.bmp" ここにはその材質に割り当てるテクスチャの位置を記入します BytesPerPixel="4" ここにはそのテクスチャのバイトレート(?)を記入します。 普通のビットマップ画像なら"3"ですがアルファチャンネルを追加しているので"4"でOKです Width="256" Height="256" ここにはテクスチャの大きさを記入します。 五行目は四行目と同じですね。こちらでは影のテクスチャを指定しています 六行目: Materials Name="Rice" File="cgfxShader" / Materials Name="Rice" ここにはcgfxShader設定ファイルの位置(名前?)を書きます File="cgfxShader" ここは弄らなくてOKです こんなところです。 位置を指定する時はフルパスではなくただファイル名だけでOKです。同じフォルダ内にありますもん 設定項目の数が足りないところは例によってコピペしてから編集で対応してください 説明を聞いているだけでは良くわからないと思うので今回の場合はこうすればいい、というのを書いてみました 参考にしながら自分でやってみてください できましたか?次のステップは殆どないです 影テクスチャの選択 今は入っているSailor_COL_00.bmpを使うか他のMODやデフォの影テクスチャを使うか、好きな物を入れてください 名前は「Sailor_COL_00.bmp」から変えないでやればOKです 今改めて見直してみたのですが、これ(おにぎり)に入ってる影テクスチャは食べ物向きじゃないような気がします・・・ なんだか汚れて見えてしまって・・・後で修正しようかな さあ次は名前の補完です。これが終わればゴールは目前です Go!→TSOにまとめる
https://w.atwiki.jp/meganeclasica/
untitled.bmp
https://w.atwiki.jp/3dcustom/pages/70.html
■はじめに ここではtsoファイル梱包時によくあるエラーについて、その原因を解説します。 またその前提情報として、tsoファイル作成に必要となるファイルの情報やtsoファイル梱包の際に注意すべき点を解説します。 なお、この解説はツール Tso2MqoGUI.exe の v0.32 を使用した環境に準拠しています。 今後のアップデートなどでメッセージ等が変更される場合もありますのでご注意ください。 ■前提情報 mqo→tso変換に必要なファイル tsoファイルの作成には下記のファイルが必要です。 漏れが無いか確認しましょう。 (1)mqoファイル(拡張子:mqo) (2)xmlファイル(拡張子:xml) (3)シェーダー設定ファイル(拡張子:なし) (4)テクスチャファイル(拡張子:bmp または tga) (5)tsoファイル(拡張子:tso) ファイル情報 tsoファイルの作成に使用する各ファイルでは、それぞれ内部で下記情報を指定しています。 mqoファイル: テクスチャファイルを指定 シェーダー設定ファイルを指定(材質名がシェーダー設定ファイルの名前になる) xmlファイル: テクスチャ名(※)に対応するテクスチャファイル(とそのサイズ)を指定 シェーダー設定ファイルの使用を宣言 (※)この「テクスチャ名」はシェーダー設定ファイルから参照されるだけのもので、実際のテクスチャファイル名やメタセコ上の材質名とは特に関係ありません シェーダー設定ファイル: シャドウ用テクスチャのテクスチャ名を指定 通常テクスチャのテクスチャ名を指定 注意すべき点 テクスチャファイルのパスは正しいか? メタセコでの材質名とシェーダー設定ファイル名は同じか? シェーダー設定ファイル中で指定しているテクスチャ名がxmlファイル中で定義されているか? xmlファイル中で、同じテクスチャ名が複数回定義されていないか? ■よくあるエラー事例 マテリアルの情報が正しく反映されていないか、ファイルが存在しません →Tso2MqoGUI.exeのマテリアル設定ウィンドウでマテリアルを1つ1つ確認し、「Valid」の欄が「False」になっているマテリアルを探す。問題のマテリアルを見つけたら以下をチェック。 ・「シェーダー設定ファイル」と「テクスチャ:シェーディング」が空白 →シェーダー設定ファイルが読み込まれていない。 mqoファイル中の材質名、xmlファイル中のシェーダー設定ファイル宣言、実際のシェーダー設定ファイル名がすべて同じであることを確認。 ・空白項目なし →mqoファイルまたはxmlファイル中で、テクスチャファイルのパス指定が間違っている。 テキストエディタでmqoファイルとxmlファイルを開いてパスを確認。 System.AurgumentException 同一のキーを含む項目が既に追加されています →xmlファイル中で、同じテクスチャ名が複数回定義されている。 テキストエディタでxmlファイルを開いてテクスチャ名を確認。 System.IO.DirectoryNotFoundException パス ~ の一部が見つかりませんでした →Tso2MqoGUI.exeの[Mqo- Tso]タブで、ファイルのパス指定が間違っている。 参照ボタンを押して再度ファイルを指定。 ■特殊エラー事例 System.IO.IOException 別のプロセスで使用されているため、プロセスはファイル ~ にアクセスできません。 →メタセコイアでテクスチャを相対パスで指定していると起こる(tex.bmp)。 絶対パスにする。(C \tex.bmp) System.Exception File format error 14 “Object”~“ (中略) UInt16 型の値が大きすぎるか、または小さすぎます。 →メタセコイアにある1オブジェクトの頂点or点or辺のいずれかが極端に多い(65500近く)と起こる? 該当オブジェクトを幾つかのオブジェクトに分解して、1オブジェクトに頂点or点or辺が集中しないようにする System.NullReferenceException オブジェクト参照がオブジェクト インスタンスに設定されていません。 →プラグイン情報を含んだMQOファイル形式(MQXファイルが同時に保存される形式)だと読み込めないっぽい。 メタセコイアでの保存時のファイル形式に「メタセコイア オブジェクト Ver2.2互換(*.mqo)」を選ぶと読み込めるようになる。 ■その他 メタセコイアにある1オブジェクトの頂点or点or辺のいずれかが、上記のエラーが出ずとも極端に多い場合、梱包時にフリーズします。 やはり該当オブジェクトを幾つかのオブジェクトに分解して、1オブジェクトに頂点or点or辺が集中しないようにしましょう。
https://w.atwiki.jp/opengl/pages/67.html
BMP画像を表示します。 BMPと言っても今回は24bit画像に限定します。 知っての通り、最もポピュラーで広く使われている画像形式ですが BMP形式は種類が複数存在し、データサイズも大きいので 最近では、あまり使われなくなってきました。 ファイル main.cpp sample.bmp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h #include stdio.h #define WIDTH 320 #define HEIGHT 240 class BMP { public unsigned long sizeX; //横 unsigned long sizeY; //縦 char *Data; //画像データ格納 bool Load(char *filename); GLuint texture; void TexSet(); BMP(char *FileName); }; BMP BMP(char *FileName){ Load(FileName); TexSet(); } bool BMP Load(char *FileName) { FILE *File; unsigned long size;// イメージのバイトサイズ unsigned long i;// カウンタ unsigned short int planes; //デバイス面数 unsigned short int bpp; // ピクセル数 char temp; // カラー関係作業用 //ファイルオープン if ((File = fopen(FileName, rb ))==NULL){ printf( ファイルがありません ); return false; } //ビットマップの幅データ部分へ移動 fseek(File, 18, SEEK_CUR); //横幅を読み込む if ((i = fread( sizeX, 4, 1, File)) != 1) { printf( 読み込みエラー ); return false; } //縦幅を読み込む if ((i = fread( sizeY, 4, 1, File)) != 1) { printf( 読み込みエラー ); return false; } //画像サイズの計算 size = sizeX * sizeY * 3;//プレーン数を読み込む if ((fread( planes, 2, 1, File)) != 1) { //bmpは「1」になる printf( プレーン数が読み込めません ); return false; } if (planes != 1) { printf( プレーン数が1以外です ); return false; } //ピクセル値を読み込む if ((i = fread( bpp, 2, 1, File)) != 1) { printf( ビット数が読めません ); return false; } if (bpp != 24) {//24bppでなければエラー printf( 24ビット画像ではありません ); return false; } //24ビット飛ばして、カラーデータ(RGB)部分へ fseek(File, 24, SEEK_CUR); //データ読み込み Data = (char *) malloc(size); if (Data == NULL) { printf( メモリが確保できません ); return false; } if ((i = fread(Data, size, 1, File)) != 1) { printf( データが読めません ); return false; } for (i=0;i size;i+=3) { //bgr - rgb temp = Data[i]; Data[i] = Data[i+2]; Data[i+2] = temp; } return true; } void BMP TexSet() { glEnable( GL_TEXTURE_2D ); glGenTextures( 1, texture ); glBindTexture( GL_TEXTURE_2D, texture ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexImage2D( GL_TEXTURE_2D, 0, 3, sizeX, sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, Data ); glBindTexture( GL_TEXTURE_2D, 0 ); } BMP *bmp; void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glOrtho(0.0, WIDTH, HEIGHT, 0.0, -1.0, 1.0); glEnable(GL_TEXTURE_2D);//テクスチャ有効 glBindTexture( GL_TEXTURE_2D, bmp- texture ); glEnable(GL_ALPHA_TEST);//アルファテスト開始 glBegin(GL_POLYGON); glTexCoord2f(0.0f, 0.0f); glVertex2d(10 , 230);//左下 glTexCoord2f(0.0f, 1.0f); glVertex2d(10 , 10);//左上 glTexCoord2f(1.0f, 1.0f); glVertex2d( 310 , 10);//右上 glTexCoord2f(1.0f, 0.0f); glVertex2d( 310 , 230);//右下 glEnd(); glDisable(GL_ALPHA_TEST);//アルファテスト終了 glDisable(GL_TEXTURE_2D);//テクスチャ無効 glutSwapBuffers(); } void idle(void) { glutPostRedisplay(); } void Init(){ glClearColor(0.0, 0.0, 0.0, 1.0); glOrtho(0, WIDTH, HEIGHT, 0, -1, 1); bmp = new BMP( sample.bmp ); } int main(int argc, char *argv[]) { glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( BMP画像を読み込んで表示 ); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return 0; }